On 11/20, Junio C Hamano wrote: > Thomas Gummerer <t.gummerer@xxxxxxxxx> writes: > > > @@ -178,10 +178,11 @@ test_wrapper_ () { > > export test_prereq > > if ! test_skip "$@" > > then > > > - base=$(basename "$0" .sh) > > So we used to use $base to hold the number and the filename here > > > - echo "$test_count" >>"$perf_results_dir"/$base.subtests > > - echo "$1" >"$perf_results_dir"/$base.$test_count.descr > > base="$perf_results_dir"/"$PERF_RESULTS_PREFIX$(basename "$0" .sh)"."$test_count" > > and then redefined it to be the results-prefix specific one. > > > > + rm -f "$base".* > > you now remove those results-prefix specific one for the $test_count > (I guess that is as specific you can go) before writing the count > and the description. > > So this "rm -f" is a no-op when perf-results-prefix is not empty? No, not quite. It is a no-op the first time a particular test runs for a specific prefix. The prefix is usually set by the 't/perf/run' script, and indicates the revision that is tested. So if we were running for example ./run deadbeef... p0001-rev-list.sh we'd have a file 'test-results/build_deadbeef....p0001-rev-list.1.times' in the t/perf directory. Now we add a 'test_size' test before the first 'test_perf' test, and run the tests again. After this run we'd still have that original file from the test results from the previous run, as well as a 'test-results/build_deadbeef....p0001-rev-list.1.size'. This duplicate file at the matching "$base" is what we want to avoid. The "rm -f" above would remove 'test-results/build_deadbeef....p0001-rev-list.1.times' so we now only have the '.size' file left, and 'aggregate.perl' gives us the right result. > > + no_prefix_base="$perf_results_dir"/$(basename "$0" .sh) > > + echo "$test_count" >>$no_prefix_base.subtests > > + echo "$1" >$no_prefix_base.$test_count.descr > > "$test_wrapper_func_" "$@" > > fi