Paul Vriens : atl/tests: Skip tests if function is not implemented.
Alexandre Julliard
julliard at winehq.org
Mon Jul 19 11:05:37 CDT 2010
Module: wine
Branch: master
Commit: 13a7ecff57a21caf402a48837c0d1fa734b9bbd2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=13a7ecff57a21caf402a48837c0d1fa734b9bbd2
Author: Paul Vriens <Paul.Vriens.Wine at gmail.com>
Date: Mon Jul 19 13:14:51 2010 +0200
atl/tests: Skip tests if function is not implemented.
---
dlls/atl/tests/atl_ax.c | 28 ++++++++++++++++++++--------
1 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/dlls/atl/tests/atl_ax.c b/dlls/atl/tests/atl_ax.c
index 8b9966c..d17046d 100644
--- a/dlls/atl/tests/atl_ax.c
+++ b/dlls/atl/tests/atl_ax.c
@@ -36,7 +36,14 @@
#include <ocidl.h>
#include <exdisp.h>
-HRESULT WINAPI AtlAxAttachControl(IUnknown *, HWND, IUnknown **);
+static HRESULT (WINAPI *pAtlAxAttachControl)(IUnknown *, HWND, IUnknown **);
+
+static void init_function_pointers(void)
+{
+ HMODULE hatl = GetModuleHandleA("atl.dll");
+
+ pAtlAxAttachControl = (void *)GetProcAddress(hatl, "AtlAxAttachControl");
+}
static ATOM register_class(void)
{
@@ -64,16 +71,16 @@ static void test_AtlAxAttachControl(void)
HRESULT hr;
IUnknown *pObj, *pContainer;
- hr = AtlAxAttachControl(NULL, NULL, NULL);
+ hr = pAtlAxAttachControl(NULL, NULL, NULL);
ok(hr == E_INVALIDARG, "Expected AtlAxAttachControl to return E_INVALIDARG, got 0x%08x\n", hr);
pContainer = (IUnknown *)0xdeadbeef;
- hr = AtlAxAttachControl(NULL, NULL, &pContainer);
+ hr = pAtlAxAttachControl(NULL, NULL, &pContainer);
ok(hr == E_INVALIDARG, "Expected AtlAxAttachControl to return E_INVALIDARG, got 0x%08x\n", hr);
ok(pContainer == (IUnknown *)0xdeadbeef,
"Expected the output container pointer to be untouched, got %p\n", pContainer);
- hr = AtlAxAttachControl(NULL, hwnd, NULL);
+ hr = pAtlAxAttachControl(NULL, hwnd, NULL);
ok(hr == E_INVALIDARG, "Expected AtlAxAttachControl to return E_INVALIDARG, got 0x%08x\n", hr);
hr = CoCreateInstance(&CLSID_WebBrowser, NULL, CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER,
@@ -86,12 +93,12 @@ static void test_AtlAxAttachControl(void)
return;
}
- hr = AtlAxAttachControl(pObj, NULL, NULL);
+ hr = pAtlAxAttachControl(pObj, NULL, NULL);
todo_wine
ok(hr == S_FALSE, "Expected AtlAxAttachControl to return S_FALSE, got 0x%08x\n", hr);
pContainer = (IUnknown *)0xdeadbeef;
- hr = AtlAxAttachControl(pObj, NULL, &pContainer);
+ hr = pAtlAxAttachControl(pObj, NULL, &pContainer);
todo_wine
ok(hr == S_FALSE, "Expected AtlAxAttachControl to return S_FALSE, got 0x%08x\n", hr);
ok(pContainer != (IUnknown *)0xdeadbeef &&
@@ -101,7 +108,7 @@ static void test_AtlAxAttachControl(void)
if (pContainer != (IUnknown *)0xdeadbeef && pContainer != NULL)
IUnknown_Release(pContainer);
- hr = AtlAxAttachControl(pObj, hwnd, NULL);
+ hr = pAtlAxAttachControl(pObj, hwnd, NULL);
ok(hr == S_OK, "Expected AtlAxAttachControl to return S_OK, got 0x%08x\n", hr);
IUnknown_Release(pObj);
@@ -111,12 +118,17 @@ static void test_AtlAxAttachControl(void)
START_TEST(atl_ax)
{
+ init_function_pointers();
+
if (!register_class())
return;
CoInitialize(NULL);
- test_AtlAxAttachControl();
+ if (pAtlAxAttachControl)
+ test_AtlAxAttachControl();
+ else
+ win_skip("AtlAxAttachControl is not available\n");
CoUninitialize();
}
More information about the wine-cvs
mailing list