summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-07-06 00:59:43 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-07-06 15:56:08 +0900
commit68f2a333553dff378483cd628ba52aa6c5de63b8 (patch)
tree84dac597c645e8e63470284eed3fee6d98c9fda3 /test
parent697c1008f715669cdd6c8e5b7610a20182375253 (diff)
DownloadEngine: Use std::unique_ptr for RequestGroupMan
Diffstat (limited to 'test')
-rw-r--r--test/Aria2ApiTest.cc2
-rw-r--r--test/RequestGroupManTest.cc17
-rw-r--r--test/RpcMethodTest.cc60
-rw-r--r--test/SessionSerializerTest.cc20
-rw-r--r--test/TestUtil.cc8
-rw-r--r--test/TestUtil.h4
6 files changed, 56 insertions, 55 deletions
diff --git a/test/Aria2ApiTest.cc b/test/Aria2ApiTest.cc
index e84482d5..fecf0f52 100644
--- a/test/Aria2ApiTest.cc
+++ b/test/Aria2ApiTest.cc
@@ -235,7 +235,7 @@ void Aria2ApiTest::testDownloadResultDH()
std::shared_ptr<DownloadResult> dr2 =
createDownloadResult(error_code::NETWORK_PROBLEM,
"http://example.org/network");
- std::shared_ptr<RequestGroupMan> gman =
+ auto& gman =
session_->context->reqinfo->getDownloadEngine()->getRequestGroupMan();
gman->addDownloadResult(dr1);
gman->addDownloadResult(dr2);
diff --git a/test/RequestGroupManTest.cc b/test/RequestGroupManTest.cc
index b64c0390..47f22959 100644
--- a/test/RequestGroupManTest.cc
+++ b/test/RequestGroupManTest.cc
@@ -37,24 +37,23 @@ class RequestGroupManTest : public CppUnit::TestFixture {
CPPUNIT_TEST(testAddDownloadResult);
CPPUNIT_TEST_SUITE_END();
private:
- std::shared_ptr<DownloadEngine> e_;
+ std::unique_ptr<DownloadEngine> e_;
std::shared_ptr<Option> option_;
- std::shared_ptr<RequestGroupMan> rgman_;
+ RequestGroupMan* rgman_;
public:
void setUp()
{
- option_.reset(new Option());
+ option_ = std::make_shared<Option>();
option_->put(PREF_PIECE_LENGTH, "1048576");
// To enable paused RequestGroup
option_->put(PREF_ENABLE_RPC, A2_V_TRUE);
File(option_->get(PREF_DIR)).mkdirs();
- e_.reset
- (new DownloadEngine(std::shared_ptr<EventPoll>(new SelectEventPoll())));
+ e_ = make_unique<DownloadEngine>(std::make_shared<SelectEventPoll>());
e_->setOption(option_.get());
- rgman_ = std::shared_ptr<RequestGroupMan>
- (new RequestGroupMan(std::vector<std::shared_ptr<RequestGroup> >(),
- 3, option_.get()));
- e_->setRequestGroupMan(rgman_);
+ auto rgman = make_unique<RequestGroupMan>
+ (std::vector<std::shared_ptr<RequestGroup>>{}, 3, option_.get());
+ rgman_ = rgman.get();
+ e_->setRequestGroupMan(std::move(rgman));
}
void testIsSameFileBeingDownloaded();
diff --git a/test/RpcMethodTest.cc b/test/RpcMethodTest.cc
index c56f55fd..c5c4520b 100644
--- a/test/RpcMethodTest.cc
+++ b/test/RpcMethodTest.cc
@@ -84,18 +84,16 @@ private:
public:
void setUp()
{
- option_.reset(new Option());
+ option_ = std::make_shared<Option>();
option_->put(PREF_DIR, A2_TEST_OUT_DIR"/aria2_RpcMethodTest");
option_->put(PREF_PIECE_LENGTH, "1048576");
option_->put(PREF_MAX_DOWNLOAD_RESULT, "10");
File(option_->get(PREF_DIR)).mkdirs();
- e_.reset
- (new DownloadEngine(std::shared_ptr<EventPoll>(new SelectEventPoll())));
+ e_ = make_unique<DownloadEngine>(std::make_shared<SelectEventPoll>());
e_->setOption(option_.get());
e_->setRequestGroupMan
- (std::shared_ptr<RequestGroupMan>
- (new RequestGroupMan(std::vector<std::shared_ptr<RequestGroup> >(),
- 1, option_.get())));
+ (make_unique<RequestGroupMan>
+ (std::vector<std::shared_ptr<RequestGroup>>{}, 1, option_.get()));
}
void testAddUri();
@@ -182,7 +180,8 @@ void RpcMethodTest::testAddUri()
CPPUNIT_ASSERT_EQUAL(0, GroupId::toNumericId
(gid, downcast<String>(res.param)->s().c_str()));
CPPUNIT_ASSERT_EQUAL(std::string("/sink"),
- findReservedGroup(e_->getRequestGroupMan(), gid)->
+ findReservedGroup(e_->getRequestGroupMan().get(),
+ gid)->
getOption()->get(PREF_DIR));
}
}
@@ -239,7 +238,7 @@ void RpcMethodTest::testAddUri_withPosition()
m.execute(req2, e_.get());
std::string uri =
- getReservedGroup(e_->getRequestGroupMan(), 0)->
+ getReservedGroup(e_->getRequestGroupMan().get(), 0)->
getDownloadContext()->getFirstFileEntry()->getRemainingUris()[0];
CPPUNIT_ASSERT_EQUAL(std::string("http://uri2"), uri);
@@ -290,8 +289,7 @@ void RpcMethodTest::testAddTorrent()
CPPUNIT_ASSERT_EQUAL(0, GroupId::toNumericId
(gid, downcast<String>(res.param)->s().c_str()));
- std::shared_ptr<RequestGroup> group =
- findReservedGroup(e_->getRequestGroupMan(), gid);
+ auto group = findReservedGroup(e_->getRequestGroupMan().get(), gid);
CPPUNIT_ASSERT(group);
CPPUNIT_ASSERT_EQUAL(e_->getOption()->get(PREF_DIR)+"/aria2-0.8.2.tar.bz2",
group->getFirstFilePath());
@@ -317,7 +315,8 @@ void RpcMethodTest::testAddTorrent()
(gid, downcast<String>(res.param)->s().c_str()));
CPPUNIT_ASSERT_EQUAL
(dir+"/aria2-0.8.2.tar.bz2",
- findReservedGroup(e_->getRequestGroupMan(), gid)->getFirstFilePath());
+ findReservedGroup(e_->getRequestGroupMan().get(), gid)
+ ->getFirstFilePath());
CPPUNIT_ASSERT
(File(dir+"/0a3893293e27ac0490424c06de4d09242215f0a6.torrent").exists());
}
@@ -358,7 +357,7 @@ void RpcMethodTest::testAddTorrent_withPosition()
m.execute(req2, e_.get());
CPPUNIT_ASSERT_EQUAL((size_t)1,
- getReservedGroup(e_->getRequestGroupMan(), 0)->
+ getReservedGroup(e_->getRequestGroupMan().get(), 0)->
getDownloadContext()->getFileEntries().size());
}
@@ -408,13 +407,11 @@ void RpcMethodTest::testAddMetalink()
"/c908634fbc257fd56f0114912c2772aeeb4064f4.meta4").exists());
#endif // ENABLE_MESSAGE_DIGEST
- std::shared_ptr<RequestGroup> tar =
- findReservedGroup(e_->getRequestGroupMan(), gid3);
+ auto tar = findReservedGroup(e_->getRequestGroupMan().get(), gid3);
CPPUNIT_ASSERT(tar);
CPPUNIT_ASSERT_EQUAL(e_->getOption()->get(PREF_DIR)+"/aria2-5.0.0.tar.bz2",
tar->getFirstFilePath());
- std::shared_ptr<RequestGroup> deb =
- findReservedGroup(e_->getRequestGroupMan(), gid4);
+ auto deb = findReservedGroup(e_->getRequestGroupMan().get(), gid4);
CPPUNIT_ASSERT(deb);
CPPUNIT_ASSERT_EQUAL(e_->getOption()->get(PREF_DIR)+"/aria2-5.0.0.deb",
deb->getFirstFilePath());
@@ -436,7 +433,8 @@ void RpcMethodTest::testAddMetalink()
(0, GroupId::toNumericId
(gid5, downcast<String>(resParams->get(0))->s().c_str()));
CPPUNIT_ASSERT_EQUAL(dir+"/aria2-5.0.0.tar.bz2",
- findReservedGroup(e_->getRequestGroupMan(), gid5)->
+ findReservedGroup
+ (e_->getRequestGroupMan().get(), gid5)->
getFirstFilePath());
#ifdef ENABLE_MESSAGE_DIGEST
CPPUNIT_ASSERT
@@ -481,7 +479,7 @@ void RpcMethodTest::testAddMetalink_withPosition()
CPPUNIT_ASSERT_EQUAL(0, res2.code);
CPPUNIT_ASSERT_EQUAL(e_->getOption()->get(PREF_DIR)+"/aria2-5.0.0.tar.bz2",
- getReservedGroup(e_->getRequestGroupMan(), 0)->
+ getReservedGroup(e_->getRequestGroupMan().get(), 0)->
getFirstFilePath());
}
@@ -712,7 +710,7 @@ void RpcMethodTest::testTellWaiting()
#else // !ENABLE_BITTORRENT
addUri("http://4/", e_);
#endif // !ENABLE_BITTORRENT
- const std::shared_ptr<RequestGroupMan>& rgman = e_->getRequestGroupMan();
+ auto& rgman = e_->getRequestGroupMan();
TellWaitingRpcMethod m;
RpcRequest req(TellWaitingRpcMethod::getMethodName(), List::g());
req.params->append(Integer::g(1));
@@ -721,9 +719,11 @@ void RpcMethodTest::testTellWaiting()
CPPUNIT_ASSERT_EQUAL(0, res.code);
const List* resParams = downcast<List>(res.param);
CPPUNIT_ASSERT_EQUAL((size_t)2, resParams->size());
- CPPUNIT_ASSERT_EQUAL(GroupId::toHex(getReservedGroup(rgman, 1)->getGID()),
+ CPPUNIT_ASSERT_EQUAL(GroupId::toHex(getReservedGroup(rgman.get(), 1)
+ ->getGID()),
getString(downcast<Dict>(resParams->get(0)), "gid"));
- CPPUNIT_ASSERT_EQUAL(GroupId::toHex(getReservedGroup(rgman, 2)->getGID()),
+ CPPUNIT_ASSERT_EQUAL(GroupId::toHex(getReservedGroup(rgman.get(), 2)
+ ->getGID()),
getString(downcast<Dict>(resParams->get(1)), "gid"));
// waiting.size() == offset+num
req = RpcRequest(TellWaitingRpcMethod::getMethodName(), List::g());
@@ -779,9 +779,11 @@ void RpcMethodTest::testTellWaiting()
CPPUNIT_ASSERT_EQUAL(0, res.code);
resParams = downcast<List>(res.param);
CPPUNIT_ASSERT_EQUAL((size_t)2, resParams->size());
- CPPUNIT_ASSERT_EQUAL(GroupId::toHex(getReservedGroup(rgman, 3)->getGID()),
+ CPPUNIT_ASSERT_EQUAL(GroupId::toHex(getReservedGroup(rgman.get(),
+ 3)->getGID()),
getString(downcast<Dict>(resParams->get(0)), "gid"));
- CPPUNIT_ASSERT_EQUAL(GroupId::toHex(getReservedGroup(rgman, 2)->getGID()),
+ CPPUNIT_ASSERT_EQUAL(GroupId::toHex(getReservedGroup(rgman.get(),
+ 2)->getGID()),
getString(downcast<Dict>(resParams->get(1)), "gid"));
// negative offset and size < num
req.params->set(1, Integer::g(100));
@@ -973,7 +975,7 @@ void RpcMethodTest::testChangePosition()
(std::shared_ptr<RequestGroup>(new RequestGroup(GroupId::create(),
util::copy(option_))));
- a2_gid_t gid = getReservedGroup(e_->getRequestGroupMan(), 0)->getGID();
+ a2_gid_t gid = getReservedGroup(e_->getRequestGroupMan().get(), 0)->getGID();
ChangePositionRpcMethod m;
RpcRequest req(ChangePositionRpcMethod::getMethodName(), List::g());
req.params->append(GroupId::toHex(gid));
@@ -983,7 +985,7 @@ void RpcMethodTest::testChangePosition()
CPPUNIT_ASSERT_EQUAL(0, res.code);
CPPUNIT_ASSERT_EQUAL((int64_t)1, downcast<Integer>(res.param)->i());
CPPUNIT_ASSERT_EQUAL
- (gid, getReservedGroup(e_->getRequestGroupMan(), 1)->getGID());
+ (gid, getReservedGroup(e_->getRequestGroupMan().get(), 1)->getGID());
}
void RpcMethodTest::testChangePosition_fail()
@@ -1246,10 +1248,12 @@ void RpcMethodTest::testSystemMulticall()
CPPUNIT_ASSERT_EQUAL(0, res.code);
const List* resParams = downcast<List>(res.param);
CPPUNIT_ASSERT_EQUAL((size_t)7, resParams->size());
- std::shared_ptr<RequestGroupMan> rgman = e_->getRequestGroupMan();
- CPPUNIT_ASSERT_EQUAL(GroupId::toHex(getReservedGroup(rgman, 0)->getGID()),
+ auto& rgman = e_->getRequestGroupMan();
+ CPPUNIT_ASSERT_EQUAL(GroupId::toHex(getReservedGroup(rgman.get(), 0)
+ ->getGID()),
downcast<String>(downcast<List>(resParams->get(0))->get(0))->s());
- CPPUNIT_ASSERT_EQUAL(GroupId::toHex(getReservedGroup(rgman, 1)->getGID()),
+ CPPUNIT_ASSERT_EQUAL(GroupId::toHex(getReservedGroup(rgman.get(), 1)
+ ->getGID()),
downcast<String>(downcast<List>(resParams->get(1))->get(0))->s());
CPPUNIT_ASSERT_EQUAL((int64_t)1,
downcast<Integer>
diff --git a/test/SessionSerializerTest.cc b/test/SessionSerializerTest.cc
index c67b8156..1019eb2f 100644
--- a/test/SessionSerializerTest.cc
+++ b/test/SessionSerializerTest.cc
@@ -48,9 +48,8 @@ void SessionSerializerTest::testSave()
CPPUNIT_ASSERT_EQUAL((size_t)5, result.size());
result[4]->getOption()->put(PREF_PAUSE, A2_V_TRUE);
option->put(PREF_MAX_DOWNLOAD_RESULT, "10");
- std::shared_ptr<RequestGroupMan> rgman
- (new RequestGroupMan(result, 1, option.get()));
- SessionSerializer s(rgman);
+ RequestGroupMan rgman{result, 1, option.get()};
+ SessionSerializer s(&rgman);
std::shared_ptr<DownloadResult> drs[] = {
// REMOVED downloads will not be saved.
createDownloadResult(error_code::REMOVED, "http://removed"),
@@ -76,13 +75,13 @@ void SessionSerializerTest::testSave()
drs[3]->option->put(PREF_FORCE_SAVE, A2_V_TRUE);
for(size_t i = 0; i < sizeof(drs)/sizeof(drs[0]); ++i) {
- rgman->addDownloadResult(drs[i]);
+ rgman.addDownloadResult(drs[i]);
}
DownloadEngine e(std::shared_ptr<EventPoll>(new SelectEventPoll()));
e.setOption(option.get());
- rgman->fillRequestGroupFromReserver(&e);
- CPPUNIT_ASSERT_EQUAL((size_t)1, rgman->getRequestGroups().size());
+ 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);
@@ -148,11 +147,10 @@ void SessionSerializerTest::testSaveErrorDownload()
(dr->fileEntries[0]->getRemainingUris());
std::shared_ptr<Option> option(new Option());
option->put(PREF_MAX_DOWNLOAD_RESULT, "10");
- std::shared_ptr<RequestGroupMan> rgman
- (new RequestGroupMan(std::vector<std::shared_ptr<RequestGroup> >(), 1,
- option.get()));
- rgman->addDownloadResult(dr);
- SessionSerializer s(rgman);
+ RequestGroupMan rgman{std::vector<std::shared_ptr<RequestGroup> >(), 1,
+ option.get()};
+ rgman.addDownloadResult(dr);
+ SessionSerializer s(&rgman);
std::string filename =
A2_TEST_OUT_DIR"/aria2_SessionSerializerTest_testSaveErrorDownload";
CPPUNIT_ASSERT(s.save(filename));
diff --git a/test/TestUtil.cc b/test/TestUtil.cc
index da70c5ef..5a7cb5bb 100644
--- a/test/TestUtil.cc
+++ b/test/TestUtil.cc
@@ -104,9 +104,9 @@ WrDiskCacheEntry::DataCell* createDataCell(int64_t goff,
}
std::shared_ptr<RequestGroup> findReservedGroup
-(const std::shared_ptr<RequestGroupMan>& rgman, a2_gid_t gid)
+(RequestGroupMan* rgman, a2_gid_t gid)
{
- std::shared_ptr<RequestGroup> rg = rgman->findGroup(gid);
+ auto rg = rgman->findGroup(gid);
if(rg) {
if(rg->getState() == RequestGroup::STATE_WAITING) {
return rg;
@@ -118,10 +118,10 @@ std::shared_ptr<RequestGroup> findReservedGroup
}
std::shared_ptr<RequestGroup> getReservedGroup
-(const std::shared_ptr<RequestGroupMan>& rgman, size_t index)
+(RequestGroupMan* rgman, size_t index)
{
assert(rgman->getReservedGroups().size() > index);
- RequestGroupList::const_iterator i = rgman->getReservedGroups().begin();
+ auto i = rgman->getReservedGroups().begin();
std::advance(i, index);
return *i;
}
diff --git a/test/TestUtil.h b/test/TestUtil.h
index a559e6a9..6c126aba 100644
--- a/test/TestUtil.h
+++ b/test/TestUtil.h
@@ -60,10 +60,10 @@ WrDiskCacheEntry::DataCell* createDataCell(int64_t goff,
size_t offset = 0);
std::shared_ptr<RequestGroup> findReservedGroup
-(const std::shared_ptr<RequestGroupMan>& rgman, a2_gid_t gid);
+(RequestGroupMan* rgman, a2_gid_t gid);
std::shared_ptr<RequestGroup> getReservedGroup
-(const std::shared_ptr<RequestGroupMan>& rgman, size_t index);
+(RequestGroupMan* rgman, size_t index);
std::shared_ptr<RequestGroup> createRequestGroup(int32_t pieceLength,
int64_t totalLength,