#!/bin/bash # Copyright 2013 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # Collect memory usage on the patches from run_stress_test source "$(dirname ${0})/stress_test_common" main() { if [ $# -lt 1 ]; then cat <<EOF USAGE: $(basename ${0}) dir Collect memory usage on the patches from run_stress_test EOF exit 1 fi local dir="${1}" if [ ! -d "${dir}" ]; then error "\"${dir}\" not found" exit 1 fi local patches_dir="${dir}/patches" find "${patches_dir}" \ | grep "\.patch$" \ | while read i; do local patch="${i}" local subdir_filename="${patch:$((${#patches_dir} + 1))}" local out_base="${dir}/metrics/${subdir_filename}" mkdir -p "$(dirname ${out_base})" local original="${subdir_filename%.patch}" local applied="${out_base}.applied" local apply_mem="${out_base}.apply_mem" valgrind --tool=massif --massif-out-file="${apply_mem}" courgette -apply \ "${original}" "${patch}" "${applied}" & local bz2_patch="${i}.bz2" local unbz2="${out_base}.unbz2" local unbz2_mem="${out_base}.unbz2_mem" valgrind --tool=massif --massif-out-file="${unbz2_mem}" bunzip2 -c \ "${bz2_patch}" > "${unbz2}" & local xz_patch="${i}.xz" local unxz="${out_base}.unxz" local unxz_mem="${out_base}.unxz_mem" valgrind --tool=massif --massif-out-file="${unxz_mem}" unxz -c \ "${xz_patch}" > "${unxz}" & local bsdiff_patch="${patch%.patch}.bsdiff_patch" local applied_bsdiff="${out_base}.applied_bsdiff" local bsdiff_mem="${out_base}.bsdiff_mem" valgrind --tool=massif --massif-out-file="${bsdiff_mem}" bspatch \ "${original}" "${applied_bsdiff}" "${bsdiff_patch}" & wait done } main "${@}"