On Tue, 16 Feb 2016, Francois Gouget wrote:
What should we do if a test succeeds in a todo_wine on Mac but fails on Linux, FreeBSD and Solaris.
Specifically I'm thinking about the ntdll:info test: /* Check if we have some return values */ trace("WorkingSetSize : %ld\n", pvi.WorkingSetSize); todo_wine ok( pvi.WorkingSetSize > 0, "Expected a WorkingSetSize > 0\n");
[...]
But do we have other solutions? I initially thought setting WINETEST_PLATFORM to Linux, FreeBSD, etc. could do the trick.
To be clear, I don't think we should adjust the todos for every missing library, graphics card version, etc. The tests should already deal with variations in the graphics cards behavior.
So I think this should really just be about actually being able to use winetest_platform to have a check to be a todo on just Linux or in this case non-Darwin. Here's a proposed patch (the test.h part should go in regardless):
diff --git a/dlls/ntdll/tests/info.c b/dlls/ntdll/tests/info.c index be355fb..b81d78d 100644 --- a/dlls/ntdll/tests/info.c +++ b/dlls/ntdll/tests/info.c @@ -1062,7 +1062,7 @@ static void test_query_process_vm(void)
/* Check if we have some return values */ trace("WorkingSetSize : %ld\n", pvi.WorkingSetSize); - todo_wine + todo_wine_if(strcmp(winetest_platform, "Darwin")) { ok( pvi.WorkingSetSize > 0, "Expected a WorkingSetSize > 0\n"); } diff --git a/include/wine/test.h b/include/wine/test.h index 0d81a24..eddfd13 100644 --- a/include/wine/test.h +++ b/include/wine/test.h @@ -121,8 +121,8 @@ extern void __winetest_cdecl winetest_trace( const char *msg, ... ) WINETEST_PRI #define todo_if(is_todo) for (winetest_start_todo(is_todo); \ winetest_loop_todo(); \ winetest_end_todo()) -#define todo_wine todo_if(!strcmp(winetest_platform, "wine")) -#define todo_wine_if(is_todo) todo_if((is_todo) && !strcmp(winetest_platform, "wine")) +#define todo_wine todo_if(strcmp(winetest_platform, "windows")) +#define todo_wine_if(is_todo) todo_if((is_todo) && strcmp(winetest_platform, "windows"))
#ifdef NONAMELESSUNION diff --git a/tools/runtest b/tools/runtest index 79bd2f7..6863f9d 100755 --- a/tools/runtest +++ b/tools/runtest @@ -137,6 +137,7 @@ if [ -n "$modules" ]; then WINEDLLOVERRIDES="$WINEDLLOVERRIDES;$modules=b" export WINEDLLOVERRIDES fi +[ -z "$platform" ] || platform=`uname -s` WINETEST_PLATFORM=${platform:-wine} export WINETEST_PLATFORM WINETEST_DEBUG
If that's still deemed too complex we could also have the policy that a test that succeeds on any Wine platform should not be a todo on any Wine platform.