diff mbox series

perf-lib: fix missing test titles in output

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

Commit Message

Jeff King June 16, 2022, 7:09 a.m. UTC
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(-)

Comments

Derrick Stolee June 16, 2022, 1:03 p.m. UTC | #1
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
Neeraj Singh (WINDOWS-SFS) June 16, 2022, 7:51 p.m. UTC | #2
Apologies for the breakage and thanks for the fix.
It looks good to me!

-Neeraj
diff mbox series

Patch

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