From ae291a0c8693204024cd6dd0b2b7e518340d9238 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Sun, 22 Sep 2013 08:29:18 +0200 Subject: [PATCH] testprogs/win32/rpcecho-win32-pipe/server.c ... --- testprogs/win32/rpcecho-win32-pipe/server.c | 54 +++++++++++++++++---- 1 file changed, 44 insertions(+), 10 deletions(-) diff --git a/testprogs/win32/rpcecho-win32-pipe/server.c b/testprogs/win32/rpcecho-win32-pipe/server.c index 4f4657af27a7..ea8ed694c4ef 100755 --- a/testprogs/win32/rpcecho-win32-pipe/server.c +++ b/testprogs/win32/rpcecho-win32-pipe/server.c @@ -154,7 +154,8 @@ void TestBytePipeIn( long chunk_size, ASYNC_BYTE_PIPE *in_pipe) { - long ret; + RPC_STATUS status; + long ret = -1; byte *in_bytes; int in_alloc_size; int in_bytes_count; @@ -163,20 +164,36 @@ void TestBytePipeIn( printf("TestBytePipeIn: Start\n"); fflush(stdout); - in_alloc_size = 5840 * sizeof(byte); + in_alloc_size = chunk_size * sizeof(byte); in_bytes = malloc(in_alloc_size); + if (in_bytes == NULL) { + printf("nomem: %d\n", in_alloc_size); + fflush(stdout); + ret = -2; + goto done; + } in_bytes_count = chunk_size; for (i=0; in_bytes_count > 0; i++) { in_bytes_count = 0; - in_pipe->pull(in_pipe->state, in_bytes, in_alloc_size, &in_bytes_count); + status = in_pipe->pull(in_pipe->state, in_bytes, in_alloc_size, &in_bytes_count); + if (status != 0) { + printf("status: %d\n", status); + fflush(stdout); + ret = -3; + goto done; + } printf("pull[%u] bytes_count[%u]\n", i, in_bytes_count); fflush(stdout); } - printf("TestBytePipeIn: End\n"); - fflush(stdout); ret = i; +done: + printf("TestBytePipeIn: End ret[%d]\n", ret); + fflush(stdout); + if (in_bytes) { + free(in_bytes); + } RpcAsyncCompleteCall(TestBytePipeIn_AsyncHandle, &ret); } @@ -186,7 +203,8 @@ void TestBytePipeOut( long chunk_size, ASYNC_BYTE_PIPE *out_pipe) { - long ret; + RPC_STATUS status; + long ret = -1; byte *out_bytes = NULL; unsigned long out_alloc_size = 0; unsigned long out_bytes_count = 0; @@ -196,7 +214,13 @@ void TestBytePipeOut( fflush(stdout); out_alloc_size = chunk_size * sizeof(byte); - out_pipe->alloc(out_pipe->state, out_alloc_size, &out_bytes, &out_bytes_count); + status = out_pipe->alloc(out_pipe->state, out_alloc_size, &out_bytes, &out_bytes_count); + if (status != 0) { + printf("status: %d\n", status); + fflush(stdout); + ret = -2; + goto done; + } memset(out_bytes, 0xCC, out_bytes_count * sizeof(byte)); for (i = 0; i <= num_chunks; i++) { @@ -205,12 +229,22 @@ void TestBytePipeOut( } printf("[%u] push outb_len[%u]\n", i, out_bytes_count); fflush(stdout); - out_pipe->push(out_pipe->state, out_bytes, out_bytes_count); + status = out_pipe->push(out_pipe->state, out_bytes, out_bytes_count); + if (status != 0) { + printf("status: %d\n", status); + fflush(stdout); + ret = -3; + goto done; + } } - printf("TestBytePipeOut: End\n"); - fflush(stdout); ret = i; +done: + printf("TestBytePipeOut: End ret[%d]\n", ret); + fflush(stdout); + if (out_bytes) { + free(out_bytes); + } RpcAsyncCompleteCall(TestBytePipeOut_AsyncHandle, &ret); } -- 2.34.1