RFC: Allow marking unreliable tests as flaky.
Rémi Bernon
rbernon at codeweavers.com
Wed Jun 1 08:52:10 CDT 2022
On 6/1/22 15:26, Francois Gouget wrote:
>
> Wine has many unreliable tests which makes it hard to know whether a
> patch causes new failures. So one proposal was to mark unreliable tests
> as flaky, and have a mode where flaky failures can ignored by setting
> $WINETEST_ALLOW_FLAKY.
>
> So one would be able to apply a patch, run 'WINETEST_ALLOW_FLAKY=1 make
> test' and if that fails that means the patch introduces a new failure.
>
> The way it works is that when a flaky test fails the message is 'Flaky
> failed...' instead of 'Test failed...'. I also added the count of flaky
> failures to the summary line. So the flaky failures are not totally
> swept under the rug. The main difference is that if
> $WINETEST_ALLOW_FLAKY is set, the exit code is 0 if the only failures
> are flaky ones.
>
>
> That still leaves some open questions though:
>
> * Should the message be 'Test failed' instead of 'Flaky failed' when
> $WINETEST_ALLOW_FLAKY is not set? I opted for the latter because it
> adds information that the failed test has been marked as flaky.
>
Imho the message should keep the 'Test failed' / 'Test succeeded'
prefixes. For instance I think it would look more consistent with
something like:
Test succeeded inside todo block:
Test succeeded inside flaky block:
Test marked todo:
Test marked flaky:
Test failed:
Test succeeded:
>
> * On a related note the patch below has flaky_windows and flaky_wine
> macros. Is that too fine grained? Maybe we don't want to run the risk
> of marking a test as flaky_windows only to discover later that it can
> also fail in Wine? But conversely, wouldn't it be valuable to know
> that a test is only flaky in Wine and not in Windows?
>
> Note: flaky_windows is a bit long but I was worried that flaky_win
> would be too similar to flaky_wine.
>
> * I decided having flaky_{windows,wine}_if() macros would be overkill.
I think flaky_if should be enough, and then there could be some shortcut
global variables for `!strcmp(winetest_platform, "windows" / "wine")`,
so it's not too long to write.
Cheers,
--
Rémi Bernon <rbernon at codeweavers.com>
More information about the wine-devel
mailing list