diff options
Diffstat (limited to 'test/FileEntryTest.cc')
| -rw-r--r-- | test/FileEntryTest.cc | 55 |
1 files changed, 37 insertions, 18 deletions
diff --git a/test/FileEntryTest.cc b/test/FileEntryTest.cc index 34aa863d..46da43aa 100644 --- a/test/FileEntryTest.cc +++ b/test/FileEntryTest.cc @@ -109,71 +109,87 @@ void FileEntryTest::testGetRequest() { SharedHandle<FileEntry> fileEntry = createFileEntry(); SharedHandle<InOrderURISelector> selector(new InOrderURISelector()); - SharedHandle<Request> req = fileEntry->getRequest(selector); + std::vector<std::pair<size_t, std::string> > usedHosts; + SharedHandle<Request> req = + fileEntry->getRequest(selector, true, usedHosts); CPPUNIT_ASSERT_EQUAL(std::string("localhost"), req->getHost()); CPPUNIT_ASSERT_EQUAL(std::string("http"), req->getProtocol()); fileEntry->poolRequest(req); - SharedHandle<Request> req2nd = fileEntry->getRequest(selector); + SharedHandle<Request> req2nd = + fileEntry->getRequest(selector, true, usedHosts); CPPUNIT_ASSERT_EQUAL(std::string("localhost"), req2nd->getHost()); CPPUNIT_ASSERT_EQUAL(std::string("http"), req2nd->getProtocol()); - SharedHandle<Request> req3rd = fileEntry->getRequest(selector); + SharedHandle<Request> req3rd = + fileEntry->getRequest(selector, true, usedHosts); CPPUNIT_ASSERT_EQUAL(std::string("mirror"), req3rd->getHost()); CPPUNIT_ASSERT_EQUAL(std::string("http"), req3rd->getProtocol()); - SharedHandle<Request> req4th = fileEntry->getRequest(selector); + SharedHandle<Request> req4th = + fileEntry->getRequest(selector, true, usedHosts); CPPUNIT_ASSERT(req4th.isNull()); fileEntry->setMaxConnectionPerServer(2); - SharedHandle<Request> req5th = fileEntry->getRequest(selector); + SharedHandle<Request> req5th = + fileEntry->getRequest(selector, true, usedHosts); CPPUNIT_ASSERT_EQUAL(std::string("localhost"), req5th->getHost()); CPPUNIT_ASSERT_EQUAL(std::string("ftp"), req5th->getProtocol()); - SharedHandle<Request> req6th = fileEntry->getRequest(selector); + SharedHandle<Request> req6th = + fileEntry->getRequest(selector, true, usedHosts); CPPUNIT_ASSERT_EQUAL(std::string("mirror"), req6th->getHost()); CPPUNIT_ASSERT_EQUAL(std::string("http"), req6th->getProtocol()); - SharedHandle<Request> req7th = fileEntry->getRequest(selector); + SharedHandle<Request> req7th = + fileEntry->getRequest(selector, true, usedHosts); CPPUNIT_ASSERT(req7th.isNull()); } void FileEntryTest::testGetRequest_withoutUriReuse() { + std::vector<std::pair<size_t, std::string> > usedHosts; SharedHandle<FileEntry> fileEntry = createFileEntry(); fileEntry->setMaxConnectionPerServer(2); SharedHandle<InOrderURISelector> selector(new InOrderURISelector()); - SharedHandle<Request> req = fileEntry->getRequest(selector, false); + SharedHandle<Request> req = fileEntry->getRequest(selector, false, usedHosts); CPPUNIT_ASSERT_EQUAL(std::string("localhost"), req->getHost()); CPPUNIT_ASSERT_EQUAL(std::string("http"), req->getProtocol()); - SharedHandle<Request> req2nd = fileEntry->getRequest(selector, false); + SharedHandle<Request> req2nd = + fileEntry->getRequest(selector, false, usedHosts); CPPUNIT_ASSERT_EQUAL(std::string("localhost"), req2nd->getHost()); CPPUNIT_ASSERT_EQUAL(std::string("ftp"), req2nd->getProtocol()); - SharedHandle<Request> req3rd = fileEntry->getRequest(selector, false); + SharedHandle<Request> req3rd = + fileEntry->getRequest(selector, false, usedHosts); CPPUNIT_ASSERT_EQUAL(std::string("mirror"), req3rd->getHost()); CPPUNIT_ASSERT_EQUAL(std::string("http"), req3rd->getProtocol()); - SharedHandle<Request> req4th = fileEntry->getRequest(selector, false); + SharedHandle<Request> req4th = + fileEntry->getRequest(selector, false, usedHosts); CPPUNIT_ASSERT(req4th.isNull()); } void FileEntryTest::testGetRequest_withUniqueProtocol() { + std::vector<std::pair<size_t, std::string> > usedHosts; SharedHandle<FileEntry> fileEntry = createFileEntry(); fileEntry->setUniqueProtocol(true); SharedHandle<InOrderURISelector> selector(new InOrderURISelector()); - SharedHandle<Request> req = fileEntry->getRequest(selector); + SharedHandle<Request> req = + fileEntry->getRequest(selector, true, usedHosts); CPPUNIT_ASSERT_EQUAL(std::string("localhost"), req->getHost()); CPPUNIT_ASSERT_EQUAL(std::string("http"), req->getProtocol()); - SharedHandle<Request> req2nd = fileEntry->getRequest(selector); + SharedHandle<Request> req2nd = + fileEntry->getRequest(selector, true, usedHosts); CPPUNIT_ASSERT_EQUAL(std::string("mirror"), req2nd->getHost()); CPPUNIT_ASSERT_EQUAL(std::string("http"), req2nd->getProtocol()); - SharedHandle<Request> req3rd = fileEntry->getRequest(selector); + SharedHandle<Request> req3rd = + fileEntry->getRequest(selector, true, usedHosts); CPPUNIT_ASSERT(req3rd.isNull()); CPPUNIT_ASSERT_EQUAL((size_t)2, fileEntry->getRemainingUris().size()); @@ -189,8 +205,9 @@ void FileEntryTest::testReuseUri() SharedHandle<FileEntry> fileEntry = createFileEntry(); fileEntry->setMaxConnectionPerServer(3); size_t numUris = fileEntry->getRemainingUris().size(); + std::vector<std::pair<size_t, std::string> > usedHosts; for(size_t i = 0; i < numUris; ++i) { - fileEntry->getRequest(selector, false); + fileEntry->getRequest(selector, false, usedHosts); } CPPUNIT_ASSERT_EQUAL((size_t)0, fileEntry->getRemainingUris().size()); fileEntry->addURIResult("http://localhost/aria2.zip", @@ -202,7 +219,7 @@ void FileEntryTest::testReuseUri() CPPUNIT_ASSERT_EQUAL(std::string("ftp://localhost/aria2.zip"), uris[0]); CPPUNIT_ASSERT_EQUAL(std::string("http://mirror/aria2.zip"), uris[1]); for(size_t i = 0; i < 2; ++i) { - fileEntry->getRequest(selector, false); + fileEntry->getRequest(selector, false, usedHosts); } CPPUNIT_ASSERT_EQUAL((size_t)0, fileEntry->getRemainingUris().size()); ignore.clear(); @@ -243,6 +260,7 @@ void FileEntryTest::testInsertUri() void FileEntryTest::testRemoveUri() { + std::vector<std::pair<size_t, std::string> > usedHosts; SharedHandle<InOrderURISelector> selector(new InOrderURISelector()); FileEntry file; file.addUri("http://example.org/"); @@ -251,7 +269,8 @@ void FileEntryTest::testRemoveUri() CPPUNIT_ASSERT(!file.removeUri("http://example.org/")); file.addUri("http://example.org/"); - SharedHandle<Request> exampleOrgReq = file.getRequest(selector); + SharedHandle<Request> exampleOrgReq = + file.getRequest(selector, true, usedHosts); CPPUNIT_ASSERT(!exampleOrgReq->removalRequested()); CPPUNIT_ASSERT_EQUAL((size_t)1, file.getSpentUris().size()); CPPUNIT_ASSERT(file.removeUri("http://example.org/")); @@ -261,7 +280,7 @@ void FileEntryTest::testRemoveUri() CPPUNIT_ASSERT_EQUAL((size_t)0, file.countPooledRequest()); file.addUri("http://example.org/"); - exampleOrgReq = file.getRequest(selector); + exampleOrgReq = file.getRequest(selector, true, usedHosts); file.poolRequest(exampleOrgReq); CPPUNIT_ASSERT_EQUAL((size_t)1, file.countPooledRequest()); CPPUNIT_ASSERT(file.removeUri("http://example.org/")); |
