Skip to content

Commit 29315db

Browse files
committed
Refs #22441: Avoid running duplicated TCP tests
Signed-off-by: cferreiragonz <[email protected]>
1 parent 07638e5 commit 29315db

File tree

1 file changed

+112
-121
lines changed

1 file changed

+112
-121
lines changed

test/blackbox/common/BlackboxTestsTransportTCP.cpp

+112-121
Original file line numberDiff line numberDiff line change
@@ -524,93 +524,88 @@ TEST_P(TransportTCP, TCPLocalhost)
524524
// Test for ==operator TCPTransportDescriptor is not required as it is an abstract class and in TCPv6 is same method
525525
// Test for copy TCPTransportDescriptor is not required as it is an abstract class and in TCPv6 is same method
526526

527-
// Test == operator for TCPv4
528-
TEST_P(TransportTCP, TCPv4_equal_operator)
527+
// Test == operator for TCPv4/v6
528+
TEST_P(TransportTCP, TCP_equal_operator)
529529
{
530-
// TCPv4TransportDescriptor
531-
eprosima::fastdds::rtps::TCPv4TransportDescriptor tcpv4_transport_1;
532-
eprosima::fastdds::rtps::TCPv4TransportDescriptor tcpv4_transport_2;
533-
530+
std::unique_ptr<TCPTransportDescriptor> transport1;
531+
std::unique_ptr<TCPTransportDescriptor> transport2;
532+
if (use_ipv6)
533+
{
534+
// TCPv6TransportDescriptor
535+
transport1 = std::make_unique<TCPv6TransportDescriptor>();
536+
transport2 = std::make_unique<TCPv6TransportDescriptor>();
537+
}
538+
else
539+
{
540+
// TCPv4TransportDescriptor
541+
transport1 = std::make_unique<TCPv4TransportDescriptor>();
542+
transport2 = std::make_unique<TCPv4TransportDescriptor>();
543+
}
534544
// Compare equal in defult values
535-
ASSERT_EQ(tcpv4_transport_1, tcpv4_transport_2);
545+
ASSERT_EQ(*transport1, *transport2);
536546

537-
// Modify default values in 1
538-
tcpv4_transport_1.set_WAN_address("80.80.99.45");
547+
// Modify some default values in 1
548+
transport1->enable_tcp_nodelay = !transport1->enable_tcp_nodelay; // change default value
549+
transport1->max_logical_port = transport1->max_logical_port + 10; // change default value
550+
transport1->add_listener_port(123u * 98u);
539551

540-
ASSERT_FALSE(tcpv4_transport_1 == tcpv4_transport_2); // operator== != operator!=, using operator== == false instead
552+
ASSERT_FALSE(*transport1 == *transport2); // operator== != operator!=, using operator== == false instead
541553

542-
// Modify default values in 2
543-
tcpv4_transport_2.set_WAN_address("80.80.99.45");
554+
// Modify some default values in 2
555+
transport2->enable_tcp_nodelay = !transport2->enable_tcp_nodelay; // change default value
556+
transport2->max_logical_port = transport2->max_logical_port + 10; // change default value
557+
transport2->add_listener_port(123u * 98u);
544558

545-
ASSERT_EQ(tcpv4_transport_1, tcpv4_transport_2);
559+
ASSERT_EQ(*transport1, *transport2);
546560
}
547561

