Zebediah Figura : tests: Allow skipping shader tests if requirements are not met.

Alexandre Julliard julliard at winehq.org
Fri Apr 8 14:42:28 CDT 2022


Module: vkd3d
Branch: master
Commit: 83a3de85294a24c85e3c4dc8c94a2e203af4b780
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=83a3de85294a24c85e3c4dc8c94a2e203af4b780

Author: Zebediah Figura <zfigura at codeweavers.com>
Date:   Thu Apr  7 18:58:14 2022 -0500

tests: Allow skipping shader tests if requirements are not met.

Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 tests/shader_runner.c | 7 ++++++-
 tests/shader_runner.h | 3 +++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/tests/shader_runner.c b/tests/shader_runner.c
index ffa4cf61..05c0fbe1 100644
--- a/tests/shader_runner.c
+++ b/tests/shader_runner.c
@@ -595,11 +595,15 @@ void run_shader_tests(struct shader_runner *runner, int argc, char **argv, const
             {
                 case STATE_INPUT_LAYOUT:
                 case STATE_NONE:
-                case STATE_REQUIRE:
                 case STATE_SAMPLER:
                 case STATE_TEST:
                     break;
 
+                case STATE_REQUIRE:
+                    if (runner->ops->check_requirements && !runner->ops->check_requirements(runner))
+                        goto out;
+                    break;
+
                 case STATE_TEXTURE:
                 case STATE_VERTEX_BUFFER:
                     set_resource(runner, runner->ops->create_resource(runner, &current_resource));
@@ -832,6 +836,7 @@ void run_shader_tests(struct shader_runner *runner, int argc, char **argv, const
         }
     }
 
+out:
     for (i = 0; i < runner->input_element_count; ++i)
         free(runner->input_elements[i].name);
     free(runner->input_elements);
diff --git a/tests/shader_runner.h b/tests/shader_runner.h
index a98917c5..a304ba91 100644
--- a/tests/shader_runner.h
+++ b/tests/shader_runner.h
@@ -110,6 +110,9 @@ struct shader_runner
 
 struct shader_runner_ops
 {
+    /* Returns false if unable to run the given tests. If NULL, all tests are
+     * run. */
+    bool (*check_requirements)(struct shader_runner *runner);
     struct resource *(*create_resource)(struct shader_runner *runner, const struct resource_params *params);
     void (*destroy_resource)(struct shader_runner *runner, struct resource *resource);
     void (*draw)(struct shader_runner *runner, D3D_PRIMITIVE_TOPOLOGY primitive_topology, unsigned int vertex_count);




More information about the wine-cvs mailing list