summaryrefslogtreecommitdiff
path: root/test/UDPTrackerClientTest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/UDPTrackerClientTest.cc')
-rw-r--r--test/UDPTrackerClientTest.cc39
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);