Merge branch 'jk/perf-any-version'
authorJunio C Hamano <gitster@pobox.com>
Mon, 11 Jul 2016 17:31:06 +0000 (10:31 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 11 Jul 2016 17:31:06 +0000 (10:31 -0700)
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

1  2 
t/perf/perf-lib.sh
diff --combined t/perf/perf-lib.sh
index 773f955d4a251e768b8bc39f7e05161936fda1f5,6520c76a1773e86a6e056bd35a3eb677f613a05e..46f08ee0870ffd2b1e0eb7d159b159d25ef61ffb
@@@ -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