548-
// Test copy constructor and copy assignment for TCPv4
549-
TEST_P(TransportTCP, TCPv4_copy)
562+
// Test copy constructor and copy assignment for TCPv4/v6
563+
TEST_P(TransportTCP, TCP_copy)
550564
{
551-
eprosima::fastdds::rtps::TCPv4TransportDescriptor tcpv4_transport;
552-
tcpv4_transport.set_WAN_address("80.80.99.45");
565+
if (use_ipv6)
566+
{
567+
// Change some varibles in order to check the non default creation
568+
TCPv6TransportDescriptor tcpv6_transport;
569+
tcpv6_transport.enable_tcp_nodelay = !tcpv6_transport.enable_tcp_nodelay; // change default value
570+
tcpv6_transport.max_logical_port = tcpv6_transport.max_logical_port + 10; // change default value
571+
tcpv6_transport.add_listener_port(123u * 98u);
572+
// Copy constructor
573+
TCPv6TransportDescriptor tcpv6_transport_copy_constructor(tcpv6_transport);
574+
EXPECT_EQ(tcpv6_transport, tcpv6_transport_copy_constructor);
575+
576+
// Copy assignment
577+
TCPv6TransportDescriptor tcpv6_transport_copy = tcpv6_transport;
578+
EXPECT_EQ(tcpv6_transport_copy, tcpv6_transport);
579+
}
580+
else
581+
{
582+
TCPv4TransportDescriptor tcpv4_transport;
583+
tcpv4_transport.set_WAN_address("80.80.99.45");
553584

554-
// Copy constructor
555-
eprosima::fastdds::rtps::TCPv4TransportDescriptor tcpv4_transport_copy_constructor(tcpv4_transport);
556-
EXPECT_EQ(tcpv4_transport, tcpv4_transport_copy_constructor);
585+
// Copy constructor
586+
TCPv4TransportDescriptor tcpv4_transport_copy_constructor(tcpv4_transport);
587+
EXPECT_EQ(tcpv4_transport, tcpv4_transport_copy_constructor);
557588

558-
// Copy assignment
559-
eprosima::fastdds::rtps::TCPv4TransportDescriptor tcpv4_transport_copy = tcpv4_transport;
560-
EXPECT_EQ(tcpv4_transport_copy, tcpv4_transport);
589+
// Copy assignment
590+
TCPv4TransportDescriptor tcpv4_transport_copy = tcpv4_transport;
591+
EXPECT_EQ(tcpv4_transport_copy, tcpv4_transport);
592+
}
561593
}
562594

563595
// Test get_WAN_address member function
564596
TEST_P(TransportTCP, TCPv4_get_WAN_address)
565597
{
566-
// TCPv4TransportDescriptor
567-
eprosima::fastdds::rtps::TCPv4TransportDescriptor tcpv4_transport;
568-
tcpv4_transport.set_WAN_address("80.80.99.45");
569-
ASSERT_EQ(tcpv4_transport.get_WAN_address(), "80.80.99.45");
570-
}
571-
572-
// Test == operator for TCPv6
573-
TEST_P(TransportTCP, TCPv6_equal_operator)
574-
{
575-
// TCPv6TransportDescriptor
576-
eprosima::fastdds::rtps::TCPv6TransportDescriptor tcpv6_transport_1;
577-
eprosima::fastdds::rtps::TCPv6TransportDescriptor tcpv6_transport_2;
578-
579-
// Compare equal in defult values
580-
ASSERT_EQ(tcpv6_transport_1, tcpv6_transport_2);
581-
582-
// Modify some default values in 1
583-
tcpv6_transport_1.enable_tcp_nodelay = !tcpv6_transport_1.enable_tcp_nodelay; // change default value
584-
tcpv6_transport_1.max_logical_port = tcpv6_transport_1.max_logical_port + 10; // change default value
585-
tcpv6_transport_1.add_listener_port(123u * 98u);
586-
587-
ASSERT_FALSE(tcpv6_transport_1 == tcpv6_transport_2); // operator== != operator!=, using operator== == false instead
588-
589-
590-
// Modify some default values in 2
591-
tcpv6_transport_2.enable_tcp_nodelay = !tcpv6_transport_2.enable_tcp_nodelay; // change default value
592-
tcpv6_transport_2.max_logical_port = tcpv6_transport_2.max_logical_port + 10; // change default value
593-
tcpv6_transport_2.add_listener_port(123u * 98u);
594-
595-
ASSERT_EQ(tcpv6_transport_1, tcpv6_transport_2);
596-
}
597-
598-
// Test copy constructor and copy assignment for TCPv6
599-
TEST_P(TransportTCP, TCPv6_copy)
600-
{
601-
// Change some varibles in order to check the non default creation
602-
eprosima::fastdds::rtps::TCPv6TransportDescriptor tcpv6_transport;
603-
tcpv6_transport.enable_tcp_nodelay = !tcpv6_transport.enable_tcp_nodelay; // change default value
604-
tcpv6_transport.max_logical_port = tcpv6_transport.max_logical_port + 10; // change default value
605-
tcpv6_transport.add_listener_port(123u * 98u);
606-
607-
// Copy constructor
608-
eprosima::fastdds::rtps::TCPv6TransportDescriptor tcpv6_transport_copy_constructor(tcpv6_transport);
609-
EXPECT_EQ(tcpv6_transport, tcpv6_transport_copy_constructor);
610-
611-
// Copy assignment
612-
eprosima::fastdds::rtps::TCPv6TransportDescriptor tcpv6_transport_copy = tcpv6_transport;
613-
EXPECT_EQ(tcpv6_transport_copy, tcpv6_transport);
598+
if (use_ipv6)
599+
{
600+
GTEST_SKIP() << "Test only for TCPv4";
601+
}
602+
else
603+
{
604+
// TCPv4TransportDescriptor
605+
eprosima::fastdds::rtps::TCPv4TransportDescriptor tcpv4_transport;
606+
tcpv4_transport.set_WAN_address("80.80.99.45");
607+
ASSERT_EQ(tcpv4_transport.get_WAN_address(), "80.80.99.45");
608+
}
614609
}
615610

