Going forward, if all else fails, and we do start piling up workarounds for upstream bugs (which is likely unavoidable in general), I really want to see a way to mark those bugs that (a) lets us know when the bugs get fixed upstream, so we can remove them, and (b) doesn't hide it if the feature is also, independently, broken in Wine. This patch series, and other patches like 8bd9fcbde, just use "todo_wine_if (!a) ok (a)", which does neither.
vkd3d has a "bug" keyword, but this doesn't really address either concern. As far as I can tell "bug_if (a) ok(b)" is effectively shorthand for "todo_wine_if (a && !b) ok(b)" [and also reporting the bug count separately from the todo count, but practically I fail to see the point in this.]
What I'd propose instead, just from brainstorming, is that we tag bugs like quirks, and run the tests with a list of bugs (as an env var probably) that we expect to affect any given platform, hardcoded into the CI or any given developer's machine. E.g. we could annotate tests like
bug("fvwm2-restore") ok(IsIconic(device_window), ...);
or alternatively
todo_wine_if (bug("fvwm2-restore")) ok(IsIconic(device_window), ...);
and run the tests with
WINE_TEST_BUGS=fvwm2-restore,llvmpipe-something,et-cetera
Thoughts?
To be clear I'm happy to write up this proposal myself, if it sees consensus; I'm just commenting on this patch series because it's the straw that broke the camel's back.