From: Junio C Hamano Date: Mon, 11 Jul 2016 17:31:06 +0000 (-0700) Subject: Merge branch 'jk/perf-any-version' X-Git-Tag: v2.10.0-rc0~138 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/e9a6d713316d2e774d8005b8594a4fad75d7652d?hp=-c Merge branch 'jk/perf-any-version' Allow t/perf framework to use the features from the most recent version of Git even when testing an older installed version. * jk/perf-any-version: p4211: explicitly disable renames in no-rename test t/perf: fix regression in testing older versions of git --- e9a6d713316d2e774d8005b8594a4fad75d7652d diff --combined t/perf/perf-lib.sh index 773f955d4a,6520c76a17..46f08ee087 --- a/t/perf/perf-lib.sh +++ b/t/perf/perf-lib.sh @@@ -52,6 -52,9 +52,9 @@@ TEST_NO_MALLOC_CHECK= # need to export them for test_perf subshells export TEST_DIRECTORY TRASH_DIRECTORY GIT_BUILD_DIR GIT_TEST_CMP + MODERN_GIT=$GIT_BUILD_DIR/bin-wrappers/git + export MODERN_GIT + perf_results_dir=$TEST_OUTPUT_DIRECTORY/test-results mkdir -p "$perf_results_dir" rm -f "$perf_results_dir"/$(basename "$0" .sh).subtests @@@ -81,10 -84,9 +84,10 @@@ test_perf_create_repo_from () repo="$1" source="$2" source_git="$(git -C "$source" rev-parse --git-dir)" - objects_dir="$(git -C "$source" rev-parse --git-path objects)" + objects_dir="$("$MODERN_GIT" -C "$source" rev-parse --git-path objects)" mkdir -p "$repo/.git" ( + cd "$source" && { cp -Rl "$objects_dir" "$repo/.git/" 2>/dev/null || cp -R "$objects_dir" "$repo/.git/"; } && for stuff in "$source_git"/*; do @@@ -95,9 -97,7 +98,9 @@@ cp -R "$stuff" "$repo/.git/" || exit 1 ;; esac - done && + done + ) && + ( cd "$repo" && git init -q && { test_have_prereq SYMLINKS || @@@ -127,15 -127,11 +130,15 @@@ test_checkout_worktree () # Performance tests should never fail. If they do, stop immediately immediate=t +# Perf tests require GNU time +case "$(uname -s)" in Darwin) GTIME="${GTIME:-gtime}";; esac +GTIME="${GTIME:-/usr/bin/time}" + test_run_perf_ () { test_cleanup=: test_export_="test_cleanup" export test_cleanup test_export_ - /usr/bin/time -f "%E %U %S" -o test_time.$i "$SHELL" -c ' + "$GTIME" -f "%E %U %S" -o test_time.$i "$SHELL" -c ' . '"$TEST_DIRECTORY"/test-lib-functions.sh' test_export () { [ $# != 0 ] || return 0