Dan Hipschman : rpcrt4: Add tests for RpcServerListen and friends.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Apr 13 06:49:56 CDT 2007


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

Author: Dan Hipschman <dsh at linux.ucla.edu>
Date:   Thu Apr 12 17:12:20 2007 -0700

rpcrt4: Add tests for RpcServerListen and friends.

---

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

diff --git a/dlls/rpcrt4/tests/rpc.c b/dlls/rpcrt4/tests/rpc.c
index 023741f..3828260 100644
--- a/dlls/rpcrt4/tests/rpc.c
+++ b/dlls/rpcrt4/tests/rpc.c
@@ -175,17 +175,108 @@ static void TestDceErrorInqText (void)
         ok (0, "Cannot set up for DceErrorInqText\n");
 }
 
+static RPC_DISPATCH_FUNCTION IFoo_table[] =
+{
+    0
+};
+
+RPC_DISPATCH_TABLE IFoo_v0_0_DispatchTable =
+{
+    0,
+    IFoo_table
+};
+
+static const RPC_SERVER_INTERFACE IFoo___RpcServerInterface =
+{
+    sizeof(RPC_SERVER_INTERFACE),
+    {{0x00000000,0x0000,0x0000,{0x00,0x00,0x00,0x00,0x00,0x00,0x12,0x34}},{0,0}},
+    {{0x8a885d04,0x1ceb,0x11c9,{0x9f,0xe8,0x08,0x00,0x2b,0x10,0x48,0x60}},{2,0}},
+    &IFoo_v0_0_DispatchTable,
+    0,
+    0,
+    0,
+    0,
+    0,
+};
+
+RPC_IF_HANDLE IFoo_v0_0_s_ifspec = (RPC_IF_HANDLE)& IFoo___RpcServerInterface;
+
 static void test_rpc_ncacn_ip_tcp(void)
 {
     RPC_STATUS status;
+    unsigned char *binding;
+    handle_t IFoo_IfHandle;
     static unsigned char foo[] = "foo";
     static unsigned char ncacn_ip_tcp[] = "ncacn_ip_tcp";
+    static unsigned char address[] = "127.0.0.1";
+    static unsigned char endpoint[] = "4114";
 
     status = RpcNetworkIsProtseqValid(foo);
     ok(status == RPC_S_INVALID_RPC_PROTSEQ, "return wrong\n");
 
     status = RpcNetworkIsProtseqValid(ncacn_ip_tcp);
     ok(status == RPC_S_OK, "return wrong\n");
+
+    status = RpcMgmtStopServerListening(NULL);
+todo_wine {
+    ok(status == RPC_S_NOT_LISTENING,
+       "wrong RpcMgmtStopServerListening error (%lu)\n", status);
+}
+
+    status = RpcMgmtWaitServerListen();
+    ok(status == RPC_S_NOT_LISTENING,
+       "wrong RpcMgmtWaitServerListen error status (%lu)\n", status);
+
+    status = RpcServerListen(1, 20, FALSE);
+    ok(status == RPC_S_NO_PROTSEQS_REGISTERED,
+       "wrong RpcServerListen error (%lu)\n", status);
+
+    status = RpcServerUseProtseqEp(ncacn_ip_tcp, 20, endpoint, NULL);
+    ok(status == RPC_S_OK, "RpcServerUseProtseqEp failed (%lu)\n", status);
+
+    status = RpcServerRegisterIf(IFoo_v0_0_s_ifspec, NULL, NULL);
+    ok(status == RPC_S_OK, "RpcServerRegisterIf failed (%lu)\n", status);
+
+    status = RpcServerListen(1, 20, TRUE);
+todo_wine {
+    ok(status == RPC_S_OK, "RpcServerListen failed (%lu)\n", status);
+}
+
+    status = RpcServerListen(1, 20, TRUE);
+todo_wine {
+    ok(status == RPC_S_ALREADY_LISTENING,
+       "wrong RpcServerListen error (%lu)\n", status);
+}
+
+    status = RpcStringBindingCompose(NULL, ncacn_ip_tcp, address,
+                                     endpoint, NULL, &binding);
+    ok(status == RPC_S_OK, "RpcStringBindingCompose failed (%lu)\n", status);
+
+    status = RpcBindingFromStringBinding(binding, &IFoo_IfHandle);
+    ok(status == RPC_S_OK, "RpcBindingFromStringBinding failed (%lu)\n",
+       status);
+
+    status = RpcMgmtStopServerListening(NULL);
+    ok(status == RPC_S_OK, "RpcMgmtStopServerListening failed (%lu)\n",
+       status);
+
+    status = RpcMgmtStopServerListening(NULL);
+    ok(status == RPC_S_OK, "RpcMgmtStopServerListening failed (%lu)\n",
+       status);
+
+    status = RpcServerUnregisterIf(NULL, NULL, FALSE);
+    ok(status == RPC_S_OK, "RpcServerUnregisterIf failed (%lu)\n", status);
+
+    status = RpcMgmtWaitServerListen();
+todo_wine {
+    ok(status == RPC_S_OK, "RpcMgmtWaitServerListen failed (%lu)\n", status);
+}
+
+    status = RpcStringFree(&binding);
+    ok(status == RPC_S_OK, "RpcStringFree failed (%lu)\n", status);
+
+    status = RpcBindingFree(&IFoo_IfHandle);
+    ok(status == RPC_S_OK, "RpcBindingFree failed (%lu)\n", status);
 }
 
 /* this is what's generated with MS/RPC - it includes an extra 2




More information about the wine-cvs mailing list