Module: wine Branch: master Commit: ab78cffea7ac676a7041c7d6941b61140cfe005c URL: http://source.winehq.org/git/wine.git/?a=commit;h=ab78cffea7ac676a7041c7d694...
Author: Paul Gofman gofmanp@gmail.com Date: Mon Apr 18 20:09:27 2016 +0300
d3dx9/tests: Add test for D3DXSHMultiply3 arguments aliasing.
Signed-off-by: Paul Gofman gofmanp@gmail.com Signed-off-by: Matteo Bruni mbruni@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/d3dx9_36/tests/math.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-)
diff --git a/dlls/d3dx9_36/tests/math.c b/dlls/d3dx9_36/tests/math.c index 190fb84..dddd806 100644 --- a/dlls/d3dx9_36/tests/math.c +++ b/dlls/d3dx9_36/tests/math.c @@ -3108,10 +3108,18 @@ static void test_D3DXSHMultiply3(void) unsigned int i; FLOAT a[20], b[20], c[20]; /* D3DXSHMultiply3 only modifies the first 9 elements of the array */ - const FLOAT expected[20] = - { 7.813913f, 2.256058f, 5.9484005f, 4.970894f, 2.899858f, 3.598946f, - 1.726572f, 5.573538f, 0.622063f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, - 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f }; + static const float expected[20] = + { + 7.813913f, 2.256058f, 5.9484005f, 4.970894f, 2.899858f, 3.598946f, + 1.726572f, 5.573538f, 0.622063f, 9.0f, 10.0f, 11.0f, 12.0f, 13.0f, + 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 19.0f + }; + static const float expected_aliased[20] = + { + 454.092499f,2.126404f, 5.570401f, 15.330379f, 22.796087f, 43.604126f, + 4.273841f, 175.772034f, 237.672729f, 1.09f, 1.1f, 1.11f, 1.12f, 1.13f, + 1.14f, 1.15f, 1.16f, 1.17f, 1.18f, 1.19f + };
for (i = 0; i < 20; i++) { @@ -3122,7 +3130,14 @@ static void test_D3DXSHMultiply3(void)
D3DXSHMultiply3(c, a, b); for (i = 0; i < 20; i++) - ok(relative_error(c[i], expected[i]) < admitted_error, "Expected[%d] = %f, received = %f\n", i, expected[i], c[i]); + ok(relative_error(c[i], expected[i]) < admitted_error, + "Expected[%d] = %f, received = %f\n", i, expected[i], c[i]); + for (i = 0; i < 20; i++) + c[i] = a[i]; + D3DXSHMultiply3(c, c, b); + for (i = 0; i < 20; i++) + ok(relative_error(c[i], expected_aliased[i]) < admitted_error, + "Expected[%d] = %f, received = %f\n", i, expected[i], c[i]); }
static void test_D3DXSHMultiply4(void)