Re: [#4840] Merge assertion failure in svn_sort__array_insert

2020-01-17 Thread Nathan Hartman
On Fri, Jan 17, 2020 at 10:36 AM Daniel Shahaf wrote: > Julian and I discussed this on IRC today; the conclusion is: > > - With the behaviour of the test with seed=0 having been manually > reviewed, we're satisfied that the test achieves adequate coverage. > > - The properties that the magic num

Re: [#4840] Merge assertion failure in svn_sort__array_insert

2020-01-17 Thread Daniel Shahaf
Julian Foad wrote on Thu, 16 Jan 2020 09:18 +00:00: > I inspected the debug prints whizzing by, and noted that it included > each of the different kinds of input cases I expected (e.g. empty > ranges, reversed ranges, duplicate ranges, overlapping ranges, etc.) and > that the results included ex

Re: [#4840] Merge assertion failure in svn_sort__array_insert

2020-01-16 Thread Julian Foad
Daniel Shahaf wrote: PRNG makes the test code harder to read and to maintain, makes it more difficult to diagnose FAILs, and increases the risk of a bug PRNG use makes for reasonably compact and readable test generation, and totally easy enough to reproduce and diagnose failures, IMO. On the

Re: [#4840] Merge assertion failure in svn_sort__array_insert

2020-01-16 Thread Julian Foad
Nathan Hartman wrote: On Wed, Jan 8, 2020 at 9:24 AM Daniel Shahaf wrote: > Julian Foad wrote on Wed, Jan 08, 2020 at 10:14:42 +: > > The suggestion was that we should prefer the regression test suite to be > > deterministic, [...] > But unlike nearly all of the test suite, we don't actually

Re: [#4840] Merge assertion failure in svn_sort__array_insert

2020-01-15 Thread Daniel Shahaf
Julian, would you like to answer the question in the second quoted paragraph? Daniel Shahaf wrote on Wed, Jan 08, 2020 at 14:24:39 +: > Julian Foad wrote on Wed, Jan 08, 2020 at 10:14:42 +: > > What? > > Using a PRNG makes the test code harder to read and to maintain, makes it > more diff

Re: [#4840] Merge assertion failure in svn_sort__array_insert

2020-01-08 Thread Nathan Hartman
On Wed, Jan 8, 2020 at 9:24 AM Daniel Shahaf wrote: > Julian Foad wrote on Wed, Jan 08, 2020 at 10:14:42 +: > > The suggestion was that we should prefer the regression test suite to be > > deterministic, running the same fixed set of tests each time. Repeating by > > default, not just repeata

Re: [#4840] Merge assertion failure in svn_sort__array_insert

2020-01-08 Thread Daniel Shahaf
Julian Foad wrote on Wed, Jan 08, 2020 at 10:14:42 +: > Daniel Shahaf wrote: > > Julian Foad wrote on Tue, Jan 07, 2020 at 09:47:48 +: > > > For now, I propose to make each test use a repeatable sequence, > > > independent > > > of the other tests. I think that will be enough; the options

Re: [#4840] Merge assertion failure in svn_sort__array_insert

2020-01-08 Thread Julian Foad
Daniel Shahaf wrote: Julian Foad wrote on Tue, Jan 07, 2020 at 09:47:48 +: For now, I propose to make each test use a repeatable sequence, independent of the other tests. I think that will be enough; the options I mentioned can be added if and when there is a demand for them. I don't unde

Re: [#4840] Merge assertion failure in svn_sort__array_insert

2020-01-07 Thread Daniel Shahaf
Julian Foad wrote on Tue, Jan 07, 2020 at 09:47:48 +: > For now, I propose to make each test use a repeatable sequence, independent > of the other tests. I think that will be enough; the options I mentioned > can be added if and when there is a demand for them. > > How does that sound? I don

Re: [#4840] Merge assertion failure in svn_sort__array_insert

2020-01-07 Thread Julian Foad
Nathan Hartman wrote: Random input tests are not deterministic in the sense that one never knows in advance which inputs will be tested. > While that's great for finding bugs that a deterministic test won't surface, I wonder if we should try to keep the regression test suite deterministic (as mu

Re: [#4840] Merge assertion failure in svn_sort__array_insert

2020-01-06 Thread Nathan Hartman
On Mon, Jan 6, 2020 at 12:05 PM Julian Foad wrote: > > Nathan Hartman wrote: > > I assume that's the one added in r1872121, > > test_mergeinfo_merge_random_non_validated_inputs(). > > > > I got a fail on it. > > Thanks for the report. I made a bad assumption in the test code. > > http://svn.apach

Re: [#4840] Merge assertion failure in svn_sort__array_insert

2020-01-06 Thread Julian Foad
Nathan Hartman wrote: I assume that's the one added in r1872121, test_mergeinfo_merge_random_non_validated_inputs(). I got a fail on it. Thanks for the report. I made a bad assumption in the test code. http://svn.apache.org/r1872388 should fix it. - Julian

Re: [#4840] Merge assertion failure in svn_sort__array_insert

2020-01-03 Thread Nathan Hartman
On Mon, Dec 30, 2019 at 12:28 PM Julian Foad wrote: > I have added thorough random-input testing for svn_rangelist_merge2(). I assume that's the one added in r1872121, test_mergeinfo_merge_random_non_validated_inputs(). I got a fail on it. Quoth the function's docstring: "Unlike the tests with

Re: [#4840] Merge assertion failure in svn_sort__array_insert

2019-12-30 Thread Julian Foad
Now I have made some progress. The relevant commits are noted in the issue tracker. > Ill-defined canonical form for a rangelist. Not yet tackled. It doesn't seem to be an immediate blocker. > Rangelist "merge" is a set-union operation. Not re-written yet. This is one of the next steps; se

Re: [#4840] Merge assertion failure in svn_sort__array_insert

2019-12-13 Thread Julian Foad
something like them. - Julian For issue #4840, "Merge assertion failure in svn_sort__array_insert". * subversion/libsvn_subr/mergeinfo.c (range_to_string): Print an empty range in the form "[empty-range@100*]". --This line, and those below, will be ignored-- Index: su

[#4840] Merge assertion failure in svn_sort__array_insert

2019-12-11 Thread Julian Foad
TL;DR: I'm debugging this issue, and finding multiple problems. This is a summary of where I have got to so far. http://subversion.apache.org/issue/4840 I am investigating an assertion failure. I received a stack trace without parameter values, from which I quote the relevant part: #4 svn_