[1/5] user32: Added tests for DrawIcon and DrawIconEx

Paul Vriens paul.vriens.wine at gmail.com
Sat Jun 6 07:24:33 CDT 2009


Joel Holdsworth wrote:
>> GetVersion() is not a problem in itself but we make an effort to decide 
>> what to test based on behavior not version. If it absolutely can not be 
>> avoided (and you will see some examples in the code) GetVersion() is 
>> accepted.
> 
> I think this is the case here. DrawIcon[Ex]'s behaviour has evolved over
> time, but we want Wine to support the modern behaviour not the 9X
> behaviour.
> 
>> You reference GdiAlphaBlend(). That's not part of user32. If you are 
>> sure Windows uses this for alpha blend support you can always check for 
>> the availability of the GdiAlphaBlend() function:
> 
> Sorry - that was a mistake in my earlier e-mail. The version of Windows
> that introduced GdiAlphaBlend also introduced alpha-channel rendering in
> DrawIcon[Ex] as well (which must use GdiAlphaBlend internally). So in
> this case it would be better to check version numbers not check for the
> presence of GdiAlphaBlend, because that's not what I'm testing.
> 
>> This will give you a chance to decide not to run the tests on these 
>> platforms. I already ran you tests on NT4 and they pass. This doesn't 
>> mean that all tests run on NT4 as you sometimes return() without having 
>> done an ok() test or with a trace() or skip()/win_skip(), like here:
>>
>> +    hicon = create_test_icon(hdc, 2, 1, bpp, 0, (UINT32*)&color, 
>> sizeof(color));
>> +    if (!hicon) return;
>>
>> Is there a reason this could fail? If not you should add an ok() test 
>> for hicon. If yes, you should use skip() or win_skip() to show these 
>> tests are skipped but with a correct/expected reason.
>>
>> There are more of these "blind" return's in your patch.
> 
> Ok - yes these can be fixed. I did the blind thing because I've noticed
> other tests do that for the error condition, and I figured that my tests
> don't want to test CreateIcon et al; these are already tested. I'm only
> testing DrawIcon[Ex], but I suppose extra tests can't hurt.
> 
> 
My main idea about those return's is that I thought that they could 
maybe be used to show behavior that could have been used to decide 
whether tests can be run.

-- 
Cheers,

Paul.



More information about the wine-devel mailing list