2010-07-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

Fixed compile error with OSX g++ 4.0.1
	* src/FileEntry.h
	* test/FileEntryTest.cc
pull/1/head
Tatsuhiro Tsujikawa 2010-07-18 15:49:53 +00:00
parent af99aa31d9
commit 07f91a28de
3 changed files with 45 additions and 21 deletions

View File

@ -1,3 +1,9 @@
2010-07-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Fixed compile error with OSX g++ 4.0.1
* src/FileEntry.h
* test/FileEntryTest.cc
2010-07-19 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Reverted default value of -j from 2 to 5.

View File

@ -167,9 +167,8 @@ public:
// reuse used URIs and do selection again.
SharedHandle<Request> getRequest
(const SharedHandle<URISelector>& selector,
bool uriReuse = true,
const std::vector<std::pair<size_t, std::string> >& usedHosts
= std::vector<std::pair<size_t, std::string> >(),
bool uriReuse,
const std::vector<std::pair<size_t, std::string> >& usedHosts,
const std::string& referer = A2STR::NIL,
const std::string& method = Request::METHOD_GET);

View File

@ -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/"));