Re: [PATCH v2 2/7] t6600: add test cases for side-exhaustion edge cases
- From
Derrick Stolee <stolee@gmail.com>
- Date
- Jun 24, 2026, 13:43 UTC
- Message-ID
- <b4b33635-1279-46c0-819a-d29cc13921f5@gmail.com>
- In-Reply-To
- <6151b8e0a3989a51e6d9717e0ceac439f26f1c1d.1782303254.git.gitgitgadget@gmail.com>
On 6/24/2026 8:14 AM, Elijah Newren via GitGitGadget wrote:
Show 11 quoted lines
> From: Elijah Newren <newren@gmail.com> > > Add test cases to t6600-test-reach.sh that exercise edge cases in the > side-exhaustion optimization for paint_down_to_common(): > > - in_merge_bases_many:self: commit is both A and one of the X inputs > - get_merge_bases_many:duplicate-twos: duplicate entries in X list > - get_merge_bases_many:pending-stale: STALE transition on an > already-painted commit (ps-* diamond topology) > - get_merge_bases_many:infinity-both-sides: both tips outside the > commit-graph with non-monotonic dates (pi-* topology)
I'm happy that these cases now exist.
Show 9 quoted lines
> +test_expect_success 'in_merge_bases_many:self' ' > + cat >input <<-\EOF && > + A:commit-6-8 > + X:commit-5-9 > + X:commit-6-8 > + EOF > + echo "in_merge_bases_many(A,X):1" >expect && > + test_all_modes in_merge_bases_many > +'
and using 'test_all_modes' is great to get coverage of all the different commit-graph states. In reply to patch v2 4/7 I ask to see the results of the traces in these kinds of test cases, but each of these modes will have different values.
One way to make these tests have potential to check exact stats without too much extra work would be to update 'test_all_modes' to run each command with GIT_TRACE2_EVENT set to a known trace file (reset each time) that can then be checked after verifying that the results of each command is the same.
Then, these tests could have lines such as
test_trace2_data paint_down_to_common steps 20 <trace-full.txt && test_trace2_data paint_down_to_common steps 30 <trace-half.txt && test_trace2_data paint_down_to_common steps 40 <trace-none.txt
after the test_all_modes line.
Thanks, -Stolee