Re: TAP Directives for XPASS and XFAIL tests with lib/tap-driver.sh

Jacob Bachmeyer <[email protected]> Sat, 5 Jul 2025 22:00:04 -0500
Newsgroups gmane.comp.sysutils.automake.general
Message-ID <[email protected]>
On 7/5/25 14:36, Soham wrote:
> Thanks for the replies everyone!
>
> On 7/3/25 21:40, Jacob Bachmeyer wrote:
>> [...]
>> TAP *should* *not* have semantics for that.  TAP scripts are supposed 
>> to be runnable directly or through trivial harnesses like piping the 
>> output through `grep 'not ok'`.  If the meaning of "ok" and "not ok" 
>> could be inverted on a test-by-test basis, there would be room for 
>> endless confusion.
>
> Yeah this makes more sense, thanks for the insight. It does make sense 
> that
> changing the meaning of ok/not ok is not a good idea, though the 
> binary choice
> does feel limiting.

The binary choice is *intended* to be limiting.  Either the behavior 
meets the specification ("ok") or it does not meet the specification 
("not ok").

The only other options are failures in the testsuite itself (DejaGnu 
"UNRESOLVED"; TAP "Bail out!"), an incomplete test (DejaGnu "UNTESTED"; 
TAP "TODO"), or lack of local support rendering the test meaningless 
(DejaGnu "UNSUPPORTED"; TAP "SKIP").

> A renewed proposal could be adding an " # XFAIL " directive, that simply
> moves the counting of the test to the XFAIL: row of the output of 
> `make check`.
> That would accomplish both the ability to programtically deem tests as 
> "XFAIL"
> and would preserve the semantics of ok/not ok. Please let me know 
> would be
> worthwhile.

As long as the understanding is that an XFAIL test is a test that 
*should* pass but currently fails due to bugs here or elsewhere.


-- Jacob