On Fri, Dec 19, 2008 at 2:32 PM, Rico Schüller <kgbric...@web.de> wrote: > Austin English schrieb: >> >> On Thu, Dec 18, 2008 at 4:22 PM, Rico Schüller <kgbric...@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