Zebediah Figura : tests: Add some tests for shaders which fail to preprocess.
Alexandre Julliard
julliard at winehq.org
Tue Nov 24 17:01:38 CST 2020
Module: vkd3d
Branch: master
Commit: 3bf15d6345b36fc4f6a9e142acbdf43453e263aa
URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=3bf15d6345b36fc4f6a9e142acbdf43453e263aa
Author: Zebediah Figura <zfigura at codeweavers.com>
Date: Tue Nov 24 00:29:57 2020 -0600
tests: Add some tests for shaders which fail to preprocess.
Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
Makefile.am | 2 ++
tests/preproc-invalid.shader_test | 8 ++++++++
tests/shader_runner_d3d12.c | 25 +++++++++++++++++++++++++
3 files changed, 35 insertions(+)
diff --git a/Makefile.am b/Makefile.am
index 59e054f..ec82707 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -67,6 +67,7 @@ vkd3d_shader_tests = \
tests/preproc-if.shader_test \
tests/preproc-ifdef.shader_test \
tests/preproc-if-expr.shader_test \
+ tests/preproc-invalid.shader_test \
tests/preproc-macro.shader_test \
tests/swizzle-0.shader_test \
tests/swizzle-1.shader_test \
@@ -213,6 +214,7 @@ XFAIL_TESTS = \
tests/preproc-if.shader_test \
tests/preproc-ifdef.shader_test \
tests/preproc-if-expr.shader_test \
+ tests/preproc-invalid.shader_test \
tests/preproc-macro.shader_test \
tests/swizzle-0.shader_test \
tests/swizzle-1.shader_test \
diff --git a/tests/preproc-invalid.shader_test b/tests/preproc-invalid.shader_test
new file mode 100644
index 0000000..8a30aad
--- /dev/null
+++ b/tests/preproc-invalid.shader_test
@@ -0,0 +1,8 @@
+[preproc fail]
+#error
+
+[preproc fail]
+#include <nonexistent_file>
+
+[preproc fail]
+#include "nonexistent_file"
diff --git a/tests/shader_runner_d3d12.c b/tests/shader_runner_d3d12.c
index 39495fa..bf5c3e0 100644
--- a/tests/shader_runner_d3d12.c
+++ b/tests/shader_runner_d3d12.c
@@ -103,6 +103,7 @@ enum parse_state
{
STATE_NONE,
STATE_PREPROC,
+ STATE_PREPROC_INVALID,
STATE_SHADER_INVALID_PIXEL,
STATE_SHADER_PIXEL,
STATE_TEST,
@@ -347,6 +348,27 @@ START_TEST(shader_runner_d3d12)
break;
}
+ case STATE_PREPROC_INVALID:
+ {
+ ID3D10Blob *blob = NULL, *errors = NULL;
+ HRESULT hr;
+
+ hr = D3DPreprocess(shader_source, strlen(shader_source), NULL, NULL, NULL, &blob, &errors);
+ ok(hr == E_FAIL, "Got unexpected hr %#x.\n", hr);
+ ok(!blob, "Expected no compiled shader blob.\n");
+ ok(!!errors, "Expected non-NULL error blob.\n");
+
+ if (errors)
+ {
+ if (vkd3d_test_state.debug_level)
+ trace("%s\n", (char *)ID3D10Blob_GetBufferPointer(errors));
+ ID3D10Blob_Release(errors);
+ }
+
+ shader_source_len = 0;
+ break;
+ }
+
case STATE_PREPROC:
{
ID3D10Blob *blob = NULL, *errors = NULL;
@@ -389,6 +411,8 @@ START_TEST(shader_runner_d3d12)
state = STATE_TEST;
else if (!strcmp(line, "[preproc]\n"))
state = STATE_PREPROC;
+ else if (!strcmp(line, "[preproc fail]\n"))
+ state = STATE_PREPROC_INVALID;
vkd3d_test_set_context("Section %.*s, line %u", strlen(line) - 1, line, line_number);
}
@@ -402,6 +426,7 @@ START_TEST(shader_runner_d3d12)
break;
case STATE_PREPROC:
+ case STATE_PREPROC_INVALID:
case STATE_SHADER_INVALID_PIXEL:
case STATE_SHADER_PIXEL:
{
More information about the wine-cvs
mailing list