13551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#!/bin/bash 23551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 33551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved. 43551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 53551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# found in the LICENSE file. 63551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 73551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# Collect memory usage on the patches from run_stress_test 83551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 9424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)source "$(dirname ${0})/stress_test_common" 103551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)main() { 123551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) if [ $# -lt 1 ]; then 133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) cat <<EOF 143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 153551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)USAGE: $(basename ${0}) dir 163551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 173551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)Collect memory usage on the patches from run_stress_test 183551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)EOF 203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) exit 1 213551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) fi 223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) local dir="${1}" 243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) if [ ! -d "${dir}" ]; then 253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) error "\"${dir}\" not found" 263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) exit 1 273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) fi 283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 293551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) local patches_dir="${dir}/patches" 303551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) find "${patches_dir}" \ 323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) | grep "\.patch$" \ 333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) | while read i; do 343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) local patch="${i}" 353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) local subdir_filename="${patch:$((${#patches_dir} + 1))}" 363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) local out_base="${dir}/metrics/${subdir_filename}" 373551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) mkdir -p "$(dirname ${out_base})" 383551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 393551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) local original="${subdir_filename%.patch}" 403551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) local applied="${out_base}.applied" 413551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) local apply_mem="${out_base}.apply_mem" 423551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) valgrind --tool=massif --massif-out-file="${apply_mem}" courgette -apply \ 433551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) "${original}" "${patch}" "${applied}" & 443551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 453551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) local bz2_patch="${i}.bz2" 463551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) local unbz2="${out_base}.unbz2" 473551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) local unbz2_mem="${out_base}.unbz2_mem" 483551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) valgrind --tool=massif --massif-out-file="${unbz2_mem}" bunzip2 -c \ 493551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) "${bz2_patch}" > "${unbz2}" & 503551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 513551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) local xz_patch="${i}.xz" 523551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) local unxz="${out_base}.unxz" 533551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) local unxz_mem="${out_base}.unxz_mem" 543551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) valgrind --tool=massif --massif-out-file="${unxz_mem}" unxz -c \ 553551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) "${xz_patch}" > "${unxz}" & 563551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 573551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) local bsdiff_patch="${patch%.patch}.bsdiff_patch" 583551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) local applied_bsdiff="${out_base}.applied_bsdiff" 593551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) local bsdiff_mem="${out_base}.bsdiff_mem" 603551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) valgrind --tool=massif --massif-out-file="${bsdiff_mem}" bspatch \ 613551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) "${original}" "${applied_bsdiff}" "${bsdiff_patch}" & 623551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 633551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) wait 643551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) done 653551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)} 663551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 673551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)main "${@}" 68