From: Francisco Casas fcasas@codeweavers.com
So if we have tests that are todo on both sm<4 and sm>=6 we can write, e.g.:
todo(sm<4) todo(sm>=6) draw draw
OTOH if we were to have tests that are todo only in sm>=4 and sm<6 we can write:
todo(sm>=4,sm<6) draw quad
Effectively, multiple arguments in a single todo() are like an AND and multiple todo()-s behave like an OR. --- tests/shader_runner.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/shader_runner.c b/tests/shader_runner.c index 12af65252..ec6aac427 100644 --- a/tests/shader_runner.c +++ b/tests/shader_runner.c @@ -632,7 +632,7 @@ static void parse_test_directive(struct shader_runner *runner, const char *line)
runner->is_todo = false;
- if (match_string_with_args(line, "todo", &line, &sm_range_min, &sm_range_max)) + while (match_string_with_args(line, "todo", &line, &sm_range_min, &sm_range_max)) { if (sm_range_min <= runner->minimum_shader_model && runner->minimum_shader_model <= sm_range_max) runner->is_todo = true;