[PATCH] d3dcompiler_43/tests: Added error tests to HLSL test suite

Travis Athougies iammisc at gmail.com
Thu Dec 23 13:42:35 CST 2010


To address, the C string literals issue, this is the same format I
have used for the other test strings. It would seem inconsistent to
break this now. Maybe a later patch can address this.

I've used IUnknown_Release in other places to free ID3D10Blobs, so it
also seems inconsistent to use ID3D10Blob_Release here. However, I did
not cast it those other times, so I will remove the casts in my next
attempt

And yes, compiled is NULL if the compile failed.

Travis.

2010/12/23 Rico Schüller <kgbricola at web.de>:
> Am 23.12.2010 00:37, schrieb Michael Stefaniuc:
>>
>> Hello Travis,
>>
>> On 12/22/2010 10:31 PM, Travis Athougies wrote:
>>>
>>> Tests to ensure the HLSL compiler won't crash on malformed input.
>>>
>>> ---
>>>  dlls/d3dcompiler_43/tests/hlsl.c |   87
>>> ++++++++++++++++++++++++++++++++++++++
>>>  1 files changed, 87 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/dlls/d3dcompiler_43/tests/hlsl.c
>>> b/dlls/d3dcompiler_43/tests/hlsl.c
>>> index 1f8e31c..a6a6099 100644
>>> --- a/dlls/d3dcompiler_43/tests/hlsl.c
>>> +++ b/dlls/d3dcompiler_43/tests/hlsl.c
>>> @@ -556,6 +556,92 @@ static void test_trig(IDirect3DDevice9 *device,
>>> IDirect3DVertexBuffer9 *quad_geo
>>>      }
>>>  }
>>>
>>> +static void test_fail(IDirect3DDevice9 *device, IDirect3DVertexBuffer9
>>> *qquad_geometry,
>>> +        IDirect3DVertexShader9 *vshader_passthru)
>>> +{
>>> +    static const char *undefined_variable_shader =
>>> +        "float4 test(float2 pos: TEXCOORD0) : COLOR  \
>>> +         {                                           \
>>> +            return y;                                \
>>> +         }";
>>
>> please use proper C string literals. Escaping the newline is a gcc
>> extension. You can use string literal concatenation to split the string
>> on multiple lines. Something like this would do:
>>        "float4 test(float2 pos: TEXCOORD0) : COLOR"
>>        "{"
>>        "   return y;"
>>        "}";
>>
>> bye
>>        michael
>>
>>
>>
> You probably may use ID3D10Blob_Release() instead of  IUnknown_Release().
> This way you could drop the cast.
>
> What happens to the ID3D10Blob *compiled? Is it still NULL after each call
> to D3DCompile or is it an valid blob which has to be released?
>
> Cheers
> Rico
>



-- 
Travis Athougies



More information about the wine-devel mailing list