t/perf: use configured PERL_PATH

Our benchmarks use a couple of Perl scripts to compute results. These
Perl scripts get executed directly, and as the shebang is hardcoded to
"/usr/bin/perl" this will fail on any system where the Perl interpreter
is located in a different path.

Our build infrastructure already lets users configure the location of
Perl, which ultimately gets written into the GIT-BUILD-OPTIONS file.
This file is being sourced by "test-lib.sh", and consequently we already
have the "PERL_PATH" variable available that contains its configured
location.

Use "PERL_PATH" to execute Perl scripts, which makes them work on more
esoteric systems like NixOS. Furthermore, adapt the shebang to use
env(1) to execute Perl so that users who have Perl in PATH, but in a
non-standard location can execute the script directly.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Patrick Steinhardt 2025-04-28 09:30:47 +02:00 committed by Junio C Hamano
parent 5a6b9c8155
commit d84b990883
3 changed files with 5 additions and 5 deletions

View File

@ -1,4 +1,4 @@
#!/usr/bin/perl #!/usr/bin/env perl


use lib '../../perl/build/lib'; use lib '../../perl/build/lib';
use strict; use strict;

View File

@ -276,7 +276,7 @@ test_perf_ () {
else else
test_ok_ "$1" test_ok_ "$1"
fi fi
"$TEST_DIRECTORY"/perf/min_time.perl test_time.* >"$base".result "$PERL_PATH" "$TEST_DIRECTORY"/perf/min_time.perl test_time.* >"$base".result
rm test_time.* rm test_time.*
} }


@ -324,7 +324,7 @@ test_at_end_hook_ () {
if test -z "$GIT_PERF_AGGREGATING_LATER"; then if test -z "$GIT_PERF_AGGREGATING_LATER"; then
( (
cd "$TEST_DIRECTORY"/perf && cd "$TEST_DIRECTORY"/perf &&
./aggregate.perl --results-dir="$TEST_RESULTS_DIR" $(basename "$0") "$PERL_PATH" ./aggregate.perl --results-dir="$TEST_RESULTS_DIR" $(basename "$0")
) )
fi fi
} }

View File

@ -192,10 +192,10 @@ run_subsection () {


if test -z "$GIT_PERF_SEND_TO_CODESPEED" if test -z "$GIT_PERF_SEND_TO_CODESPEED"
then then
./aggregate.perl --results-dir="$TEST_RESULTS_DIR" $codespeed_opt "$@" "$PERL_PATH" ./aggregate.perl --results-dir="$TEST_RESULTS_DIR" $codespeed_opt "$@"
else else
json_res_file=""$TEST_RESULTS_DIR"/$GIT_PERF_SUBSECTION/aggregate.json" json_res_file=""$TEST_RESULTS_DIR"/$GIT_PERF_SUBSECTION/aggregate.json"
./aggregate.perl --results-dir="$TEST_RESULTS_DIR" --codespeed "$@" | tee "$json_res_file" "$PERL_PATH" ./aggregate.perl --results-dir="$TEST_RESULTS_DIR" --codespeed "$@" | tee "$json_res_file"
send_data_url="$GIT_PERF_SEND_TO_CODESPEED/result/add/json/" send_data_url="$GIT_PERF_SEND_TO_CODESPEED/result/add/json/"
curl -v --request POST --data-urlencode "json=$(cat "$json_res_file")" "$send_data_url" curl -v --request POST --data-urlencode "json=$(cat "$json_res_file")" "$send_data_url"
fi fi