Message ID | YqrXLO5oMYeOr2PB@coredump.intra.peff.net (mailing list archive) |
---|---|
State | Accepted |
Commit | 55d9d4bbd044afa004c6962aa50635158dc8719e |
Headers | show |
Series | perf-lib: fix missing test titles in output | expand |
On 6/16/2022 3:09 AM, Jeff King wrote: > Commit 5dccd9155f (t/perf: add iteration setup mechanism to perf-lib, > 2022-04-04) modified the parameter parsing of test_wrapper() such that > the test title was no longer in $1, and is instead in $test_title_. > > We correctly pass the new variable to the code which outputs the title > to the log, but missed the spot in test_wrapper() where the title is > written to the ".descr" file which is used to produce the final output > table. As a result, all of the titles are missing from that table (or > worse, using whatever was left in $1): > > $ ./p0000-perf-lib-sanity.sh > [...] > Test this tree > ------------------------------ > 0000.1: 0.01(0.01+0.00) > 0000.2: 0.01(0.00+0.01) > 0000.4: 0.00(0.00+0.00) > 0000.5: true 0.00(0.00+0.00) > 0000.7: 0.00(0.00+0.00) > 0000.8: 0.00(0.00+0.00) Yikes! > After this patch, we get the pre-5dccd9155f output: > > Test this tree > -------------------------------------------------------------------------- > 0000.1: test_perf_default_repo works 0.00(0.00+0.00) > 0000.2: test_checkout_worktree works 0.01(0.00+0.01) > 0000.4: export a weird var 0.00(0.00+0.00) > 0000.5: éḿíẗ ńöń-ÁŚĆÍÍ ćḧáŕáćẗéŕś 0.00(0.00+0.00) > 0000.7: important variables available in subshells 0.00(0.00+0.00) > 0000.8: test-lib-functions correctly loaded in subshells 0.00(0.00+0.00) Good catch. LGTM. -Stolee
Apologies for the breakage and thanks for the fix. It looks good to me! -Neeraj
diff --git a/t/perf/perf-lib.sh b/t/perf/perf-lib.sh index ab3687c28d..27c2801792 100644 --- a/t/perf/perf-lib.sh +++ b/t/perf/perf-lib.sh @@ -219,7 +219,7 @@ test_wrapper_ () { then base=$(basename "$0" .sh) echo "$test_count" >>"$perf_results_dir"/$base.subtests - echo "$1" >"$perf_results_dir"/$base.$test_count.descr + echo "$test_title_" >"$perf_results_dir"/$base.$test_count.descr base="$perf_results_dir"/"$PERF_RESULTS_PREFIX$(basename "$0" .sh)"."$test_count" "$test_wrapper_func_" "$test_title_" "$@" fi
Commit 5dccd9155f (t/perf: add iteration setup mechanism to perf-lib, 2022-04-04) modified the parameter parsing of test_wrapper() such that the test title was no longer in $1, and is instead in $test_title_. We correctly pass the new variable to the code which outputs the title to the log, but missed the spot in test_wrapper() where the title is written to the ".descr" file which is used to produce the final output table. As a result, all of the titles are missing from that table (or worse, using whatever was left in $1): $ ./p0000-perf-lib-sanity.sh [...] Test this tree ------------------------------ 0000.1: 0.01(0.01+0.00) 0000.2: 0.01(0.00+0.01) 0000.4: 0.00(0.00+0.00) 0000.5: true 0.00(0.00+0.00) 0000.7: 0.00(0.00+0.00) 0000.8: 0.00(0.00+0.00) After this patch, we get the pre-5dccd9155f output: Test this tree -------------------------------------------------------------------------- 0000.1: test_perf_default_repo works 0.00(0.00+0.00) 0000.2: test_checkout_worktree works 0.01(0.00+0.01) 0000.4: export a weird var 0.00(0.00+0.00) 0000.5: éḿíẗ ńöń-ÁŚĆÍÍ ćḧáŕáćẗéŕś 0.00(0.00+0.00) 0000.7: important variables available in subshells 0.00(0.00+0.00) 0000.8: test-lib-functions correctly loaded in subshells 0.00(0.00+0.00) Signed-off-by: Jeff King <peff@peff.net> --- t/perf/perf-lib.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)