Alexandre Julliard wrote:
Jakob Eriksson jakov@vmlinux.org writes:
+static int test_win9x_based() +{
- OSVERSIONINFOEX ver;
- ver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- ok( GetVersionEx ((OSVERSIONINFO *) &ver), " --- Can't get OS version.\n" );
- if ((4 == ver.dwMajorVersion && 0 == ver.dwMinorVersion && 1381 == ver.dwBuildNumber)
|| ver.dwMajorVersion >= 5)
- {
return 0;
- }
- return 1;
You should not do version checks in tests, the checks should be based on the features we are testing. Otherwise the results are going to depend on the Windows version that Wine is configured for, which is the wrong thing to do since the behavior of the Wine code in that case does not depend on the version.
I just thought hard about winetest.exe... how about this approach:
if (running_under_wine || !win9x_based) { /* Do stuff that would crash Windows 9x. */
/* Could also be stuff that Wine has not yet implemented */ todo_wine { stuff(); } }
Pros: * Under Wine, run every test. * Easy skip of tests under platforms we know crashes or hangs winetest.exe.
* If I am allowed to check for platform, it is easier to avoid crashing winetest.exe. (I.e. how do I check for capabilities on something that hangs winetest.exe when probed for capabilities?)
Cons: Could be easy to be lazy - for instance there can be different versions of DLLs under Windows 98, some more capable than others. This scheme would invite to not test for capabilities.
I just want do deploy winetest.exe on as many Win32 platforms as possible without having the app crashing all the time... Maybe that desire is leading me to cut corners where I shouldn't?
regards, Jakob