Forráskód Böngészése

Merge remote-tracking branch 'teor/bug20634_029' into maint-0.2.9

Nick Mathewson 8 éve
szülő
commit
8a767ba7fb
3 módosított fájl, 33 hozzáadás és 5 törlés
  1. 3 0
      changes/bug20634
  2. 16 1
      src/test/log_test_helpers.h
  3. 14 4
      src/test/test_address.c

+ 3 - 0
changes/bug20634

@@ -0,0 +1,3 @@
+  o Minor bugfixes (unit tests):
+    - Stop spurious failures in the local interface address discovery unit
+      tests. Fixes bug 20634; bugfix on 0.2.8.1-alpha; patch by Neel Chauhan.

+ 16 - 1
src/test/log_test_helpers.h

@@ -49,7 +49,22 @@ void mock_dump_saved_logs(void);
 #define expect_log_msg_containing_either(str1, str2)                    \
   assert_log_predicate(mock_saved_log_has_message_containing(str1) ||   \
                        mock_saved_log_has_message_containing(str2),     \
-                "expected log to contain " # str1 " or " # str2);
+                       "expected log to contain " # str1 " or " # str2);
+
+#define expect_log_msg_containing_either3(str1, str2, str3)             \
+  assert_log_predicate(mock_saved_log_has_message_containing(str1) ||   \
+                       mock_saved_log_has_message_containing(str2) ||   \
+                       mock_saved_log_has_message_containing(str3),     \
+                       "expected log to contain " # str1 " or " # str2  \
+                       " or " # str3);
+
+#define expect_log_msg_containing_either4(str1, str2, str3, str4)       \
+  assert_log_predicate(mock_saved_log_has_message_containing(str1) ||   \
+                       mock_saved_log_has_message_containing(str2) ||   \
+                       mock_saved_log_has_message_containing(str3) ||   \
+                       mock_saved_log_has_message_containing(str4),     \
+                       "expected log to contain " # str1 " or " # str2  \
+                       " or " # str3 " or " # str4);
 
 #define expect_single_log_msg(str) \
   do {                                                                  \

+ 14 - 4
src/test/test_address.c

@@ -808,8 +808,13 @@ test_address_get_if_addrs6_list_internal(void *arg)
   results = get_interface_address6_list(LOG_ERR, AF_INET6, 1);
   tt_int_op(smartlist_len(mock_saved_logs()), OP_LE, 1);
   if (smartlist_len(mock_saved_logs()) == 1) {
-    expect_log_msg_containing_either("connect() failed",
-                                     "unable to create socket");
+    expect_log_msg_containing_either4("connect() failed",
+                                      "unable to create socket",
+                                      "Address that we determined via UDP "
+                                      "socket magic is unsuitable for public "
+                                      "comms.",
+                                      "getsockname() to determine interface "
+                                      "failed");
   }
   teardown_capture_of_logs();
 
@@ -846,8 +851,13 @@ test_address_get_if_addrs6_list_no_internal(void *arg)
   results = get_interface_address6_list(LOG_ERR, AF_INET6, 0);
   tt_int_op(smartlist_len(mock_saved_logs()), OP_LE, 1);
   if (smartlist_len(mock_saved_logs()) == 1) {
-    expect_log_msg_containing_either("connect() failed",
-                                     "unable to create socket");
+    expect_log_msg_containing_either4("connect() failed",
+                                      "unable to create socket",
+                                      "Address that we determined via UDP "
+                                      "socket magic is unsuitable for public "
+                                      "comms.",
+                                      "getsockname() to determine interface "
+                                      "failed");
   }
   teardown_capture_of_logs();