summaryrefslogtreecommitdiff
path: root/test/SessionSerializerTest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-02-04 21:50:09 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-02-04 21:50:09 +0900
commit3fc45edaa7eeb944c42b099f66d5eec6a9382bc2 (patch)
tree1f221fa721e4679b69bc53d2351fbcb5657ccdfc /test/SessionSerializerTest.cc
parentd1c88fbabf8ecf82111fb03495c0246958661903 (diff)
Fix bug that active downloads are not saved with --save-session-interval
Diffstat (limited to 'test/SessionSerializerTest.cc')
-rw-r--r--test/SessionSerializerTest.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/test/SessionSerializerTest.cc b/test/SessionSerializerTest.cc
index 2f20e4dc..fbb1b194 100644
--- a/test/SessionSerializerTest.cc
+++ b/test/SessionSerializerTest.cc
@@ -12,6 +12,8 @@
#include "Option.h"
#include "a2functional.h"
#include "FileEntry.h"
+#include "SelectEventPoll.h"
+#include "DownloadEngine.h"
namespace aria2 {
@@ -74,6 +76,13 @@ void SessionSerializerTest::testSave()
for(size_t i = 0; i < sizeof(drs)/sizeof(drs[0]); ++i) {
rgman->addDownloadResult(drs[i]);
}
+
+
+ DownloadEngine e(SharedHandle<EventPoll>(new SelectEventPoll()));
+ e.setOption(option.get());
+ rgman->fillRequestGroupFromReserver(&e);
+ CPPUNIT_ASSERT_EQUAL((size_t)1, rgman->getRequestGroups().size());
+
std::string filename = A2_TEST_OUT_DIR"/aria2_SessionSerializerTest_testSave";
s.save(filename);
std::ifstream ss(filename.c_str(), std::ios::binary);
@@ -82,6 +91,7 @@ void SessionSerializerTest::testSave()
CPPUNIT_ASSERT_EQUAL(std::string("http://error\t"), line);
std::getline(ss, line);
CPPUNIT_ASSERT_EQUAL(fmt(" gid=%s", drs[1]->gid->toHex().c_str()), line);
+ // Check active download is also saved
std::getline(ss, line);
CPPUNIT_ASSERT_EQUAL(uris[0]+"\t"+uris[1]+"\t", line);
std::getline(ss, line);