dejagnu
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Excluding FAILs from UNSUPPORTED test cases


From: Jacob Bachmeyer
Subject: Re: Excluding FAILs from UNSUPPORTED test cases
Date: Sun, 25 Sep 2022 20:11:43 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1.22) Gecko/20090807 SeaMonkey/1.1.17 Mnenhy/0.7.6.0

Arsen Arsenović wrote:
Hi,

On Sunday, 25 September 2022 06:24:06 CEST you wrote:
Running ${tool}-dg-prune earlier works both ways, allowing the
callback prune routine to also remove or modify any output that might
confuse the message-matching mechanism.  Really, given the documented
(such as it is) feature for ${tool}-dg-prune to be able to declare
the entire test unsupported, I would expect it to filter the results
before messages are checked.
Re-reading the docs, I think you're right in terms of the semantics that the ${tool}-dg-prune callback should implement.

As a test, I re-ran the GCC test suite after moving the invocation of ${tool}-dg-prune output to be right after ${tool}-dg-test (so, line 700 of lib/dg.exp), which introduced 14361 new FAILs (but also fixed a few tests).

The tests that it fixed probably need some attention in the form of moving some "preclean" steps to GCC's ${tool}-dg-test.

It'd appear that all but sixteen of these new fails are a result of the GCC-specific dg-message and multiline.exp, and some of those sixteen fail due to trying to test for the presence of strings they prune (i.e. they want to detect that there's at least one of some diagnostic, AFAICT). I'll see if I can do anything to remedy these.

Looking at this again, I now agree with your earlier position on the timing of ${tool}-dg-prune, since ${tool}-dg-test can perform any needed immediate post-processing itself before returning the results.

Keeping the current interface while fixing the {PASS,FAIL}+UNSUPPORTED issue is also possible: we can build up a list of results from scanning the messages, but not actually report them to the framework until after checking the return value of ${tool}-dg-prune for an "abandon test" flag. Note that ${tool}-dg-test could produce this flag in lieu of actual output and ${tool}-dg-prune simply pass it along. (I suspect that the current Tcl list facilities that would enable this were not yet available when dg.exp was written more than 20 years ago.)

The main reason I am reluctant to simply accept the "abandon test" flags directly from ${tool}-dg-test is that that would completely break backwards compatibility: testsuites depending on this would absolutely need DejaGnu 1.6.4, and I think we may be able to get most of the way there (at least getting an UNSUPPORTED result reliably into the summary) with existing code.

In the meanwhile, I filed a bug so that this issue can be tracked in the GNU bug tracker.
Excellent! It is now tracked as PR58065. I expect to have a regression test and a preliminary patch in a few days.


-- Jacob



reply via email to

[Prev in Thread] Current Thread [Next in Thread]