t/perf: add 'GIT_PERF_USE_SCALAR' run option

Add a 'GIT_PERF_USE_SCALAR' environment variable (and corresponding perf config 'useScalar') to register a repository created with any of: * test_perf_fresh_repo * test_perf_default_repo * test_perf_large_repo as a Scalar enlistment. This is intended to allow a developer to test the impact of Scalar on already-defined performance scenarios. Suggested-by: Derrick Stolee <derrickstolee@github.com> Signed-off-by: Victoria Dye <vdye@github.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Victoria Dye committed Sep 2, 2022 at 15:56 UTC ba1b117eec2f73c84f73f827e6f3ac8b82b35585
3 files changed +19 -1
t/perf/README
+4
@@ -95,6 +95,10 @@ You can set the following variables (also in your config.mak):
95 Git (e.g., performance of index-pack as the number of threads
96 changes). These can be enabled with GIT_PERF_EXTRA.
97
98 + GIT_PERF_USE_SCALAR
99 + Boolean indicating whether to register test repo(s) with Scalar
100 + before executing tests.
101 +
102 You can also pass the options taken by ordinary git tests; the most
103 useful one is:
104
t/perf/perf-lib.sh
+12 -1
@@ -49,6 +49,9 @@ export TEST_DIRECTORY TRASH_DIRECTORY GIT_BUILD_DIR GIT_TEST_CMP
49 MODERN_GIT=$GIT_BUILD_DIR/bin-wrappers/git
50 export MODERN_GIT
51
52 +MODERN_SCALAR=$GIT_BUILD_DIR/bin-wrappers/scalar
53 +export MODERN_SCALAR
54 +
55 perf_results_dir=$TEST_RESULTS_DIR
56 test -n "$GIT_PERF_SUBSECTION" && perf_results_dir="$perf_results_dir/$GIT_PERF_SUBSECTION"
57 mkdir -p "$perf_results_dir"
@@ -120,6 +123,10 @@ test_perf_create_repo_from () {
123 # status" due to a locked index. Since we have
124 # a copy it's fine to remove the lock.
125 rm .git/index.lock
126 + fi &&
127 + if test_bool_env GIT_PERF_USE_SCALAR false
128 + then
129 + "$MODERN_SCALAR" register
130 fi
131 ) || error "failed to copy repository '$source' to '$repo'"
132 }
@@ -130,7 +137,11 @@ test_perf_fresh_repo () {
137 "$MODERN_GIT" init -q "$repo" &&
138 (
139 cd "$repo" &&
133 - test_perf_do_repo_symlink_config_
140 + test_perf_do_repo_symlink_config_ &&
141 + if test_bool_env GIT_PERF_USE_SCALAR false
142 + then
143 + "$MODERN_SCALAR" register
144 + fi
145 )
146 }
147
t/perf/run
+3
@@ -171,6 +171,9 @@ run_subsection () {
171 get_var_from_env_or_config "GIT_PERF_MAKE_COMMAND" "perf" "makeCommand"
172 get_var_from_env_or_config "GIT_PERF_MAKE_OPTS" "perf" "makeOpts"
173
174 + get_var_from_env_or_config "GIT_PERF_USE_SCALAR" "perf" "useScalar" "--bool"
175 + export GIT_PERF_USE_SCALAR
176 +
177 get_var_from_env_or_config "GIT_PERF_REPO_NAME" "perf" "repoName"
178 export GIT_PERF_REPO_NAME
179