616611
// Test connection is successfully restablished after dropping and relaunching a TCP client (requester)
@@ -674,52 +669,35 @@ TEST(TransportTCP, Client_reconnection)
674669
delete requester;
675670
}
676671

677-
// Test zero listening port for TCPv4
678-
TEST_P(TransportTCP, TCPv4_autofill_port)
672+
// Test zero listening port for TCPv4/v6
673+
TEST_P(TransportTCP, TCP_autofill_port)
679674
{
680675
PubSubReader<HelloWorldPubSubType> p1(TEST_TOPIC_NAME);
681676
PubSubReader<HelloWorldPubSubType> p2(TEST_TOPIC_NAME);
682677

683-
// Add TCP Transport with listening port 0
684-
auto p1_transport = std::make_shared<eprosima::fastdds::rtps::TCPv4TransportDescriptor>();
685-
p1_transport->add_listener_port(0);
686-
p1.disable_builtin_transport().add_user_transport_to_pparams(p1_transport);
687-
p1.init();
688-
ASSERT_TRUE(p1.isInitialized());
689-
690-
// Add TCP Transport with listening port different from 0
691-
uint16_t port = 12345;
692-
auto p2_transport = std::make_shared<eprosima::fastdds::rtps::TCPv4TransportDescriptor>();
693-
p2_transport->add_listener_port(port);
694-
p2.disable_builtin_transport().add_user_transport_to_pparams(p2_transport);
695-
p2.init();
696-
ASSERT_TRUE(p2.isInitialized());
697-
698-
LocatorList_t p1_locators;
699-
p1.get_native_reader().get_listening_locators(p1_locators);
700-
EXPECT_TRUE(IPLocator::getPhysicalPort(p1_locators.begin()[0]) != 0);
701-
702-
LocatorList_t p2_locators;
703-
p2.get_native_reader().get_listening_locators(p2_locators);
704-
EXPECT_TRUE(IPLocator::getPhysicalPort(p2_locators.begin()[0]) == port);
705-
}
706-
707-
// Test zero listening port for TCPv6
708-
TEST_P(TransportTCP, TCPv6_autofill_port)
709-
{
710-
PubSubReader<HelloWorldPubSubType> p1(TEST_TOPIC_NAME);
711-
PubSubReader<HelloWorldPubSubType> p2(TEST_TOPIC_NAME);
678+
std::shared_ptr<TCPTransportDescriptor> p1_transport;
679+
std::shared_ptr<TCPTransportDescriptor> p2_transport;
680+
if (use_ipv6)
681+
{
682+
// TCPv6TransportDescriptor
683+
p1_transport = std::make_shared<TCPv6TransportDescriptor>();
684+
p2_transport = std::make_shared<TCPv6TransportDescriptor>();
685+
}
686+
else
687+
{
688+
// TCPv4TransportDescriptor
689+
p1_transport = std::make_shared<TCPv4TransportDescriptor>();
690+
p2_transport = std::make_shared<TCPv4TransportDescriptor>();
691+
}
712692

713693
// Add TCP Transport with listening port 0
714-
auto p1_transport = std::make_shared<eprosima::fastdds::rtps::TCPv6TransportDescriptor>();
715694
p1_transport->add_listener_port(0);
716695
p1.disable_builtin_transport().add_user_transport_to_pparams(p1_transport);
717696
p1.init();
718697
ASSERT_TRUE(p1.isInitialized());
719698

720699
// Add TCP Transport with listening port different from 0
721700
uint16_t port = 12345;
722-
auto p2_transport = std::make_shared<eprosima::fastdds::rtps::TCPv6TransportDescriptor>();
723701
p2_transport->add_listener_port(port);
724702
p2.disable_builtin_transport().add_user_transport_to_pparams(p2_transport);
725703
p2.init();
@@ -851,18 +829,9 @@ TEST_P(TransportTCP, multiple_listening_ports)
851829
uint16_t server_port_1 = 10000;
852830
uint16_t server_port_2 = 10001;
853831

854-
std::shared_ptr<eprosima::fastdds::rtps::TCPTransportDescriptor> server_transport;
855-
if (use_ipv6)
856-
{
857-
server_transport = std::make_shared<eprosima::fastdds::rtps::TCPv6TransportDescriptor>();
858-
}
859-
else
860-
{
861-
server_transport = std::make_shared<eprosima::fastdds::rtps::TCPv4TransportDescriptor>();
862-
}
863-
server_transport->add_listener_port(server_port_1);
864-
server_transport->add_listener_port(server_port_2);
865-
server->disable_builtin_transport().add_user_transport_to_pparams(server_transport).init();
832+
test_transport_->add_listener_port(server_port_1);
833+
test_transport_->add_listener_port(server_port_2);
834+
server->disable_builtin_transport().add_user_transport_to_pparams(test_transport_).init();
866835
ASSERT_TRUE(server->isInitialized());
867836

868837
// Create two clients each one connecting to a different port
@@ -1333,18 +1302,40 @@ TEST_P(TransportTCP, TCP_initial_peers_connection)
13331302
PubSubReader<HelloWorldPubSubType> p3(TEST_TOPIC_NAME);
13341303

13351304
// Add TCP Transport with listening port
1336-
auto p1_transport = std::make_shared<eprosima::fastdds::rtps::TCPv4TransportDescriptor>();
1305+
std::shared_ptr<TCPTransportDescriptor> p1_transport;
1306+
std::shared_ptr<TCPTransportDescriptor> p2_transport;
1307+
std::shared_ptr<TCPTransportDescriptor> p3_transport;
1308+
if (use_ipv6)
1309+
{
1310+
// TCPv6TransportDescriptor
1311+
p1_transport = std::make_shared<TCPv6TransportDescriptor>();
1312+
p2_transport = std::make_shared<TCPv6TransportDescriptor>();
1313+
p3_transport = std::make_shared<TCPv6TransportDescriptor>();
1314+
}
1315+
else
1316+
{
1317+
// TCPv4TransportDescriptor
1318+
p1_transport = std::make_shared<TCPv4TransportDescriptor>();
1319+
p2_transport = std::make_shared<TCPv4TransportDescriptor>();
1320+
p3_transport = std::make_shared<TCPv4TransportDescriptor>();
1321+
}
13371322
p1_transport->add_listener_port(global_port);
1338-
auto p2_transport = std::make_shared<eprosima::fastdds::rtps::TCPv4TransportDescriptor>();
13391323
p2_transport->add_listener_port(global_port + 1);
1340-
auto p3_transport = std::make_shared<eprosima::fastdds::rtps::TCPv4TransportDescriptor>();
13411324
p3_transport->add_listener_port(global_port - 1);
13421325

13431326
// Add initial peer to clients
13441327
Locator_t initialPeerLocator;
1345-
initialPeerLocator.kind = LOCATOR_KIND_TCPv4;
1346-
IPLocator::setIPv4(initialPeerLocator, 127, 0, 0, 1);
13471328
initialPeerLocator.port = global_port;
1329+
if (use_ipv6)
1330+
{
1331+
initialPeerLocator.kind = LOCATOR_KIND_TCPv6;
1332+
IPLocator::setIPv6(initialPeerLocator, "::1");
1333+
}
1334+
else
1335+
{
1336+
initialPeerLocator.kind = LOCATOR_KIND_TCPv4;
1337+
IPLocator::setIPv4(initialPeerLocator, 127, 0, 0, 1);
1338+
}
13481339
LocatorList_t initial_peer_list;
13491340
initial_peer_list.push_back(initialPeerLocator);
13501341

0 commit comments

Comments
 (0)