On 26.01.2016 18:06, Bernhard Übelacker wrote:
Currently list based tests, where just some elements are todo_wine, need the same ok()-line twice, one without and one with todo_wine. (e.g. dlls/msvcr120/tests/msvcr120.c line 243)
This patch makes it possible to use a single ok()-line prefixed with a todo_wine_if(condition). e.g.: todo_wine_if(tests[i].todo) ok(...);
Questions:
- Is "todo_level" ever supposed to have a value greater than 1?
I don't know if its used in practice anywhere, but the old way handling of nested todo_wines was definitely more clear than your new proposed method. I would suggest to keep this "feature", even when its probably not used in the Wine source. The first idea which comes to my mind would be to store it in a bitmask (which allows at least up to 32 bit nested todos when declaring todo_level as unsigned integer value). For example:
start: todo_level = (todo_level << 1) | (is_todo != 0); testing: if (todo_level != 0) end: todo_level >>= 1;
Changes: 2016-01-26:
- Give parameter is_todo just to *start_dodo.
- Decrement in *end_todo just when todo_level > 0.
2016-01-22:
- First version
(Thanks to Sebastian Lackner for review.) Comments: https://www.winehq.org/pipermail/wine-devel/2016-January/111386.html
include/wine/test.h | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-)