[2/4] dpnet/tests: Skip tests if dpnet is a stub dll.

Hans Leidekker hans at codeweavers.com
Fri Dec 9 11:03:04 CST 2016


Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
 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




More information about the wine-patches mailing list