Module: wine Branch: master Commit: b996a969818685878f1dbe04b773bc4c5f4fd5c4 URL: https://gitlab.winehq.org/wine/wine/-/commit/b996a969818685878f1dbe04b773bc4...
Author: Matteo Bruni mbruni@codeweavers.com Date: Tue Aug 30 17:58:40 2022 +0200
d3dx10/tests: Add a test for D3DX10PreprocessShaderFromMemory().
---
dlls/d3dx10_43/tests/d3dx10.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+)
diff --git a/dlls/d3dx10_43/tests/d3dx10.c b/dlls/d3dx10_43/tests/d3dx10.c index f750d0d3667..b8a9d8cf214 100644 --- a/dlls/d3dx10_43/tests/d3dx10.c +++ b/dlls/d3dx10_43/tests/d3dx10.c @@ -3958,6 +3958,40 @@ static void test_create_effect_from_resource(void) ok(!refcount, "Unexpected refcount.\n"); }
+static void test_preprocess_shader(void) +{ + static const char shader_source[] = + "float4 main()\n" + "{\n" + " return float4(1.0);\n" + "}\n"; + ID3D10Blob *preprocessed, *errors; + HRESULT hr, hr2; + + hr2 = 0xdeadbeef; + hr = D3DX10PreprocessShaderFromMemory(NULL, 0, NULL, NULL, NULL, + NULL, &preprocessed, &errors, &hr2); + ok(hr == E_FAIL, "Unexpected hr %#lx.\n", hr); + ok(hr2 == 0xdeadbeef, "Unexpected hr2 %#lx.\n", hr2); + + hr2 = 0xdeadbeef; + hr = D3DX10PreprocessShaderFromMemory(shader_source, strlen(shader_source), NULL, NULL, NULL, + NULL, &preprocessed, &errors, NULL); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(!!preprocessed, "Unexpected preprocessed %p.\n", preprocessed); + ok(!errors, "Unexpected errors %p.\n", errors); + ID3D10Blob_Release(preprocessed); + + hr2 = 0xdeadbeef; + hr = D3DX10PreprocessShaderFromMemory(shader_source, strlen(shader_source), NULL, NULL, NULL, + NULL, &preprocessed, &errors, &hr2); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + ok(hr == hr2, "Unexpected hr2 %#lx.\n", hr2); + ok(!!preprocessed, "Unexpected preprocessed %p.\n", preprocessed); + ok(!errors, "Unexpected errors %p.\n", errors); + ID3D10Blob_Release(preprocessed); +} + START_TEST(d3dx10) { test_D3DX10UnsetAllDeviceObjects(); @@ -3972,4 +4006,5 @@ START_TEST(d3dx10) test_font(); test_sprite(); test_create_effect_from_resource(); + test_preprocess_shader(); }