On 7/2/25 13:00, Soham wrote:
[...]

Well, I forgot to clarify in the original email, but my particular target
use-case is is "unit tests" written in code, say for a particular function or class. In that case it gets cumbersome to have one binary per test (atleast IMO).
My idea is to add support for a TAP output like so:

[not] ok 5 - Call sys_open with negative file descriptor # XFAIL


Where the trailing XFAIL directive would put it in the output for XFAIL,
and consider the test "passing". If it were to be an "ok" it would count as a
failing test.


[...]

Essentially its encoding the expected-fail information in the TAP message itself
rather than in the surrounding runner script or harness.

This is a good idea---code in the test script can determine if the test is expected to fail and mark it accordingly.  Note that expected failures should *not* mean an expected error return:  in your example of passing invalid arguments to a system call, the test *passes* (TAP "ok") when the system returns an error.

XFAIL is for tests that demonstrate a bug that has not yet been fixed or that expose a bug in some underlying layer.  The test really does fail---the result obtained is *not* what it should be, but that failure has come to be expected.


-- Jacob


Reply via email to