Subject: Re: [RFC 0/7] selftests: kselftest_harness: use common result printing helper

From: Jakub Kicinski <[email-masked]>
Date: Fri, 16 Feb 2024 16:31:19 -0800

On Fri, 16 Feb 2024 13:32:12 -0800 Kees Cook wrote:
> On Thu, Feb 15, 2024 at 04:41:15PM -0800, Jakub Kicinski wrote:
> > First 3 patches rearrange kselftest_harness to use exit code
> > as an enum rather than separate passed/skip/xfail members.  
> 
> One thought I was having here while porting other stuff to use XFAIL was
> that in the strictest sense, XFAIL isn't like SKIP, which can be used to
> avoid running a test entirely. XFAIL is about the expected outcome,
> which means that if we're going to support XFAIL correctly, we need to
> distinguish when a test was marked XFAIL but it _didn't_ fail.
> 
> The implicit expectation is that a test outcome should be "pass". If
> something is marked "xfail", we're saying a successful test is that it
> fails. If it _passes_ instead of failing, this is unexpected and should
> be reported as well. (i.e. an XPASS -- unexpected pass)
> 
> I think if we mix intent with result code, we're going to lose the
> ability to make this distinction in the future. (Right now the harness
> doesn't do it either -- it treats XFAIL as a special SKIP.)

Hm.

Let's call "case" the combination of fixture + variant + test.
Currently nothing identifies a single "case" in the harness.
We just recursively walk dimensions.

We can add a new registration list and let user register expected
failures. It should work nicely as long as the exceptions are very
rare. Which is hopefully the case.

Let's see if I can code this up in 30 min. While I do that can you 
ELI5 what XPASS is for?! We'll never going to use it, right?