Rémi Bernon (@rbernon) commented about dlls/mfmediaengine/tests/mfmediaengine.c:
if (FAILED(notify.error))
{
todo_wine_if(tested_formats[i].engine_todo)
ok((notify.error == MF_E_INVALIDMEDIATYPE || broken(notify.error == E_INVALIDARG || notify.error == E_UNEXPECTED))
&& (tested_formats[i].bad_fmt || broken(!tested_formats[i].bad_fmt)), /* Broken: Some formats aren't working on VMs. */
"Media engine reported unexpected error %#lx on %s format.\n", notify.error, tested_formats[i].bad_fmt ? "bad" : "good");
skip("Had error %#lx.\n", notify.error);
goto skip_transfer;
}
else
{
todo_wine_if(tested_formats[i].engine_todo)
ok(!tested_formats[i].bad_fmt || broken(tested_formats[i].bad_fmt), /* Broken: Some formats aren't working on VMs. */
"Media engine reported unexpected error %#lx on %s format.\n", notify.error, tested_formats[i].bad_fmt ? "bad" : "good");
}
I think that this should perhaps instead be a condition on whether you expect an error or not (`bad_fmt`), then, once you checked that. Then you can have an extra check whether to skip the rest of the test depending on if wine returned an error when it shouldn't have.