summaryrefslogtreecommitdiff
path: root/t/perf/run
diff options
context:
space:
mode:
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>2017-05-20 21:42:18 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-05-20 23:25:38 (GMT)
commit88b6197d0b4f5ad480e9585baa984cac51f4771f (patch)
treea67c95a3e02a564fc0d240311f2c25b00c83684b /t/perf/run
parent966be95549374916fc2736897b99c4918899b8ca (diff)
downloadgit-88b6197d0b4f5ad480e9585baa984cac51f4771f.zip
git-88b6197d0b4f5ad480e9585baa984cac51f4771f.tar.gz
git-88b6197d0b4f5ad480e9585baa984cac51f4771f.tar.bz2
perf: add a GIT_PERF_MAKE_COMMAND for when *_MAKE_OPTS won't do
Add a git GIT_PERF_MAKE_COMMAND variable to compliment the existing GIT_PERF_MAKE_OPTS facility. This allows specifying an arbitrary shell command to execute instead of 'make'. This is useful e.g. in cases where the name, semantics or defaults of a Makefile flag have changed over time. It can even be used to change the contents of the tree, useful for monkeypatching ancient versions of git to get them to build. This opens Pandora's box in some ways, it's now possible to "jailbreak" the perf environment and e.g. modify the source tree via this arbitrary instead of just issuing a custom "make" command, such a command has to be re-entrant in the sense that subsequent perf runs will re-use the possibly modified tree. It would be pointless to try to mitigate or work around that caveat in a tool purely aimed at Git developers, so this change makes no attempt to do so. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/perf/run')
-rwxr-xr-xt/perf/run11
1 files changed, 9 insertions, 2 deletions
diff --git a/t/perf/run b/t/perf/run
index c788d71..b61024a 100755
--- a/t/perf/run
+++ b/t/perf/run
@@ -37,8 +37,15 @@ build_git_rev () {
cp "../../$config" "build/$rev/"
fi
done
- (cd build/$rev && make $GIT_PERF_MAKE_OPTS) ||
- die "failed to build revision '$mydir'"
+ (
+ cd build/$rev &&
+ if test -n "$GIT_PERF_MAKE_COMMAND"
+ then
+ sh -c "$GIT_PERF_MAKE_COMMAND"
+ else
+ make $GIT_PERF_MAKE_OPTS
+ fi
+ ) || die "failed to build revision '$mydir'"
}
run_dirs_helper () {