diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-02-25 21:42:54 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-02-25 21:42:54 +0900 |
| commit | a49397ed19f4dff0bddba555ddd715e3766c488b (patch) | |
| tree | aecfef8a76fc442548f0067eaa588ba6f070b9a3 /test/RequestGroupManTest.cc | |
| parent | 2aeb7137d0b8d6d07c9250ec2dc9fbbbef26a599 (diff) | |
Fix infinite loop when size of downloadResults_ exceeds maxDownloadResult_
Diffstat (limited to 'test/RequestGroupManTest.cc')
| -rw-r--r-- | test/RequestGroupManTest.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/RequestGroupManTest.cc b/test/RequestGroupManTest.cc index ade0633b..5eda76de 100644 --- a/test/RequestGroupManTest.cc +++ b/test/RequestGroupManTest.cc @@ -34,6 +34,7 @@ class RequestGroupManTest : public CppUnit::TestFixture { CPPUNIT_TEST(testFillRequestGroupFromReserver); CPPUNIT_TEST(testFillRequestGroupFromReserver_uriParser); CPPUNIT_TEST(testInsertReservedGroup); + CPPUNIT_TEST(testAddDownloadResult); CPPUNIT_TEST_SUITE_END(); private: SharedHandle<DownloadEngine> e_; @@ -64,6 +65,7 @@ public: void testFillRequestGroupFromReserver(); void testFillRequestGroupFromReserver_uriParser(); void testInsertReservedGroup(); + void testAddDownloadResult(); }; @@ -289,4 +291,17 @@ void RequestGroupManTest::testInsertReservedGroup() CPPUNIT_ASSERT_EQUAL(rgs2[1]->getGID(), (*itr++).second->getGID()); } +void RequestGroupManTest::testAddDownloadResult() +{ + std::string uri = "http://example.org"; + rgman_->setMaxDownloadResult(3); + rgman_->addDownloadResult(createDownloadResult(error_code::TIME_OUT, uri)); + rgman_->addDownloadResult(createDownloadResult(error_code::FINISHED, uri)); + rgman_->addDownloadResult(createDownloadResult(error_code::FINISHED, uri)); + rgman_->addDownloadResult(createDownloadResult(error_code::FINISHED, uri)); + rgman_->addDownloadResult(createDownloadResult(error_code::FINISHED, uri)); + CPPUNIT_ASSERT_EQUAL(error_code::TIME_OUT, + rgman_->getDownloadStat().getLastErrorResult()); +} + } // namespace aria2 |
