r8876: check the result of AddOne and test some more values
authorStefan Metzmacher <metze@samba.org>
Mon, 1 Aug 2005 00:58:33 +0000 (00:58 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:30:14 +0000 (13:30 -0500)
metze
(This used to be commit 6918e9c5a3e2f9cd69569037bbdfed4e7eed94d5)

source4/torture/rpc/echo.c

index 4e0cf90e4234c8e9f7c364e54c56dd02cc0e6983..1ce4a2000872224c3d16cbc01d2ffc6ce800fe29 100644 (file)
 /*
   test the AddOne interface
 */
+#define TEST_ADDONE(value) do { \
+       n = i = value; \
+       r.in.in_data = n; \
+       r.out.out_data = &n; \
+       status = dcerpc_echo_AddOne(p, mem_ctx, &r); \
+       if (!NT_STATUS_IS_OK(status)) { \
+               printf("AddOne(%d) failed - %s\n", i, nt_errstr(status)); \
+               return False; \
+       } \
+       if (n != i+1) { \
+               printf("%d + 1 != %u (should be %u)\n", i, n, i+1); \
+               ret = False; \
+       } else { \
+               printf("%d + 1 = %u\n", i, n); \
+       } \
+} while(0)
+
 static BOOL test_addone(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
 {
-       int i;
+       BOOL ret = True;
+       uint32_t i;
        NTSTATUS status;
+       uint32_t n;
+       struct echo_AddOne r;
 
        printf("\nTesting AddOne\n");
 
        for (i=0;i<10;i++) {
-               uint32_t n = i;
-               struct echo_AddOne r;
-               r.in.in_data = n;
-               r.out.out_data = &n;
-               status = dcerpc_echo_AddOne(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("AddOne(%d) failed - %s\n", i, nt_errstr(status));
-                       return False;
-               }
-               printf("%d + 1 = %u\n", i, n);
+               TEST_ADDONE(i);
        }
 
-       return True;
+       TEST_ADDONE(0x7FFFFFFE);
+       TEST_ADDONE(0xFFFFFFFE);
+       TEST_ADDONE(0xFFFFFFFF);
+       TEST_ADDONE(random() & 0xFFFFFFFF);
+
+       return ret;
 }
 
 /*