Explorar o código

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
Tatsuhiro Tsujikawa %!s(int64=15) %!d(string=hai) anos
pai
achega
07f91a28de
Modificáronse 3 ficheiros con 45 adicións e 21 borrados
  1. 6 0
      ChangeLog
  2. 2 3
      src/FileEntry.h
  3. 37 18
      test/FileEntryTest.cc

+ 6 - 0
ChangeLog

@@ -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.

+ 2 - 3
src/FileEntry.h

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

+ 37 - 18
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/"));