diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2012-12-22 19:29:27 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-02-01 00:03:47 +0900 |
| commit | 561f0b3e29d0f09f5e64ec9923a4d9627231fa89 (patch) | |
| tree | a03114d212df0e00e6da31f4b9388b9863e3cdc6 /test/RequestGroupManTest.cc | |
| parent | 643e7222b081c208327a662836a9fa6433c94cb8 (diff) | |
Use std::deque instead of std::list in IndexedList
We choose faster iteration over rare slower deletion in the middle.
Diffstat (limited to 'test/RequestGroupManTest.cc')
| -rw-r--r-- | test/RequestGroupManTest.cc | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/test/RequestGroupManTest.cc b/test/RequestGroupManTest.cc index fa4fa39f..ade0633b 100644 --- a/test/RequestGroupManTest.cc +++ b/test/RequestGroupManTest.cc @@ -19,6 +19,7 @@ #include "util.h" #include "DownloadEngine.h" #include "SelectEventPoll.h" +#include "UriListParser.h" namespace aria2 { @@ -31,6 +32,8 @@ class RequestGroupManTest : public CppUnit::TestFixture { CPPUNIT_TEST(testSaveServerStat); CPPUNIT_TEST(testChangeReservedGroupPosition); CPPUNIT_TEST(testFillRequestGroupFromReserver); + CPPUNIT_TEST(testFillRequestGroupFromReserver_uriParser); + CPPUNIT_TEST(testInsertReservedGroup); CPPUNIT_TEST_SUITE_END(); private: SharedHandle<DownloadEngine> e_; @@ -59,6 +62,8 @@ public: void testSaveServerStat(); void testChangeReservedGroupPosition(); void testFillRequestGroupFromReserver(); + void testFillRequestGroupFromReserver_uriParser(); + void testInsertReservedGroup(); }; @@ -229,4 +234,59 @@ void RequestGroupManTest::testFillRequestGroupFromReserver() CPPUNIT_ASSERT_EQUAL((size_t)2, rgman_->getReservedGroups().size()); } +void RequestGroupManTest::testFillRequestGroupFromReserver_uriParser() +{ + SharedHandle<RequestGroup> rgs[] = { + createRequestGroup(0, 0, "mem1", "http://mem1", util::copy(option_)), + createRequestGroup(0, 0, "mem2", "http://mem2", util::copy(option_)), + }; + rgs[0]->setPauseRequested(true); + for(SharedHandle<RequestGroup>* i = vbegin(rgs); i != vend(rgs); ++i) { + rgman_->addReservedGroup(*i); + } + + SharedHandle<UriListParser> flp + (new UriListParser(A2_TEST_DIR"/filelist2.txt")); + rgman_->setUriListParser(flp); + + rgman_->fillRequestGroupFromReserver(e_.get()); + + RequestGroupList::SeqType::const_iterator itr; + CPPUNIT_ASSERT_EQUAL((size_t)1, rgman_->getReservedGroups().size()); + itr = rgman_->getReservedGroups().begin(); + CPPUNIT_ASSERT_EQUAL(rgs[0]->getGID(), (*itr).second->getGID()); + CPPUNIT_ASSERT_EQUAL((size_t)3, rgman_->getRequestGroups().size()); +} + +void RequestGroupManTest::testInsertReservedGroup() +{ + SharedHandle<RequestGroup> rgs1[] = { + SharedHandle<RequestGroup>(new RequestGroup(GroupId::create(), + util::copy(option_))), + SharedHandle<RequestGroup>(new RequestGroup(GroupId::create(), + util::copy(option_))) + }; + SharedHandle<RequestGroup> rgs2[] = { + SharedHandle<RequestGroup>(new RequestGroup(GroupId::create(), + util::copy(option_))), + SharedHandle<RequestGroup>(new RequestGroup(GroupId::create(), + util::copy(option_))) + }; + std::vector<SharedHandle<RequestGroup> > groups(vbegin(rgs1), vend(rgs1)); + rgman_->insertReservedGroup(0, groups); + CPPUNIT_ASSERT_EQUAL((size_t)2, rgman_->getReservedGroups().size()); + RequestGroupList::SeqType::const_iterator itr; + itr = rgman_->getReservedGroups().begin(); + CPPUNIT_ASSERT_EQUAL(rgs1[0]->getGID(), (*itr++).second->getGID()); + CPPUNIT_ASSERT_EQUAL(rgs1[1]->getGID(), (*itr++).second->getGID()); + + groups.assign(vbegin(rgs2), vend(rgs2)); + rgman_->insertReservedGroup(1, groups); + CPPUNIT_ASSERT_EQUAL((size_t)4, rgman_->getReservedGroups().size()); + itr = rgman_->getReservedGroups().begin(); + ++itr; + CPPUNIT_ASSERT_EQUAL(rgs2[0]->getGID(), (*itr++).second->getGID()); + CPPUNIT_ASSERT_EQUAL(rgs2[1]->getGID(), (*itr++).second->getGID()); +} + } // namespace aria2 |
