qedit: tests/mediadet.c test skips sometimes

Austin English austinenglish at gmail.com
Fri Dec 19 15:01:43 CST 2008


On Fri, Dec 19, 2008 at 2:32 PM, Rico Schüller <kgbricola at web.de> wrote:
> Austin English schrieb:
>>
>> On Thu, Dec 18, 2008 at 4:22 PM, Rico Schüller <kgbricola at web.de> wrote:
>>
>>>
>>> Hi,
>>> could anyone try the attached patch for the qedit test on a windows
>>> machine?
>>> It works around bug 16548. But according to the comment in the source I
>>> think this could be a mistake. I'd like to know if it works without
>>> renaming
>>> the file on windows. On wine it works.
>>>
>>> Cheers
>>> Rico
>>>
>>> diff --git a/dlls/qedit/tests/mediadet.c b/dlls/qedit/tests/mediadet.c
>>> index 2b43124..558ff3a 100644
>>> --- a/dlls/qedit/tests/mediadet.c
>>> +++ b/dlls/qedit/tests/mediadet.c
>>> @@ -68,8 +68,10 @@ static BOOL unpack_avi_file(int id, WCHAR
>>> name[MAX_PATH])
>>>        return FALSE;
>>>
>>>    DeleteFileW(name);
>>> +/*
>>> +    Renaming isn't a good way to solve this, see bug 16548.
>>>    lstrcpyW(name + lstrlenW(name) - 3, avi);
>>> -
>>> +*/
>>>    fh = CreateFileW(name, GENERIC_WRITE, 0, NULL, CREATE_NEW,
>>>                     FILE_ATTRIBUTE_NORMAL, NULL);
>>>    if (fh == INVALID_HANDLE_VALUE)
>>>
>>>
>>>
>>>
>>>
>>
>> Tested on XP SP 3:
>>
>> -Original-
>> C:\Documents and Settings\Austin\Desktop>qedit_crosstest.exe
>> mediadet: 62 tests executed (0 marked as todo, 0 failures), 0 skipped.
>>
>> -Your patch-
>> C:\Documents and Settings\Austinl\Desktop>qedit_crosstest_new.exe
>> mediadet.c:303: Tests skipped: Couldn't initialize tests!
>> mediadet: 0 tests executed (0 marked as todo, 0 failures), 1 skipped.
>>
>>
>
> Thanks for your test.
> I checked this on 3 different XP machines and all run the tests with my
> patch fine. I've no glue why it fails for you.
>
> Probably, could you first verify that there is a bug in wine? If not it's
> probably a bug with my machine. A simple example which should trigger the
> bug in wine is attached. You could build it with mingw.
> Command: "wine main.exe | uniq | wc"
> Output on wine:     142     142    4118
> Output on windows:    1000    1000   28000
> Wine used the same unique temp names two times or more in a row, so that the
> number is smaller than 1000. This makes it possible to fail the qedit test
> on my machine. On windows I get always 1000.
>
> Cheers
> Rico
>
> #include <stdio.h>
> #include <stdlib.h>
> #include <windows.h>
>
> int main()
> {
>    char name[1024];
>    int i;
>    for(i=0;i<1000;i++)
>    {
>        GetTempFileName("C:\\windows\\temp\\", "murks", 0, name);
> DeleteFile(name);
>        printf("%s\n", name);
>    }
>    return 0;
> }
>
>

Windows gets 1000 here as well. Wine gets random numbers, always less
than 1000, and usually around 150-190.

-- 
-Austin


More information about the wine-devel mailing list