]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
msg/msg_types: entity_addr_t: we should not parse an addrvec
authorSage Weil <sage@redhat.com>
Thu, 10 Jan 2019 20:14:36 +0000 (14:14 -0600)
committerSage Weil <sage@redhat.com>
Wed, 16 Jan 2019 14:31:43 +0000 (08:31 -0600)
Just a sanity check to ensure the addrvec's leading '[' prevents us from
parsing the first addr.

Signed-off-by: Sage Weil <sage@redhat.com>
src/test/test_addrs.cc

index 0b68f6f4022e3f6e5bed311b830c106db09a7e9d..76156779b5394041d018e6b47b6a84cc699c9c84 100644 (file)
@@ -48,24 +48,34 @@ const char *addr_checks[][3] = {
   { NULL, NULL, NULL },
 };
 
+const char *addr_only_checks[][3] = {
+  // we shouldn't parse an addrvec...
+  { "[v2:1.2.3.4:111/0,v1:5.6.7.8:222/0]", "", "[v2:1.2.3.4:111/0,v1:5.6.7.8:222/0]" },
+  { NULL, NULL, NULL },
+};
+
+
+
 TEST(Msgr, TestAddrParsing)
 {
-  for (unsigned i = 0; addr_checks[i][0]; ++i) {
-    entity_addr_t a;
-    const char *end = "";
-    bool ok = a.parse(addr_checks[i][0], &end);
-    string out;
-    if (ok) {
-      stringstream ss;
-      ss << a;
-      getline(ss, out);
-    }
-    string left = end;
+  for (auto& addr_checks : { addr_checks, addr_only_checks }) {
+    for (unsigned i = 0; addr_checks[i][0]; ++i) {
+      entity_addr_t a;
+      const char *end = "";
+      bool ok = a.parse(addr_checks[i][0], &end);
+      string out;
+      if (ok) {
+       stringstream ss;
+       ss << a;
+       getline(ss, out);
+      }
+      string left = end;
       
-    cout << "'" << addr_checks[i][0] << "' -> '" << out << "' + '" << left << "'" << std::endl;
+      cout << "'" << addr_checks[i][0] << "' -> '" << out << "' + '" << left << "'" << std::endl;
 
-    ASSERT_EQ(out, addr_checks[i][1]);
-    ASSERT_EQ(left, addr_checks[i][2]);
+      ASSERT_EQ(out, addr_checks[i][1]);
+      ASSERT_EQ(left, addr_checks[i][2]);
+    }
   }
 }