32
32
#include < system/SystemLayer.h>
33
33
#include < transport/TransportMgr.h>
34
34
#include < transport/raw/TCP.h>
35
+ #include < transport/raw/tests/TCPBaseTestAccess.h>
35
36
36
37
#include < errno.h>
37
38
#include < stdlib.h>
@@ -42,33 +43,14 @@ using namespace chip;
42
43
using namespace chip ::Test;
43
44
using namespace chip ::Inet;
44
45
46
+ namespace {
47
+
45
48
constexpr size_t kMaxTcpActiveConnectionCount = 4 ;
46
49
constexpr size_t kMaxTcpPendingPackets = 4 ;
47
50
constexpr uint16_t kPacketSizeBytes = static_cast <uint16_t >(sizeof (uint16_t ));
48
51
49
- using TCPImpl = Transport::TCP<kMaxTcpActiveConnectionCount , kMaxTcpPendingPackets >;
50
-
51
- namespace chip {
52
- namespace Transport {
53
- class TCPTestAccess
54
- {
55
- public:
56
- static void * FindActiveConnection (TCPImpl & tcp, Transport::PeerAddress & lPeerAddress)
57
- {
58
- return tcp.FindActiveConnection (lPeerAddress);
59
- }
60
- static TCPEndPoint * GetEndpoint (void * state) { return static_cast <TCPBase::ActiveConnectionState *>(state)->mEndPoint ; }
61
-
62
- static CHIP_ERROR ProcessReceivedBuffer (TCPImpl & tcp, TCPEndPoint * endPoint, const PeerAddress & peerAddress,
63
- System::PacketBufferHandle && buffer)
64
- {
65
- return tcp.ProcessReceivedBuffer (endPoint, peerAddress, std::move (buffer));
66
- }
67
- };
68
- } // namespace Transport
69
- } // namespace chip
70
-
71
- namespace {
52
+ using TCPImpl = Transport::TCP<kMaxTcpActiveConnectionCount , kMaxTcpPendingPackets >;
53
+ using TestAccess = Transport::TCPBaseTestAccess<kMaxTcpActiveConnectionCount , kMaxTcpPendingPackets >;
72
54
73
55
constexpr NodeId kSourceNodeId = 123654 ;
74
56
constexpr NodeId kDestinationNodeId = 111222333 ;
@@ -421,9 +403,9 @@ TEST_F(TestTCP, CheckProcessReceivedBuffer)
421
403
gMockTransportMgrDelegate .SingleMessageTest (tcp, addr);
422
404
423
405
Transport::PeerAddress lPeerAddress = Transport::PeerAddress::TCP (addr);
424
- void * state = Transport::TCPTestAccess ::FindActiveConnection (tcp, lPeerAddress);
406
+ void * state = TestAccess ::FindActiveConnection (tcp, lPeerAddress);
425
407
ASSERT_NE (state, nullptr );
426
- TCPEndPoint * lEndPoint = Transport::TCPTestAccess ::GetEndpoint (state);
408
+ TCPEndPoint * lEndPoint = TestAccess ::GetEndpoint (state);
427
409
ASSERT_NE (lEndPoint, nullptr );
428
410
429
411
CHIP_ERROR err = CHIP_NO_ERROR;
@@ -433,14 +415,14 @@ TEST_F(TestTCP, CheckProcessReceivedBuffer)
433
415
// Test a single packet buffer.
434
416
gMockTransportMgrDelegate .mReceiveHandlerCallCount = 0 ;
435
417
EXPECT_TRUE (testData[0 ].Init ((const uint16_t []){ 111 , 0 }));
436
- err = Transport::TCPTestAccess ::ProcessReceivedBuffer (tcp, lEndPoint, lPeerAddress, std::move (testData[0 ].mHandle ));
418
+ err = TestAccess ::ProcessReceivedBuffer (tcp, lEndPoint, lPeerAddress, std::move (testData[0 ].mHandle ));
437
419
EXPECT_EQ (err, CHIP_NO_ERROR);
438
420
EXPECT_EQ (gMockTransportMgrDelegate .mReceiveHandlerCallCount , 1 );
439
421
440
422
// Test a message in a chain of three packet buffers. The message length is split across buffers.
441
423
gMockTransportMgrDelegate .mReceiveHandlerCallCount = 0 ;
442
424
EXPECT_TRUE (testData[0 ].Init ((const uint16_t []){ 1 , 122 , 123 , 0 }));
443
- err = Transport::TCPTestAccess ::ProcessReceivedBuffer (tcp, lEndPoint, lPeerAddress, std::move (testData[0 ].mHandle ));
425
+ err = TestAccess ::ProcessReceivedBuffer (tcp, lEndPoint, lPeerAddress, std::move (testData[0 ].mHandle ));
444
426
EXPECT_EQ (err, CHIP_NO_ERROR);
445
427
EXPECT_EQ (gMockTransportMgrDelegate .mReceiveHandlerCallCount , 1 );
446
428
@@ -449,7 +431,7 @@ TEST_F(TestTCP, CheckProcessReceivedBuffer)
449
431
EXPECT_TRUE (testData[0 ].Init ((const uint16_t []){ 131 , 0 }));
450
432
EXPECT_TRUE (testData[1 ].Init ((const uint16_t []){ 132 , 0 }));
451
433
testData[0 ].mHandle ->AddToEnd (std::move (testData[1 ].mHandle ));
452
- err = Transport::TCPTestAccess ::ProcessReceivedBuffer (tcp, lEndPoint, lPeerAddress, std::move (testData[0 ].mHandle ));
434
+ err = TestAccess ::ProcessReceivedBuffer (tcp, lEndPoint, lPeerAddress, std::move (testData[0 ].mHandle ));
453
435
EXPECT_EQ (err, CHIP_NO_ERROR);
454
436
EXPECT_EQ (gMockTransportMgrDelegate .mReceiveHandlerCallCount , 2 );
455
437
@@ -458,7 +440,7 @@ TEST_F(TestTCP, CheckProcessReceivedBuffer)
458
440
EXPECT_TRUE (testData[0 ].Init ((const uint16_t []){ 141 , 142 , 0 }));
459
441
EXPECT_TRUE (testData[1 ].Init ((const uint16_t []){ 143 , 144 , 0 }));
460
442
testData[0 ].mHandle ->AddToEnd (std::move (testData[1 ].mHandle ));
461
- err = Transport::TCPTestAccess ::ProcessReceivedBuffer (tcp, lEndPoint, lPeerAddress, std::move (testData[0 ].mHandle ));
443
+ err = TestAccess ::ProcessReceivedBuffer (tcp, lEndPoint, lPeerAddress, std::move (testData[0 ].mHandle ));
462
444
EXPECT_EQ (err, CHIP_NO_ERROR);
463
445
EXPECT_EQ (gMockTransportMgrDelegate .mReceiveHandlerCallCount , 2 );
464
446
@@ -468,7 +450,7 @@ TEST_F(TestTCP, CheckProcessReceivedBuffer)
468
450
EXPECT_TRUE (testData[0 ].Init ((const uint16_t []){ 51 , System::PacketBuffer::kMaxSizeWithoutReserve , 0 }));
469
451
// Sending only the first buffer of the long chain. This should be enough to trigger the error.
470
452
System::PacketBufferHandle head = testData[0 ].mHandle .PopHead ();
471
- err = Transport::TCPTestAccess ::ProcessReceivedBuffer (tcp, lEndPoint, lPeerAddress, std::move (head));
453
+ err = TestAccess ::ProcessReceivedBuffer (tcp, lEndPoint, lPeerAddress, std::move (head));
472
454
EXPECT_EQ (err, CHIP_ERROR_MESSAGE_TOO_LONG);
473
455
EXPECT_EQ (gMockTransportMgrDelegate .mReceiveHandlerCallCount , 0 );
474
456
0 commit comments