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?