Skip to content

Commit

Permalink
test/test_ipaddr: do not leak CephContext
Browse files Browse the repository at this point in the history
Signed-off-by: Kefu Chai <kchai@redhat.com>
  • Loading branch information
tchaikov committed Oct 20, 2020
1 parent d752aca commit 14d878c
Showing 1 changed file with 24 additions and 22 deletions.
46 changes: 24 additions & 22 deletions src/test/test_ipaddr.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down Expand Up @@ -623,19 +625,19 @@ 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",
"eth0");
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",
Expand All @@ -644,23 +646,23 @@ 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",
"eth0");
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",
"eth1");
ASSERT_EQ((struct sockaddr*)&a_two, result);

result = find_ip_in_subnet_list(
cct,
cct.get(),
&one,
CEPH_PICK_ADDRESS_IPV6,
"2001::/16",
Expand Down Expand Up @@ -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", "");
Expand All @@ -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,
Expand All @@ -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,
Expand All @@ -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,
Expand All @@ -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,
Expand All @@ -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,
Expand All @@ -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,
Expand All @@ -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,
Expand All @@ -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 |
Expand All @@ -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 |
Expand All @@ -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 |
Expand All @@ -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 |
Expand All @@ -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", "");
Expand All @@ -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);
Expand All @@ -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", "");
Expand All @@ -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);
Expand Down

0 comments on commit 14d878c

Please sign in to comment.