@@ -524,93 +524,88 @@ 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
-
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
+ }
534
544
// Compare equal in defult values
535
- ASSERT_EQ (tcpv4_transport_1, tcpv4_transport_2 );
545
+ ASSERT_EQ (*transport1, *transport2 );
536
546
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 );
539
551
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
541
553
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 );
544
558
545
- ASSERT_EQ (tcpv4_transport_1, tcpv4_transport_2 );
559
+ ASSERT_EQ (*transport1, *transport2 );
546
560
}
547
561
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 )
550
564
{
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" );
553
584
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);
557
588
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
+ }
561
593
}
562
594
563
595
// Test get_WAN_address member function
564
596
TEST_P (TransportTCP, TCPv4_get_WAN_address)
565
597
{
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
+ }
614
609
}
615
610
616
611
// Test connection is successfully restablished after dropping and relaunching a TCP client (requester)
@@ -674,52 +669,35 @@ TEST(TransportTCP, Client_reconnection)
674
669
delete requester;
675
670
}
676
671
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 )
679
674
{
680
675
PubSubReader<HelloWorldPubSubType> p1 (TEST_TOPIC_NAME);
681
676
PubSubReader<HelloWorldPubSubType> p2 (TEST_TOPIC_NAME);
682
677
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
+ }
712
692
713
693
// Add TCP Transport with listening port 0
714
- auto p1_transport = std::make_shared<eprosima::fastdds::rtps::TCPv6TransportDescriptor>();
715
694
p1_transport->add_listener_port (0 );
716
695
p1.disable_builtin_transport ().add_user_transport_to_pparams (p1_transport);
717
696
p1.init ();
718
697
ASSERT_TRUE (p1.isInitialized ());
719
698
720
699
// Add TCP Transport with listening port different from 0
721
700
uint16_t port = 12345 ;
722
- auto p2_transport = std::make_shared<eprosima::fastdds::rtps::TCPv6TransportDescriptor>();
723
701
p2_transport->add_listener_port (port);
724
702
p2.disable_builtin_transport ().add_user_transport_to_pparams (p2_transport);
725
703
p2.init ();
@@ -851,18 +829,9 @@ TEST_P(TransportTCP, multiple_listening_ports)
851
829
uint16_t server_port_1 = 10000 ;
852
830
uint16_t server_port_2 = 10001 ;
853
831
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 ();
866
835
ASSERT_TRUE (server->isInitialized ());
867
836
868
837
// Create two clients each one connecting to a different port
@@ -1333,18 +1302,40 @@ TEST_P(TransportTCP, TCP_initial_peers_connection)
1333
1302
PubSubReader<HelloWorldPubSubType> p3 (TEST_TOPIC_NAME);
1334
1303
1335
1304
// 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
+ }
1337
1322
p1_transport->add_listener_port (global_port);
1338
- auto p2_transport = std::make_shared<eprosima::fastdds::rtps::TCPv4TransportDescriptor>();
1339
1323
p2_transport->add_listener_port (global_port + 1 );
1340
- auto p3_transport = std::make_shared<eprosima::fastdds::rtps::TCPv4TransportDescriptor>();
1341
1324
p3_transport->add_listener_port (global_port - 1 );
1342
1325
1343
1326
// Add initial peer to clients
1344
1327
Locator_t initialPeerLocator;
1345
- initialPeerLocator.kind = LOCATOR_KIND_TCPv4;
1346
- IPLocator::setIPv4 (initialPeerLocator, 127 , 0 , 0 , 1 );
1347
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
+ }
1348
1339
LocatorList_t initial_peer_list;
1349
1340
initial_peer_list.push_back (initialPeerLocator);
1350
1341
0 commit comments