r16524: Fix double evaluation.
authorJelmer Vernooij <jelmer@samba.org>
Mon, 26 Jun 2006 19:23:21 +0000 (19:23 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:09:32 +0000 (14:09 -0500)
source/torture/local/socket.c
source/torture/ui.h

index 10dfd75ece80316ded19d9f9be96180116d41319..70baae712d7bc7ac0b28a44e801f966232dd3fe6 100644 (file)
@@ -54,7 +54,7 @@ static BOOL test_udp(struct torture_context *test, const void *data)
        torture_assert(test, localhost, "Localhost not found");
 
        status = socket_listen(sock1, localhost, 0, 0);
-       torture_assert_ntstatus_ok(test, status, "listen on socket 1")
+       torture_assert_ntstatus_ok(test, status, "listen on socket 1");
 
        srv_addr = socket_get_my_addr(sock1, test);
        if (srv_addr == NULL || strcmp(srv_addr->addr, iface_best_ip("127.0.0.1")) != 0) {
@@ -164,7 +164,7 @@ static BOOL test_tcp(struct torture_context *test, const void *data)
        torture_comment(test, "server port is %d", srv_addr->port);
 
        status = socket_connect_ev(sock2, NULL, srv_addr, 0, ev);
-       torture_assert_ntstatus_ok(test, status, "connect() on socket 2")
+       torture_assert_ntstatus_ok(test, status, "connect() on socket 2");
 
        status = socket_accept(sock1, &sock3);
        torture_assert_ntstatus_ok(test, status, "accept() on socket 1");
index 96dccbd5a057b58f3dec62da8631c9af8d1c3a97..0cf7f3fa22183c7b78ee72d6e7f77ba635173cb2 100644 (file)
@@ -125,32 +125,41 @@ BOOL torture_run_test(struct torture_context *context,
        }
 
 #define torture_assert_werr_equal(ctx,got,expected,string) \
-       if (!W_ERROR_EQUAL(got, expected)) { \
+       do { WERROR __got = got, __expected = expected; \
+       if (!W_ERROR_EQUAL(__got, __expected)) { \
                torture_fail(ctx, "%s:%d (%s): got %s, expected %s", __FILE__, \
-                                        __LINE__, string, win_errstr(got), win_errstr(expected)); \
+                                        __LINE__, string, win_errstr(__got), win_errstr(__expected)); \
                return False; \
-       }
+       } \
+       } while (0)
 
 #define torture_assert_ntstatus_equal(ctx,got,expected,string) \
-       if (!NT_STATUS_EQUAL(got, expected)) { \
+       do { NTSTATUS __got = got, __expected = expected; \
+       if (!NT_STATUS_EQUAL(__got, __expected)) { \
                torture_fail(ctx, "%s:%d (%s): got %s, expected %s", __FILE__, \
-                                        __LINE__, string, nt_errstr(got), nt_errstr(expected)); \
+                                        __LINE__, string, nt_errstr(__got), nt_errstr(__expected)); \
                return False; \
-       }
+       }\
+       } while(0)
+
 
 #define torture_assert_casestr_equal(ctx,got,expected,string) \
-       if (strcasecmp(got, expected) != 0) { \
+       do { const char *__got = got, __expected = expected; \
+       if (strcasecmp(__got, __expected) != 0) { \
                torture_fail(ctx, "%s:%d (%s): got %s, expected %s", __FILE__, \
                                         __LINE__, string, got, expected); \
                return False; \
-       }
+       } \
+       } while(0)
 
 #define torture_assert_str_equal(ctx,got,expected,string) \
-       if (strcmp(got, expected) != 0) { \
+       do { const char *__got = got, __expected = expected; \
+       if (strcmp(__got, __expected) != 0) { \
                torture_fail(ctx, "%s:%d (%s): got %s, expected %s", __FILE__, \
-                                        __LINE__, string, got, expected); \
+                                        __LINE__, string, __got, __expected); \
                return False; \
-       }
+       } \
+       } while(0)
 
 
 /* Convenience macros */