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