From: Hans Leidekker Subject: [2/4] dpnet/tests: Skip tests if dpnet is a stub dll. Message-Id: <1481302986-27689-2-git-send-email-hans@codeweavers.com> Date: Fri, 9 Dec 2016 18:03:04 +0100 Signed-off-by: Hans Leidekker --- dlls/dpnet/tests/Makefile.in | 2 +- dlls/dpnet/tests/address.c | 34 ++++++++++++++++++++++++++++++++++ dlls/dpnet/tests/client.c | 34 ++++++++++++++++++++++++++++++++++ dlls/dpnet/tests/server.c | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 103 insertions(+), 1 deletion(-) diff --git a/dlls/dpnet/tests/Makefile.in b/dlls/dpnet/tests/Makefile.in index 13eae44..d7f6d71 100644 --- a/dlls/dpnet/tests/Makefile.in +++ b/dlls/dpnet/tests/Makefile.in @@ -1,5 +1,5 @@ TESTDLL = dpnet.dll -IMPORTS = dxguid uuid dpnet ole32 +IMPORTS = dxguid uuid dpnet ole32 version C_SRCS = \ address.c \ diff --git a/dlls/dpnet/tests/address.c b/dlls/dpnet/tests/address.c index dd0ef23..16ba6a7 100644 --- a/dlls/dpnet/tests/address.c +++ b/dlls/dpnet/tests/address.c @@ -353,10 +353,44 @@ static void address_duplicate(void) } } +/* taken from programs/winetest/main.c */ +static BOOL is_stub_dll(const char *filename) +{ + DWORD size, ver; + BOOL isstub = FALSE; + char *p, *data; + + size = GetFileVersionInfoSizeA(filename, &ver); + if (!size) return FALSE; + + data = HeapAlloc(GetProcessHeap(), 0, size); + if (!data) return FALSE; + + if (GetFileVersionInfoA(filename, ver, size, data)) + { + char buf[256]; + + sprintf(buf, "\\StringFileInfo\\%04x%04x\\OriginalFilename", MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), 1200); + if (VerQueryValueA(data, buf, (void**)&p, &size)) + isstub = !lstrcmpiA("wcodstub.dll", p); + } + HeapFree(GetProcessHeap(), 0, data); + + return isstub; +} + START_TEST(address) { HRESULT hr; + if (!winetest_interactive && + (is_stub_dll("c:\\windows\\system32\\dpnet.dll") || + is_stub_dll("c:\\windows\\syswow64\\dpnet.dll"))) + { + win_skip("dpnet is a stub dll, skipping tests\n"); + return; + } + hr = CoInitialize(0); ok(hr == S_OK, "failed to init com\n"); if(hr != S_OK) diff --git a/dlls/dpnet/tests/client.c b/dlls/dpnet/tests/client.c index 68b3832..db08f73 100644 --- a/dlls/dpnet/tests/client.c +++ b/dlls/dpnet/tests/client.c @@ -606,8 +606,42 @@ static void test_cleanup_dp_peer(void) CoUninitialize(); } +/* taken from programs/winetest/main.c */ +static BOOL is_stub_dll(const char *filename) +{ + DWORD size, ver; + BOOL isstub = FALSE; + char *p, *data; + + size = GetFileVersionInfoSizeA(filename, &ver); + if (!size) return FALSE; + + data = HeapAlloc(GetProcessHeap(), 0, size); + if (!data) return FALSE; + + if (GetFileVersionInfoA(filename, ver, size, data)) + { + char buf[256]; + + sprintf(buf, "\\StringFileInfo\\%04x%04x\\OriginalFilename", MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), 1200); + if (VerQueryValueA(data, buf, (void**)&p, &size)) + isstub = !lstrcmpiA("wcodstub.dll", p); + } + HeapFree(GetProcessHeap(), 0, data); + + return isstub; +} + START_TEST(client) { + if (!winetest_interactive && + (is_stub_dll("c:\\windows\\system32\\dpnet.dll") || + is_stub_dll("c:\\windows\\syswow64\\dpnet.dll"))) + { + win_skip("dpnet is a stub dll, skipping tests\n"); + return; + } + if(!test_init_dp()) return; diff --git a/dlls/dpnet/tests/server.c b/dlls/dpnet/tests/server.c index 928c6a0..307167f 100644 --- a/dlls/dpnet/tests/server.c +++ b/dlls/dpnet/tests/server.c @@ -180,10 +180,44 @@ static void test_server_info(void) } } +/* taken from programs/winetest/main.c */ +static BOOL is_stub_dll(const char *filename) +{ + DWORD size, ver; + BOOL isstub = FALSE; + char *p, *data; + + size = GetFileVersionInfoSizeA(filename, &ver); + if (!size) return FALSE; + + data = HeapAlloc(GetProcessHeap(), 0, size); + if (!data) return FALSE; + + if (GetFileVersionInfoA(filename, ver, size, data)) + { + char buf[256]; + + sprintf(buf, "\\StringFileInfo\\%04x%04x\\OriginalFilename", MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), 1200); + if (VerQueryValueA(data, buf, (void**)&p, &size)) + isstub = !lstrcmpiA("wcodstub.dll", p); + } + HeapFree(GetProcessHeap(), 0, data); + + return isstub; +} + START_TEST(server) { HRESULT hr; + if (!winetest_interactive && + (is_stub_dll("c:\\windows\\system32\\dpnet.dll") || + is_stub_dll("c:\\windows\\syswow64\\dpnet.dll"))) + { + win_skip("dpnet is a stub dll, skipping tests\n"); + return; + } + hr = CoInitialize(0); ok( hr == S_OK, "failed to init com\n"); if (hr != S_OK) -- 2.1.4