On 03/19/2016 12:52 AM, Matteo Bruni wrote:
2016-03-17 12:59 GMT+01:00 Paul Gofman gofmanp@gmail.com:
I don't like that broken(), it isn't checking much (i.e. the condition is true for almost any value) and overloading the "todo" field for that doesn't seem too clean.
Maybe something like this for the test results table would help:
static const struct { const char *name; unsigned int expected[4]; BOOL todo[4]; unsigned int expected_broken[4]; }
I think all the broken results are != 0 so expected_broken also works as a flag. If that's not the case you can add explicit "BOOL broken[4]" flags. You can then leave out the todo and expected_broken fields for the table entries which don't require them, since they end up zero-initialized.
Maybe then I would rather get rid of "broken" macro at all and rather check different values for 32 bit and 64 bit arch, using expected_64bit instead of expected_broken, which will be filled up only where are the differences? Then there will be a bit of Wine todo's left in the end of the series (4 for win32 and 1 for win64), which are actually there but now not explicitly marked as todo (test results have the value matching wine but "broken" on either win32 or win64).