Rob Shearman : rpcrt4: Add better traces for the server test.

Alexandre Julliard julliard at winehq.org
Wed May 7 13:28:10 CDT 2008


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

Author: Rob Shearman <rob at codeweavers.com>
Date:   Wed May  7 11:11:09 2008 +0100

rpcrt4: Add better traces for the server test.

Handle failure to use one or more protocol sequences more gracefully, as 
ncacn_np servers aren't support on Win9x and ncacn_ip_tcp fails on some 
machines.

---

 dlls/rpcrt4/tests/server.c |   32 ++++++++++++++++++++++++--------
 1 files changed, 24 insertions(+), 8 deletions(-)

diff --git a/dlls/rpcrt4/tests/server.c b/dlls/rpcrt4/tests/server.c
index 41f3bb2..5cc9d42 100644
--- a/dlls/rpcrt4/tests/server.c
+++ b/dlls/rpcrt4/tests/server.c
@@ -1239,22 +1239,38 @@ server(void)
   static unsigned char port[] = PORT;
   static unsigned char np[] = "ncacn_np";
   static unsigned char pipe[] = PIPE;
+  RPC_STATUS status, iptcp_status, np_status;
 
-  ok(RPC_S_OK == RpcServerUseProtseqEp(iptcp, 20, port, NULL), "RpcServerUseProtseqEp\n");
-  ok(RPC_S_OK == RpcServerRegisterIf(s_IServer_v0_0_s_ifspec, NULL, NULL), "RpcServerRegisterIf\n");
-  ok(RPC_S_OK == RpcServerListen(1, 20, TRUE), "RpcServerListen\n");
+  iptcp_status = RpcServerUseProtseqEp(iptcp, 20, port, NULL);
+  ok(iptcp_status == RPC_S_OK, "RpcServerUseProtseqEp(ncacn_ip_tcp) failed with status %ld\n", iptcp_status);
+  np_status = RpcServerUseProtseqEp(np, 0, pipe, NULL);
+  ok(np_status == RPC_S_OK, "RpcServerUseProtseqEp(ncacn_np) failed with status %ld\n", np_status);
 
+  status = RpcServerRegisterIf(s_IServer_v0_0_s_ifspec, NULL, NULL);
+  ok(status == RPC_S_OK, "RpcServerRegisterIf failed with status %ld\n", status);
+  status = RpcServerListen(1, 20, TRUE);
+  ok(status == RPC_S_OK, "RpcServerListen failed with status %ld\n", status);
   stop_event = CreateEvent(NULL, FALSE, FALSE, NULL);
-  ok(stop_event != NULL, "CreateEvent failed\n");
+  ok(stop_event != NULL, "CreateEvent failed with error %d\n", GetLastError());
 
-  run_client("tcp_basic");
+  if (iptcp_status == RPC_S_OK)
+    run_client("tcp_basic");
+  else
+    skip("tcp_basic tests skipped due to earlier failure\n");
 
-  ok(RPC_S_OK == RpcServerUseProtseqEp(np, 0, pipe, NULL), "RpcServerUseProtseqEp\n");
-  run_client("np_basic");
+  if (np_status == RPC_S_OK)
+    run_client("np_basic");
+  else
+  {
+    skip("np_basic tests skipped due to earlier failure\n");
+    /* np client is what signals stop_event, so bail out if we didn't run do it */
+    return;
+  }
 
   ok(WAIT_OBJECT_0 == WaitForSingleObject(stop_event, 60000), "WaitForSingleObject\n");
+  status = RpcMgmtWaitServerListen();
   todo_wine {
-    ok(RPC_S_OK == RpcMgmtWaitServerListen(), "RpcMgmtWaitServerListening\n");
+    ok(status == RPC_S_OK, "RpcMgmtWaitServerListening failed with status %ld\n", status);
   }
 }
 




More information about the wine-cvs mailing list