@@ -525,98 +525,92 @@ TEST_P(TransportTCP, TCPLocalhost)
525
525
// Test for ==operator TCPTransportDescriptor is not required as it is an abstract class and in TCPv6 is same method
526
526
// Test for copy TCPTransportDescriptor is not required as it is an abstract class and in TCPv6 is same method
527
527
528
- // Test == operator for TCPv4
529
- TEST_P (TransportTCP, TCPv4_equal_operator )
528
+ // Test == operator for TCPv4/v6
529
+ TEST_P (TransportTCP, TCP_equal_operator )
530
530
{
531
- // TCPv4TransportDescriptor
532
- eprosima::fastdds::rtps::TCPv4TransportDescriptor tcpv4_transport_1;
533
- eprosima::fastdds::rtps::TCPv4TransportDescriptor tcpv4_transport_2;
534
-
535
- // Compare equal in defult values
536
- ASSERT_EQ (tcpv4_transport_1, tcpv4_transport_2);
537
-
538
- // Modify default values in 1
539
- tcpv4_transport_1.set_WAN_address (" 80.80.99.45" );
540
-
541
- ASSERT_FALSE (tcpv4_transport_1 == tcpv4_transport_2); // operator== != operator!=, using operator== == false instead
542
-
543
- // Modify default values in 2
544
- tcpv4_transport_2.set_WAN_address (" 80.80.99.45" );
545
-
546
- ASSERT_EQ (tcpv4_transport_1, tcpv4_transport_2);
531
+ if (use_ipv6)
532
+ {
533
+ // TCPv6TransportDescriptor
534
+ TCPv6TransportDescriptor transport1;
535
+ TCPv6TransportDescriptor transport2;
536
+ // Compare equal in defult values
537
+ ASSERT_EQ (transport1, transport2);
538
+
539
+ // Modify some default values in 1
540
+ transport1.enable_tcp_nodelay = !transport1.enable_tcp_nodelay ; // change default value
541
+ transport1.max_logical_port = transport1.max_logical_port + 10 ; // change default value
542
+ transport1.add_listener_port (123u * 98u );
543
+ ASSERT_FALSE (transport1 == transport2); // operator== != operator!=, using operator== == false instead
544
+
545
+ // Modify some default values in 2
546
+ transport2.enable_tcp_nodelay = !transport2.enable_tcp_nodelay ; // change default value
547
+ transport2.max_logical_port = transport2.max_logical_port + 10 ; // change default value
548
+ transport2.add_listener_port (123u * 98u );
549
+ ASSERT_EQ (transport1, transport2);
550
+ }
551
+ else
552
+ {
553
+ // TCPv4TransportDescriptor
554
+ TCPv4TransportDescriptor transport1;
555
+ TCPv4TransportDescriptor transport2;
556
+ // Compare equal in defult values
557
+ ASSERT_EQ (transport1, transport2);
558
+
559
+ // Modify default values in 1
560
+ transport1.set_WAN_address (" 80.80.99.45" );
561
+ ASSERT_FALSE (transport1 == transport2); // operator== != operator!=, using operator== == false instead
562
+
563
+ // Modify default values in 2
564
+ transport2.set_WAN_address (" 80.80.99.45" );
565
+ ASSERT_EQ (transport1, transport2);
566
+ }
547
567
}
548
568
549
- // Test copy constructor and copy assignment for TCPv4
550
- TEST_P (TransportTCP, TCPv4_copy )
569
+ // Test copy constructor and copy assignment for TCPv4/v6
570
+ TEST_P (TransportTCP, TCP_copy )
551
571
{
552
- eprosima::fastdds::rtps::TCPv4TransportDescriptor tcpv4_transport;
553
- tcpv4_transport.set_WAN_address (" 80.80.99.45" );
572
+ if (use_ipv6)
573
+ {
574
+ // Change some varibles in order to check the non default creation
575
+ TCPv6TransportDescriptor tcpv6_transport;
576
+ tcpv6_transport.enable_tcp_nodelay = !tcpv6_transport.enable_tcp_nodelay ; // change default value
577
+ tcpv6_transport.max_logical_port = tcpv6_transport.max_logical_port + 10 ; // change default value
578
+ tcpv6_transport.add_listener_port (123u * 98u );
579
+ // Copy constructor
580
+ TCPv6TransportDescriptor tcpv6_transport_copy_constructor (tcpv6_transport);
581
+ EXPECT_EQ (tcpv6_transport, tcpv6_transport_copy_constructor);
582
+
583
+ // Copy assignment
584
+ TCPv6TransportDescriptor tcpv6_transport_copy = tcpv6_transport;
585
+ EXPECT_EQ (tcpv6_transport_copy, tcpv6_transport);
586
+ }
587
+ else
588
+ {
589
+ TCPv4TransportDescriptor tcpv4_transport;
590
+ tcpv4_transport.set_WAN_address (" 80.80.99.45" );
554
591
555
- // Copy constructor
556
- eprosima::fastdds::rtps:: TCPv4TransportDescriptor tcpv4_transport_copy_constructor (tcpv4_transport);
557
- EXPECT_EQ (tcpv4_transport, tcpv4_transport_copy_constructor);
592
+ // Copy constructor
593
+ TCPv4TransportDescriptor tcpv4_transport_copy_constructor (tcpv4_transport);
594
+ EXPECT_EQ (tcpv4_transport, tcpv4_transport_copy_constructor);
558
595
559
- // Copy assignment
560
- eprosima::fastdds::rtps::TCPv4TransportDescriptor tcpv4_transport_copy = tcpv4_transport;
561
- EXPECT_EQ (tcpv4_transport_copy, tcpv4_transport);
596
+ // Copy assignment
597
+ TCPv4TransportDescriptor tcpv4_transport_copy = tcpv4_transport;
598
+ EXPECT_EQ (tcpv4_transport_copy, tcpv4_transport);
599
+ }
562
600
}
563
601
564
602
// Test get_WAN_address member function
565
- TEST_P (TransportTCP, TCPv4_get_WAN_address)
603
+ TEST (TransportTCP, TCPv4_get_WAN_address)
566
604
{
567
605
// TCPv4TransportDescriptor
568
606
eprosima::fastdds::rtps::TCPv4TransportDescriptor tcpv4_transport;
569
607
tcpv4_transport.set_WAN_address (" 80.80.99.45" );
570
608
ASSERT_EQ (tcpv4_transport.get_WAN_address (), " 80.80.99.45" );
571
609
}
572
610
573
- // Test == operator for TCPv6
574
- TEST_P (TransportTCP, TCPv6_equal_operator)
575
- {
576
- // TCPv6TransportDescriptor
577
- eprosima::fastdds::rtps::TCPv6TransportDescriptor tcpv6_transport_1;
578
- eprosima::fastdds::rtps::TCPv6TransportDescriptor tcpv6_transport_2;
579
-
580
- // Compare equal in defult values
581
- ASSERT_EQ (tcpv6_transport_1, tcpv6_transport_2);
582
-
583
- // Modify some default values in 1
584
- tcpv6_transport_1.enable_tcp_nodelay = !tcpv6_transport_1.enable_tcp_nodelay ; // change default value
585
- tcpv6_transport_1.max_logical_port = tcpv6_transport_1.max_logical_port + 10 ; // change default value
586
- tcpv6_transport_1.add_listener_port (123u * 98u );
587
-
588
- ASSERT_FALSE (tcpv6_transport_1 == tcpv6_transport_2); // operator== != operator!=, using operator== == false instead
589
-
590
-
591
- // Modify some default values in 2
592
- tcpv6_transport_2.enable_tcp_nodelay = !tcpv6_transport_2.enable_tcp_nodelay ; // change default value
593
- tcpv6_transport_2.max_logical_port = tcpv6_transport_2.max_logical_port + 10 ; // change default value
594
- tcpv6_transport_2.add_listener_port (123u * 98u );
595
-
596
- ASSERT_EQ (tcpv6_transport_1, tcpv6_transport_2);
597
- }
598
-
599
- // Test copy constructor and copy assignment for TCPv6
600
- TEST_P (TransportTCP, TCPv6_copy)
601
- {
602
- // Change some varibles in order to check the non default creation
603
- eprosima::fastdds::rtps::TCPv6TransportDescriptor tcpv6_transport;
604
- tcpv6_transport.enable_tcp_nodelay = !tcpv6_transport.enable_tcp_nodelay ; // change default value
605
- tcpv6_transport.max_logical_port = tcpv6_transport.max_logical_port + 10 ; // change default value
606
- tcpv6_transport.add_listener_port (123u * 98u );
607
-
608
- // Copy constructor
609
- eprosima::fastdds::rtps::TCPv6TransportDescriptor tcpv6_transport_copy_constructor (tcpv6_transport);
610
- EXPECT_EQ (tcpv6_transport, tcpv6_transport_copy_constructor);
611
-
612
- // Copy assignment
613
- eprosima::fastdds::rtps::TCPv6TransportDescriptor tcpv6_transport_copy = tcpv6_transport;
614
- EXPECT_EQ (tcpv6_transport_copy, tcpv6_transport);
615
- }
616
-
617
611
// Test connection is successfully restablished after dropping and relaunching a TCP client (requester)
618
612
// Issue -> https://github.com/eProsima/Fast-DDS/issues/2409
619
- TEST (TransportTCP, Client_reconnection)
613
+ TEST_P (TransportTCP, Client_reconnection)
620
614
{
621
615
TCPReqRepHelloWorldReplier* replier;
622
616
TCPReqRepHelloWorldRequester* requester;
@@ -675,52 +669,35 @@ TEST(TransportTCP, Client_reconnection)
675
669
delete requester;
676
670
}
677
671
678
- // Test zero listening port for TCPv4
679
- TEST_P (TransportTCP, TCPv4_autofill_port )
672
+ // Test zero listening port for TCPv4/v6
673
+ TEST_P (TransportTCP, TCP_autofill_port )
680
674
{
681
675
PubSubReader<HelloWorldPubSubType> p1 (TEST_TOPIC_NAME);
682
676
PubSubReader<HelloWorldPubSubType> p2 (TEST_TOPIC_NAME);
683
677
684
- // Add TCP Transport with listening port 0
685
- auto p1_transport = std::make_shared<eprosima::fastdds::rtps::TCPv4TransportDescriptor>();
686
- p1_transport->add_listener_port (0 );
687
- p1.disable_builtin_transport ().add_user_transport_to_pparams (p1_transport);
688
- p1.init ();
689
- ASSERT_TRUE (p1.isInitialized ());
690
-
691
- // Add TCP Transport with listening port different from 0
692
- uint16_t port = 12345 ;
693
- auto p2_transport = std::make_shared<eprosima::fastdds::rtps::TCPv4TransportDescriptor>();
694
- p2_transport->add_listener_port (port);
695
- p2.disable_builtin_transport ().add_user_transport_to_pparams (p2_transport);
696
- p2.init ();
697
- ASSERT_TRUE (p2.isInitialized ());
698
-
699
- LocatorList_t p1_locators;
700
- p1.get_native_reader ().get_listening_locators (p1_locators);
701
- EXPECT_TRUE (IPLocator::getPhysicalPort (p1_locators.begin ()[0 ]) != 0 );
702
-
703
- LocatorList_t p2_locators;
704
- p2.get_native_reader ().get_listening_locators (p2_locators);
705
- EXPECT_TRUE (IPLocator::getPhysicalPort (p2_locators.begin ()[0 ]) == port);
706
- }
707
-
708
- // Test zero listening port for TCPv6
709
- TEST_P (TransportTCP, TCPv6_autofill_port)
710
- {
711
- PubSubReader<HelloWorldPubSubType> p1 (TEST_TOPIC_NAME);
712
- 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
+ }
713
692
714
693
// Add TCP Transport with listening port 0
715
- auto p1_transport = std::make_shared<eprosima::fastdds::rtps::TCPv6TransportDescriptor>();
716
694
p1_transport->add_listener_port (0 );
717
695
p1.disable_builtin_transport ().add_user_transport_to_pparams (p1_transport);
718
696
p1.init ();
719
697
ASSERT_TRUE (p1.isInitialized ());
720
698
721
699
// Add TCP Transport with listening port different from 0
722
700
uint16_t port = 12345 ;
723
- auto p2_transport = std::make_shared<eprosima::fastdds::rtps::TCPv6TransportDescriptor>();
724
701
p2_transport->add_listener_port (port);
725
702
p2.disable_builtin_transport ().add_user_transport_to_pparams (p2_transport);
726
703
p2.init ();
@@ -852,18 +829,9 @@ TEST_P(TransportTCP, multiple_listening_ports)
852
829
uint16_t server_port_1 = 10000 ;
853
830
uint16_t server_port_2 = 10001 ;
854
831
855
- std::shared_ptr<eprosima::fastdds::rtps::TCPTransportDescriptor> server_transport;
856
- if (use_ipv6)
857
- {
858
- server_transport = std::make_shared<eprosima::fastdds::rtps::TCPv6TransportDescriptor>();
859
- }
860
- else
861
- {
862
- server_transport = std::make_shared<eprosima::fastdds::rtps::TCPv4TransportDescriptor>();
863
- }
864
- server_transport->add_listener_port (server_port_1);
865
- server_transport->add_listener_port (server_port_2);
866
- 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 ();
867
835
ASSERT_TRUE (server->isInitialized ());
868
836
869
837
// Create two clients each one connecting to a different port
@@ -1334,18 +1302,40 @@ TEST_P(TransportTCP, TCP_initial_peers_connection)
1334
1302
PubSubReader<HelloWorldPubSubType> p3 (TEST_TOPIC_NAME);
1335
1303
1336
1304
// Add TCP Transport with listening port
1337
- 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
+ }
1338
1322
p1_transport->add_listener_port (global_port);
1339
- auto p2_transport = std::make_shared<eprosima::fastdds::rtps::TCPv4TransportDescriptor>();
1340
1323
p2_transport->add_listener_port (global_port + 1 );
1341
- auto p3_transport = std::make_shared<eprosima::fastdds::rtps::TCPv4TransportDescriptor>();
1342
1324
p3_transport->add_listener_port (global_port - 1 );
1343
1325
1344
1326
// Add initial peer to clients
1345
1327
Locator_t initialPeerLocator;
1346
- initialPeerLocator.kind = LOCATOR_KIND_TCPv4;
1347
- IPLocator::setIPv4 (initialPeerLocator, 127 , 0 , 0 , 1 );
1348
1328
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
+ }
1349
1339
LocatorList_t initial_peer_list;
1350
1340
initial_peer_list.push_back (initialPeerLocator);
1351
1341
0 commit comments