]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test: add a /0 cidr test that blocklists EVERYTHING
authorGreg Farnum <gfarnum@redhat.com>
Wed, 20 Apr 2022 15:59:01 +0000 (15:59 +0000)
committerGreg Farnum <gfarnum@redhat.com>
Thu, 21 Apr 2022 00:26:17 +0000 (00:26 +0000)
Signed-off-by: Greg Farnum <gfarnum@redhat.com>
src/test/osd/TestOSDMap.cc

index 17905952bccc0df2352c09accfd5c6bf13f972fb..d3733672ac7f9f4af22c8de0da1f645ff28e6eff 100644 (file)
@@ -2215,6 +2215,39 @@ TEST_F(OSDMapTest, blocklisting_ranges) {
   }
 }
 
+TEST_F(OSDMapTest, blocklisting_weirder) {
+  set_up_map(6); //whatever
+  OSDMap::Incremental range_blocklist_inc(osdmap.get_epoch() + 1);
+  entity_addr_t baddr;
+  baddr.parse("2001:db8::/0");
+  baddr.type = entity_addr_t::TYPE_CIDR;
+  range_blocklist_inc.new_range_blocklist[baddr] = ceph_clock_now();
+  osdmap.apply_incremental(range_blocklist_inc);
+
+  for (const auto& a: ip_addrs) {
+    entity_addr_t addr;
+    addr.parse(a);
+    addr.set_type(entity_addr_t::TYPE_LEGACY);
+    if (addr.is_ipv4()) continue;
+    bool blocklisted = osdmap.is_blocklisted(addr, g_ceph_context);
+    if (!blocklisted) {
+      cout << "erroneously not  blocklisted " << addr << std::endl;
+    }
+    ASSERT_TRUE(blocklisted);
+  }
+  for (const auto& a: unblocked_ip_addrs) {
+    entity_addr_t addr;
+    addr.parse(a);
+    addr.set_type(entity_addr_t::TYPE_LEGACY);
+    if (addr.is_ipv4()) continue;
+    bool blocklisted = osdmap.is_blocklisted(addr, g_ceph_context);
+    if (!blocklisted) {
+      cout << "erroneously not  blocklisted " << addr << std::endl;
+    }
+    ASSERT_TRUE(blocklisted);
+  }
+}
+
 INSTANTIATE_TEST_SUITE_P(
   OSDMap,
   OSDMapTest,