From: Derrick Stolee Date: Wed, 24 Jun 2026 13:43:53 GMT Subject: Re: [PATCH v2 2/7] t6600: add test cases for side-exhaustion edge cases Message-ID: In-Reply-To: <6151b8e0a3989a51e6d9717e0ceac439f26f1c1d.1782303254.git.gitgitgadget@gmail.com> On 6/24/2026 8:14 AM, Elijah Newren via GitGitGadget wrote: > From: Elijah Newren > > 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. > +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