]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
test/test_ipaddr: do not leak CephContext 37709/head
authorKefu Chai <kchai@redhat.com>
Tue, 20 Oct 2020 06:08:53 +0000 (14:08 +0800)
committerKefu Chai <kchai@redhat.com>
Tue, 20 Oct 2020 06:09:49 +0000 (14:09 +0800)
Signed-off-by: Kefu Chai <kchai@redhat.com>
src/test/test_ipaddr.cc

index e9ea9c48c023a3a180121ce8059246344832ab54..7aff80cdb9421533bc8b7a4169fd06fff25837c1 100644 (file)
@@ -4,6 +4,8 @@
 #include "include/stringify.h"
 #include "common/ceph_context.h"
 
+#include <boost/smart_ptr/intrusive_ptr.hpp>
+
 #if defined(__FreeBSD__)
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -623,11 +625,11 @@ TEST(pick_address, find_ip_in_subnet_list)
   ipv4(&a_two, "10.2.1.123");
   ipv6(&a_three, "2001:1234:5678:90ab::cdef");
 
-  CephContext *cct = new CephContext(CEPH_ENTITY_TYPE_OSD);
+  boost::intrusive_ptr<CephContext> cct = new CephContext(CEPH_ENTITY_TYPE_OSD);
 
   // match by network
   result = find_ip_in_subnet_list(
-    cct,
+    cct.get(),
     &one,
     CEPH_PICK_ADDRESS_IPV4,
     "10.1.0.0/16",
@@ -635,7 +637,7 @@ TEST(pick_address, find_ip_in_subnet_list)
   ASSERT_EQ((struct sockaddr*)&a_one, result);
 
   result = find_ip_in_subnet_list(
-    cct,
+    cct.get(),
     &one,
     CEPH_PICK_ADDRESS_IPV4,
     "10.2.0.0/16",
@@ -644,7 +646,7 @@ TEST(pick_address, find_ip_in_subnet_list)
 
   // match by eth name
   result = find_ip_in_subnet_list(
-    cct,
+    cct.get(),
     &one,
     CEPH_PICK_ADDRESS_IPV4,
     "10.0.0.0/8",
@@ -652,7 +654,7 @@ TEST(pick_address, find_ip_in_subnet_list)
   ASSERT_EQ((struct sockaddr*)&a_one, result);
 
   result = find_ip_in_subnet_list(
-    cct,
+    cct.get(),
     &one,
     CEPH_PICK_ADDRESS_IPV4,
     "10.0.0.0/8",
@@ -660,7 +662,7 @@ TEST(pick_address, find_ip_in_subnet_list)
   ASSERT_EQ((struct sockaddr*)&a_two, result);
 
   result = find_ip_in_subnet_list(
-    cct,
+    cct.get(),
     &one,
     CEPH_PICK_ADDRESS_IPV6,
     "2001::/16",
@@ -691,7 +693,7 @@ TEST(pick_address, filtering)
   ipv4(&a_two, "10.2.1.123");
   ipv6(&a_three, "2001:1234:5678:90ab::cdef");
 
-  CephContext *cct = new CephContext(CEPH_ENTITY_TYPE_MON);
+  boost::intrusive_ptr<CephContext> cct = new CephContext(CEPH_ENTITY_TYPE_MON);
   cct->_conf._clear_safe_to_start_threads();  // so we can set configs
 
   cct->_conf.set_val("public_addr", "");
@@ -703,7 +705,7 @@ TEST(pick_address, filtering)
 
   entity_addrvec_t av;
   {
-    int r = pick_addresses(cct,
+    int r = pick_addresses(cct.get(),
                           CEPH_PICK_ADDRESS_PUBLIC |
                           CEPH_PICK_ADDRESS_IPV4 |
                           CEPH_PICK_ADDRESS_MSGR1,
@@ -714,7 +716,7 @@ TEST(pick_address, filtering)
     ASSERT_EQ(string("v1:0.0.0.0:0/0"), stringify(av.v[0]));
   }
   {
-    int r = pick_addresses(cct,
+    int r = pick_addresses(cct.get(),
                           CEPH_PICK_ADDRESS_PUBLIC |
                           CEPH_PICK_ADDRESS_IPV6 |
                           CEPH_PICK_ADDRESS_MSGR1,
@@ -726,7 +728,7 @@ TEST(pick_address, filtering)
   }
   {
     cct->_conf.set_val("public_network", "10.2.0.0/16");
-    int r = pick_addresses(cct,
+    int r = pick_addresses(cct.get(),
                           CEPH_PICK_ADDRESS_PUBLIC |
                           CEPH_PICK_ADDRESS_IPV4 |
                           CEPH_PICK_ADDRESS_MSGR1,
@@ -740,7 +742,7 @@ TEST(pick_address, filtering)
   {
     cct->_conf.set_val("public_network", "10.0.0.0/8");
     cct->_conf.set_val("public_network_interface", "eth1");
-    int r = pick_addresses(cct,
+    int r = pick_addresses(cct.get(),
                           CEPH_PICK_ADDRESS_PUBLIC |
                           CEPH_PICK_ADDRESS_IPV4 |
                           CEPH_PICK_ADDRESS_MSGR2,
@@ -755,7 +757,7 @@ TEST(pick_address, filtering)
   {
     cct->_conf.set_val("public_network", "10.2.0.0/16");
     cct->_conf.set_val("cluster_network", "10.1.0.0/16");
-    int r = pick_addresses(cct,
+    int r = pick_addresses(cct.get(),
                           CEPH_PICK_ADDRESS_PUBLIC |
                           CEPH_PICK_ADDRESS_IPV4 |
                           CEPH_PICK_ADDRESS_MSGR2,
@@ -770,7 +772,7 @@ TEST(pick_address, filtering)
   {
     cct->_conf.set_val("public_network", "10.2.0.0/16");
     cct->_conf.set_val("cluster_network", "10.1.0.0/16");
-    int r = pick_addresses(cct,
+    int r = pick_addresses(cct.get(),
                           CEPH_PICK_ADDRESS_CLUSTER |
                           CEPH_PICK_ADDRESS_IPV4 |
                           CEPH_PICK_ADDRESS_MSGR1,
@@ -785,7 +787,7 @@ TEST(pick_address, filtering)
 
   {
     cct->_conf.set_val("public_network", "2001::/16");
-    int r = pick_addresses(cct,
+    int r = pick_addresses(cct.get(),
                           CEPH_PICK_ADDRESS_PUBLIC |
                           CEPH_PICK_ADDRESS_IPV6 |
                           CEPH_PICK_ADDRESS_MSGR2,
@@ -799,7 +801,7 @@ TEST(pick_address, filtering)
   {
     cct->_conf.set_val("public_network", "2001::/16 10.0.0.0/8");
     cct->_conf.set_val("public_network_interface", "eth1");
-    int r = pick_addresses(cct,
+    int r = pick_addresses(cct.get(),
                           CEPH_PICK_ADDRESS_PUBLIC |
                           CEPH_PICK_ADDRESS_IPV4 |
                           CEPH_PICK_ADDRESS_IPV6 |
@@ -816,7 +818,7 @@ TEST(pick_address, filtering)
   {
     cct->_conf.set_val("public_network", "2001::/16 10.0.0.0/8");
     cct->_conf.set_val("public_network_interface", "eth1");
-    int r = pick_addresses(cct,
+    int r = pick_addresses(cct.get(),
                           CEPH_PICK_ADDRESS_PUBLIC |
                           CEPH_PICK_ADDRESS_IPV4 |
                           CEPH_PICK_ADDRESS_IPV6 |
@@ -834,7 +836,7 @@ TEST(pick_address, filtering)
 
   {
     cct->_conf.set_val("public_network", "2001::/16");
-    int r = pick_addresses(cct,
+    int r = pick_addresses(cct.get(),
                           CEPH_PICK_ADDRESS_PUBLIC |
                           CEPH_PICK_ADDRESS_IPV6 |
                           CEPH_PICK_ADDRESS_MSGR1 |
@@ -849,7 +851,7 @@ TEST(pick_address, filtering)
   }
 
   {
-    int r = pick_addresses(cct,
+    int r = pick_addresses(cct.get(),
                           CEPH_PICK_ADDRESS_PUBLIC |
                           CEPH_PICK_ADDRESS_IPV4 |
                           CEPH_PICK_ADDRESS_MSGR1 |
@@ -874,7 +876,7 @@ TEST(pick_address, ipv4_ipv6_enabled)
 
   ipv4(&a_one, "10.1.1.2");
 
-  CephContext *cct = new CephContext(CEPH_ENTITY_TYPE_OSD);
+  boost::intrusive_ptr<CephContext> cct = new CephContext(CEPH_ENTITY_TYPE_OSD);
   cct->_conf._clear_safe_to_start_threads();  // so we can set configs
 
   cct->_conf.set_val("public_addr", "");
@@ -887,7 +889,7 @@ TEST(pick_address, ipv4_ipv6_enabled)
 
   entity_addrvec_t av;
   {
-    int r = pick_addresses(cct,
+    int r = pick_addresses(cct.get(),
                           CEPH_PICK_ADDRESS_PUBLIC |
                           CEPH_PICK_ADDRESS_MSGR1,
                           &one, &av);
@@ -907,7 +909,7 @@ TEST(pick_address, ipv4_ipv6_enabled2)
 
   ipv6(&a_one, "2001:1234:5678:90ab::cdef");
 
-  CephContext *cct = new CephContext(CEPH_ENTITY_TYPE_OSD);
+  boost::intrusive_ptr<CephContext> cct = new CephContext(CEPH_ENTITY_TYPE_OSD);
   cct->_conf._clear_safe_to_start_threads();  // so we can set configs
 
   cct->_conf.set_val("public_addr", "");
@@ -920,7 +922,7 @@ TEST(pick_address, ipv4_ipv6_enabled2)
 
   entity_addrvec_t av;
   {
-    int r = pick_addresses(cct,
+    int r = pick_addresses(cct.get(),
                           CEPH_PICK_ADDRESS_PUBLIC |
                           CEPH_PICK_ADDRESS_MSGR1,
                           &one, &av);