RFC: Monitoring old PRs, new dg directives
Marek Polacek
polacek@redhat.com
Wed Aug 5 13:18:16 GMT 2020
On Wed, Aug 05, 2020 at 08:58:40AM +0100, Richard Sandiford wrote:
> Marek Polacek via Gcc-patches <gcc-patches@gcc.gnu.org> writes:
> > On Thu, Jul 30, 2020 at 11:54:23AM +0200, Jakub Jelinek via Gcc-patches wrote:
> >> On Tue, Jul 28, 2020 at 05:44:47PM -0400, Marek Polacek via Gcc-patches wrote:
> >> > We will still have a surfeit of bugs that we've given short shrift to, but
> >> > let's at least automate what we can. The initial addition of the relevant
> >> > old(-ish) tests won't of course happen automagically, but it's a price I'm
> >> > willing to pay. My goal here isn't merely to reduce the number of open PRs;
> >> > it is to improve the testing of the compiler overall.
> >> >
> >> > Thoughts?
> >>
> >> Looks useful to me, but I'd think it might be desirable to use separate
> >> directories for those tests, so that it is more obvious that it is a
> >> different category of tests. Now that we use git, just using git mv
> >> to move them to another place once they are fixed for good (together with
> >> some dg-* directive tweaks) wouldn't be that much work later.
> >>
> >> So having gcc.dg/unfixed/ , g++.dg/unfixed/ , c-c++-common/unfixed/
> >> and their torture/ suffixed variants (or better directory name for those)?
> >
> > Thanks. I was afraid that it would cause too much friction when you happen
> > to fix one of the unfixed tests: you will have to find the correct directory
> > to put the test in and perhaps even rename the test to avoid conflicts with
> > tests with the same name in the final destination. But it's also true that
> > git is much better at moving files, and the extra clarity might be worth the
> > occasional hassle. It would also make it easy to skip testing unfixed tests.
> > dg-ice tests are easy to spot/grep for, but accepts-invalid/rejects-valid are
> > a different story.
>
> FWIW, I agree with Mike that it might be better to put tests in the
> location that they'd have normally. Some reasons:
>
> - As already mentioned, it'd give more stable names. That's not an
> issue for things like git log, but it does mean that comparing one
> set of test results with another gives a meaningful XFAIL->PASS
> transition rather than a “removed test” + “added test” transition.
> It's also more convenient when comparing different branches.
>
> - There are a lot of specialised .exp harnesses, and I don't think it
> would be a good idea to encourage all of them to have unfixed/
> variants, or unfixed/ subdirectories. E.g. vect.exp is not something
> we'd want to duplicate or subclass, but there are others.
>
> - There's a temptation to remove empty directories/harnesses when
> they have no associated tests, so we might oscillate between having
> unfixed/ directories and not. (The alternative is for the directory
> or harness to stick around based on the fact that it was useful at
> some point in the past.)
>
> - It's inconsistent with existing tests that are already XFAILed for all
> targets. Having a separate directory for completely-XFAILed tests
> might create a requirement (or the impression of a requirement) to
> move tests to an unfixed/ directory when XFAILing them.
>
> - IMO it draws an artificial distinction between tests that are
> completely XFAILed on all targets and tests that are either partly
> XFAILed for all targets, or XFAILed only for some targets.
Those are all great points. I have to reconsider my position once again ;-).
Perhaps we should add an // UNFIXED comment then to easily disambiguate
between tests that are not fixed. But I fear that people won't always
use this consistently.
Marek
More information about the Gcc-patches
mailing list