Aric Stewart : rpcrt4/tests: Add NdrDllRegisterProxy tests.

Alexandre Julliard julliard at winehq.org
Thu Apr 8 11:12:41 CDT 2010


Module: wine
Branch: master
Commit: 75197bdfaf7a7f1f06812e5ea8ad568ca37ec375
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=75197bdfaf7a7f1f06812e5ea8ad568ca37ec375

Author: Aric Stewart <aric at codeweavers.com>
Date:   Wed Apr  7 11:53:22 2010 -0500

rpcrt4/tests: Add NdrDllRegisterProxy tests.

---

 dlls/rpcrt4/tests/cstub.c |   64 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 64 insertions(+), 0 deletions(-)

diff --git a/dlls/rpcrt4/tests/cstub.c b/dlls/rpcrt4/tests/cstub.c
index 93a7fe3..c1b4b37 100644
--- a/dlls/rpcrt4/tests/cstub.c
+++ b/dlls/rpcrt4/tests/cstub.c
@@ -1089,6 +1089,69 @@ static void test_delegating_Invoke(IPSFactoryBuffer *ppsf)
     HeapFree(GetProcessHeap(), 0, msg.Buffer);
     IRpcStubBuffer_Release(pstub);
 }
+static const CInterfaceProxyVtbl *cstub_ProxyVtblList2[] =
+{
+    NULL
+};
+
+static const CInterfaceStubVtbl *cstub_StubVtblList2[] =
+{
+    NULL
+};
+
+static PCInterfaceName const if_name_list2[] =
+{
+    NULL
+};
+
+static const IID *base_iid_list2[] =
+{
+    NULL,
+};
+
+static const ExtendedProxyFileInfo my_proxy_file_info2 =
+{
+    (const PCInterfaceProxyVtblList *) &cstub_ProxyVtblList2,
+    (const PCInterfaceStubVtblList *) &cstub_StubVtblList2,
+    (const PCInterfaceName *) &if_name_list2,
+    (const IID **) &base_iid_list2,
+    &iid_lookup,
+    0,
+    1,
+    NULL,
+    0,
+    0,
+    0
+};
+
+static const ProxyFileInfo *proxy_file_list2[] = {
+    &my_proxy_file_info2,
+    NULL
+};
+
+static void test_NdrDllRegisterProxy( void )
+{
+    HRESULT res;
+    const ExtendedProxyFileInfo *pf;
+    HMODULE hmod = GetModuleHandleA(NULL);
+
+
+    res = NdrDllRegisterProxy(NULL, NULL, NULL);
+    ok(res == E_HANDLE, "Incorrect return code %x\n",res);
+    pf = NULL;
+    res = NdrDllRegisterProxy(hmod, &pf, NULL);
+    ok(res == E_NOINTERFACE, "Incorrect return code %x\n",res);
+    res = NdrDllRegisterProxy(hmod, proxy_file_list2, NULL);
+    ok(res == E_NOINTERFACE, "Incorrect return code %x\n",res);
+    /* This fails on Vista and Windows 7 due to permissions */
+    res = NdrDllRegisterProxy(hmod, proxy_file_list, NULL);
+    ok(res == S_OK || res == E_ACCESSDENIED, "NdrDllRegisterProxy failed %x\n",res);
+    if (res == S_OK)
+    {
+        res = NdrDllUnregisterProxy(hmod,proxy_file_list, NULL);
+        ok(res == S_OK, "NdrDllUnregisterProxy failed %x\n",res);
+    }
+}
 
 START_TEST( cstub )
 {
@@ -1104,6 +1167,7 @@ START_TEST( cstub )
     test_Disconnect(ppsf);
     test_Release(ppsf);
     test_delegating_Invoke(ppsf);
+    test_NdrDllRegisterProxy();
 
     OleUninitialize();
 }




More information about the wine-cvs mailing list