summaryrefslogtreecommitdiff
path: root/test/RequestGroupManTest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-02-25 21:42:54 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-02-25 21:42:54 +0900
commita49397ed19f4dff0bddba555ddd715e3766c488b (patch)
treeaecfef8a76fc442548f0067eaa588ba6f070b9a3 /test/RequestGroupManTest.cc
parent2aeb7137d0b8d6d07c9250ec2dc9fbbbef26a599 (diff)
Fix infinite loop when size of downloadResults_ exceeds maxDownloadResult_
Diffstat (limited to 'test/RequestGroupManTest.cc')
-rw-r--r--test/RequestGroupManTest.cc15
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