diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-07-14 11:39:05 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-07-14 11:39:05 +0000 |
| commit | c99960aa330d9666682a9871b1194eaa38ab4dc7 (patch) | |
| tree | 49063e0a3c9cecf110c1c1c9837c28a0c9dc840c /test/DownloadHelperTest.cc | |
| parent | 8274432f14606d22b8c11aa55efa18c50ba20767 (diff) | |
2010-07-14 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added --max-connection-per-server=NUM option. The default value of
NUM is 1. This option limits the number of connections allowed to
one server for each download. This means when NUM is 2 and 1 URI
is provided, even if you specified -s 5, aria2 establishes 2
connections. Default value of -j option is changed from 5 to 2.
* src/BtDependency.cc
* src/CreateRequestCommand.cc
* src/FileEntry.cc
* src/FileEntry.h
* src/FtpNegotiationCommand.cc
* src/HttpResponseCommand.cc
* src/Metalink2RequestGroup.cc
* src/OptionHandlerFactory.cc
* src/TrackerWatcherCommand.cc
* src/download_helper.cc
* src/prefs.cc
* src/prefs.h
* src/usage_text.h
* test/DownloadHelperTest.cc
* test/FileEntryTest.cc
Diffstat (limited to 'test/DownloadHelperTest.cc')
| -rw-r--r-- | test/DownloadHelperTest.cc | 79 |
1 files changed, 36 insertions, 43 deletions
diff --git a/test/DownloadHelperTest.cc b/test/DownloadHelperTest.cc index c310df7e..368415a9 100644 --- a/test/DownloadHelperTest.cc +++ b/test/DownloadHelperTest.cc @@ -70,23 +70,22 @@ void DownloadHelperTest::testCreateRequestGroupForUri() "http://charlie/file" }; std::vector<std::string> uris(vbegin(array), vend(array)); - option_->put(PREF_SPLIT, "3"); + option_->put(PREF_SPLIT, "7"); + option_->put(PREF_MAX_CONNECTION_PER_SERVER, "2"); option_->put(PREF_DIR, "/tmp"); option_->put(PREF_OUT, "file.out"); { std::vector<SharedHandle<RequestGroup> > result; - createRequestGroupForUri(result, option_, uris); - CPPUNIT_ASSERT_EQUAL((size_t)1, result.size()); SharedHandle<RequestGroup> group = result[0]; - std::vector<std::string> uris; - group->getDownloadContext()->getFirstFileEntry()->getUris(uris); - CPPUNIT_ASSERT_EQUAL((size_t)3, uris.size()); - for(size_t i = 0; i < A2_ARRAY_LEN(array); ++i) { - CPPUNIT_ASSERT_EQUAL(array[i], uris[i]); + std::vector<std::string> xuris; + group->getDownloadContext()->getFirstFileEntry()->getUris(xuris); + CPPUNIT_ASSERT_EQUAL((size_t)6, xuris.size()); + for(size_t i = 0; i < 6; ++i) { + CPPUNIT_ASSERT_EQUAL(array[i%3], xuris[i]); } - CPPUNIT_ASSERT_EQUAL((unsigned int)3, group->getNumConcurrentCommand()); + CPPUNIT_ASSERT_EQUAL((unsigned int)7, group->getNumConcurrentCommand()); SharedHandle<DownloadContext> ctx = group->getDownloadContext(); CPPUNIT_ASSERT_EQUAL(std::string("/tmp"), ctx->getDir()); CPPUNIT_ASSERT_EQUAL(std::string("/tmp/file.out"), ctx->getBasePath()); @@ -94,53 +93,41 @@ void DownloadHelperTest::testCreateRequestGroupForUri() option_->put(PREF_SPLIT, "5"); { std::vector<SharedHandle<RequestGroup> > result; - createRequestGroupForUri(result, option_, uris); - CPPUNIT_ASSERT_EQUAL((size_t)1, result.size()); SharedHandle<RequestGroup> group = result[0]; - std::vector<std::string> uris; - group->getDownloadContext()->getFirstFileEntry()->getUris(uris); - CPPUNIT_ASSERT_EQUAL((size_t)5, uris.size()); - for(size_t i = 0; i < A2_ARRAY_LEN(array); ++i) { - CPPUNIT_ASSERT_EQUAL(array[i], uris[i]); - } - for(size_t i = 0; i < 5-A2_ARRAY_LEN(array); ++i) { - CPPUNIT_ASSERT_EQUAL(array[i], uris[i+A2_ARRAY_LEN(array)]); + std::vector<std::string> xuris; + group->getDownloadContext()->getFirstFileEntry()->getUris(xuris); + CPPUNIT_ASSERT_EQUAL((size_t)5, xuris.size()); + for(size_t i = 0; i < 5; ++i) { + CPPUNIT_ASSERT_EQUAL(array[i%3], xuris[i]); } - CPPUNIT_ASSERT_EQUAL((unsigned int)5, group->getNumConcurrentCommand()); } option_->put(PREF_SPLIT, "2"); { std::vector<SharedHandle<RequestGroup> > result; - createRequestGroupForUri(result, option_, uris); - CPPUNIT_ASSERT_EQUAL((size_t)1, result.size()); SharedHandle<RequestGroup> group = result[0]; - std::vector<std::string> uris; - group->getDownloadContext()->getFirstFileEntry()->getUris(uris); - CPPUNIT_ASSERT_EQUAL((size_t)3, uris.size()); - for(size_t i = 0; i < A2_ARRAY_LEN(array); ++i) { - CPPUNIT_ASSERT_EQUAL(array[i], uris[i]); + std::vector<std::string> xuris; + group->getDownloadContext()->getFirstFileEntry()->getUris(xuris); + CPPUNIT_ASSERT_EQUAL((size_t)3, xuris.size()); + for(size_t i = 0; i < 3; ++i) { + CPPUNIT_ASSERT_EQUAL(array[i%3], xuris[i]); } - CPPUNIT_ASSERT_EQUAL((unsigned int)2, group->getNumConcurrentCommand()); } option_->put(PREF_FORCE_SEQUENTIAL, V_TRUE); { std::vector<SharedHandle<RequestGroup> > result; - createRequestGroupForUri(result, option_, uris); - CPPUNIT_ASSERT_EQUAL((size_t)3, result.size()); - // for alpha server SharedHandle<RequestGroup> alphaGroup = result[0]; std::vector<std::string> alphaURIs; alphaGroup->getDownloadContext()->getFirstFileEntry()->getUris(alphaURIs); CPPUNIT_ASSERT_EQUAL((size_t)2, alphaURIs.size()); for(size_t i = 0; i < 2; ++i) { - CPPUNIT_ASSERT_EQUAL(array[0], uris[0]); + CPPUNIT_ASSERT_EQUAL(array[0], alphaURIs[i]); } CPPUNIT_ASSERT_EQUAL((unsigned int)2, alphaGroup->getNumConcurrentCommand()); @@ -158,6 +145,7 @@ void DownloadHelperTest::testCreateRequestGroupForUri_parameterized() "http://charlie/file" }; std::vector<std::string> uris(vbegin(array), vend(array)); + option_->put(PREF_MAX_CONNECTION_PER_SERVER, "1"); option_->put(PREF_SPLIT, "3"); option_->put(PREF_DIR, "/tmp"); option_->put(PREF_OUT, "file.out"); @@ -194,6 +182,7 @@ void DownloadHelperTest::testCreateRequestGroupForUri_BitTorrent() "http://charlie/file" }; std::vector<std::string> uris(vbegin(array), vend(array)); + option_->put(PREF_MAX_CONNECTION_PER_SERVER, "1"); option_->put(PREF_SPLIT, "3"); option_->put(PREF_DIR, "/tmp"); option_->put(PREF_OUT, "file.out"); @@ -204,13 +193,13 @@ void DownloadHelperTest::testCreateRequestGroupForUri_BitTorrent() CPPUNIT_ASSERT_EQUAL((size_t)2, result.size()); SharedHandle<RequestGroup> group = result[0]; - std::vector<std::string> uris; - group->getDownloadContext()->getFirstFileEntry()->getUris(uris); - CPPUNIT_ASSERT_EQUAL((size_t)3, uris.size()); + std::vector<std::string> xuris; + group->getDownloadContext()->getFirstFileEntry()->getUris(xuris); + CPPUNIT_ASSERT_EQUAL((size_t)3, xuris.size()); - CPPUNIT_ASSERT_EQUAL(array[0], uris[0]); - CPPUNIT_ASSERT_EQUAL(array[2], uris[1]); - CPPUNIT_ASSERT_EQUAL(array[3], uris[2]); + CPPUNIT_ASSERT_EQUAL(array[0], xuris[0]); + CPPUNIT_ASSERT_EQUAL(array[2], xuris[1]); + CPPUNIT_ASSERT_EQUAL(array[3], xuris[2]); CPPUNIT_ASSERT_EQUAL((unsigned int)3, group->getNumConcurrentCommand()); SharedHandle<DownloadContext> ctx = group->getDownloadContext(); @@ -242,6 +231,7 @@ void DownloadHelperTest::testCreateRequestGroupForUri_Metalink() "test.xml" }; std::vector<std::string> uris(vbegin(array), vend(array)); + option_->put(PREF_MAX_CONNECTION_PER_SERVER, "1"); option_->put(PREF_SPLIT, "3"); option_->put(PREF_METALINK_SERVERS, "2"); option_->put(PREF_DIR, "/tmp"); @@ -260,11 +250,11 @@ void DownloadHelperTest::testCreateRequestGroupForUri_Metalink() #endif // !ENABLE_BITTORRENT SharedHandle<RequestGroup> group = result[0]; - std::vector<std::string> uris; - group->getDownloadContext()->getFirstFileEntry()->getUris(uris); - CPPUNIT_ASSERT_EQUAL((size_t)3, uris.size()); + std::vector<std::string> xuris; + group->getDownloadContext()->getFirstFileEntry()->getUris(xuris); + CPPUNIT_ASSERT_EQUAL((size_t)3, xuris.size()); for(size_t i = 0; i < 3; ++i) { - CPPUNIT_ASSERT_EQUAL(array[i], uris[i]); + CPPUNIT_ASSERT_EQUAL(array[i], xuris[i]); } CPPUNIT_ASSERT_EQUAL((unsigned int)3, group->getNumConcurrentCommand()); SharedHandle<DownloadContext> ctx = group->getDownloadContext(); @@ -290,6 +280,7 @@ void DownloadHelperTest::testCreateRequestGroupForUri_Metalink() void DownloadHelperTest::testCreateRequestGroupForUriList() { + option_->put(PREF_MAX_CONNECTION_PER_SERVER, "3"); option_->put(PREF_SPLIT, "3"); option_->put(PREF_INPUT_FILE, "input_uris.txt"); option_->put(PREF_DIR, "/tmp"); @@ -330,6 +321,7 @@ void DownloadHelperTest::testCreateRequestGroupForBitTorrent() }; std::vector<std::string> auxURIs(vbegin(array), vend(array)); + option_->put(PREF_MAX_CONNECTION_PER_SERVER, "2"); option_->put(PREF_SPLIT, "5"); option_->put(PREF_TORRENT_FILE, "test.torrent"); option_->put(PREF_DIR, "/tmp"); @@ -344,7 +336,8 @@ void DownloadHelperTest::testCreateRequestGroupForBitTorrent() SharedHandle<RequestGroup> group = result[0]; std::vector<std::string> uris; group->getDownloadContext()->getFirstFileEntry()->getUris(uris); - // See -s option is ignored + // See -s option is ignored. See processRootDictionary() in + // bittorrent_helper.cc CPPUNIT_ASSERT_EQUAL((size_t)3, uris.size()); for(size_t i = 0; i < A2_ARRAY_LEN(array); ++i) { CPPUNIT_ASSERT_EQUAL(array[i]+"/aria2-test/aria2/src/aria2c", uris[i]); |
