diff options
Diffstat (limited to 'test/UDPTrackerClientTest.cc')
| -rw-r--r-- | test/UDPTrackerClientTest.cc | 39 |
1 files changed, 32 insertions, 7 deletions
diff --git a/test/UDPTrackerClientTest.cc b/test/UDPTrackerClientTest.cc index 948ed2d4..fc2f34e6 100644 --- a/test/UDPTrackerClientTest.cc +++ b/test/UDPTrackerClientTest.cc @@ -156,6 +156,7 @@ void UDPTrackerClientTest::testConnectFollowedByAnnounce() std::string remoteAddr; uint16_t remotePort; Timer now; + std::shared_ptr<UDPTrackerRequest> recvReq; std::shared_ptr<UDPTrackerRequest> req1( createAnnounce("192.168.0.1", 6991, 0)); @@ -190,8 +191,12 @@ void UDPTrackerClientTest::testConnectFollowedByAnnounce() uint64_t connectionId = 12345; rv = createConnectReply(data, sizeof(data), connectionId, transactionId); - rv = tr.receiveReply(data, rv, req1->remoteAddr, req1->remotePort, now); + rv = tr.receiveReply(recvReq, data, rv, req1->remoteAddr, req1->remotePort, + now); CPPUNIT_ASSERT_EQUAL(0, (int)rv); + if (rv == 0) { + CPPUNIT_ASSERT_EQUAL((int32_t)UDPT_ACT_CONNECT, recvReq->action); + } // Now 2 requests get back to pending CPPUNIT_ASSERT_EQUAL((size_t)2, tr.getPendingRequests().size()); @@ -229,15 +234,23 @@ void UDPTrackerClientTest::testConnectFollowedByAnnounce() // Reply for req2 rv = createAnnounceReply(data, sizeof(data), transactionId2); - rv = tr.receiveReply(data, rv, req2->remoteAddr, req2->remotePort, now); + rv = tr.receiveReply(recvReq, data, rv, req2->remoteAddr, req2->remotePort, + now); CPPUNIT_ASSERT_EQUAL(0, (int)rv); + if (rv == 0) { + CPPUNIT_ASSERT_EQUAL((int32_t)UDPT_ACT_ANNOUNCE, recvReq->action); + } CPPUNIT_ASSERT_EQUAL((int)UDPT_STA_COMPLETE, req2->state); CPPUNIT_ASSERT_EQUAL((int)UDPT_ERR_SUCCESS, req2->error); // Reply for req1 rv = createAnnounceReply(data, sizeof(data), transactionId1, 2); - rv = tr.receiveReply(data, rv, req1->remoteAddr, req1->remotePort, now); + rv = tr.receiveReply(recvReq, data, rv, req1->remoteAddr, req1->remotePort, + now); CPPUNIT_ASSERT_EQUAL(0, (int)rv); + if (rv == 0) { + CPPUNIT_ASSERT_EQUAL((int32_t)UDPT_ACT_ANNOUNCE, recvReq->action); + } CPPUNIT_ASSERT_EQUAL((int)UDPT_STA_COMPLETE, req1->state); CPPUNIT_ASSERT_EQUAL((int)UDPT_ERR_SUCCESS, req1->error); CPPUNIT_ASSERT_EQUAL((size_t)2, req1->reply->peers.size()); @@ -280,6 +293,8 @@ void UDPTrackerClientTest::testRequestFailure() std::string remoteAddr; uint16_t remotePort; Timer now; + std::shared_ptr<UDPTrackerRequest> recvReq; + { std::shared_ptr<UDPTrackerRequest> req1( createAnnounce("192.168.0.1", 6991, 0)); @@ -315,7 +330,12 @@ void UDPTrackerClientTest::testRequestFailure() tr.requestSent(now); rv = createErrorReply(data, sizeof(data), transactionId, "error"); - rv = tr.receiveReply(data, rv, req1->remoteAddr, req1->remotePort, now); + rv = tr.receiveReply(recvReq, data, rv, req1->remoteAddr, req1->remotePort, + now); + CPPUNIT_ASSERT_EQUAL((ssize_t)0, rv); + if (rv == 0) { + CPPUNIT_ASSERT_EQUAL((int32_t)UDPT_ACT_CONNECT, recvReq->action); + } CPPUNIT_ASSERT_EQUAL((int)UDPT_STA_COMPLETE, req1->state); CPPUNIT_ASSERT_EQUAL((int)UDPT_ERR_TRACKER, req1->error); CPPUNIT_ASSERT_EQUAL((int)UDPT_STA_COMPLETE, req2->state); @@ -338,7 +358,8 @@ void UDPTrackerClientTest::testRequestFailure() uint64_t connectionId = 12345; rv = createConnectReply(data, sizeof(data), connectionId, transactionId); - rv = tr.receiveReply(data, rv, req1->remoteAddr, req1->remotePort, now); + rv = tr.receiveReply(recvReq, data, rv, req1->remoteAddr, req1->remotePort, + now); CPPUNIT_ASSERT_EQUAL(0, (int)rv); rv = tr.createRequest(data, sizeof(data), remoteAddr, remotePort, now); @@ -348,7 +369,8 @@ void UDPTrackerClientTest::testRequestFailure() tr.requestSent(now); rv = createErrorReply(data, sizeof(data), transactionId, "announce error"); - rv = tr.receiveReply(data, rv, req1->remoteAddr, req1->remotePort, now); + rv = tr.receiveReply(recvReq, data, rv, req1->remoteAddr, req1->remotePort, + now); CPPUNIT_ASSERT_EQUAL((int)UDPT_STA_COMPLETE, req1->state); CPPUNIT_ASSERT_EQUAL((int)UDPT_ERR_TRACKER, req1->error); CPPUNIT_ASSERT(tr.getConnectRequests().empty()); @@ -365,6 +387,8 @@ void UDPTrackerClientTest::testTimeout() uint16_t remotePort; Timer now; UDPTrackerClient tr; + std::shared_ptr<UDPTrackerRequest> recvReq; + { std::shared_ptr<UDPTrackerRequest> req1( createAnnounce("192.168.0.1", 6991, 0)); @@ -414,7 +438,8 @@ void UDPTrackerClientTest::testTimeout() uint64_t connectionId = 12345; rv = createConnectReply(data, sizeof(data), connectionId, transactionId); - rv = tr.receiveReply(data, rv, req1->remoteAddr, req1->remotePort, now); + rv = tr.receiveReply(recvReq, data, rv, req1->remoteAddr, req1->remotePort, + now); CPPUNIT_ASSERT_EQUAL(0, (int)rv); rv = tr.createRequest(data, sizeof(data), remoteAddr, remotePort, now); |
