MCPcopy Create free account
hub / github.com/aria2/aria2 / testWriteCache

Method testWriteCache

test/DirectDiskAdaptorTest.cc:52–80  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

50}
51
52void DirectDiskAdaptorTest::testWriteCache()
53{
54 auto adaptor = std::make_shared<DirectDiskAdaptor>();
55 ByteArrayDiskWriter* dw;
56 {
57 auto sdw = make_unique<ByteArrayDiskWriter>();
58 dw = sdw.get();
59 adaptor->setDiskWriter(std::move(sdw));
60 }
61 WrDiskCacheEntry cache{adaptor};
62 std::string data1(4_k, '1'), data2(4094, '2');
63 cache.cacheData(createDataCell(5, data1.c_str()));
64 cache.cacheData(createDataCell(5 + data1.size(), data2.c_str()));
65 adaptor->writeCache(&cache);
66 CPPUNIT_ASSERT_EQUAL(data1 + data2, dw->getString().substr(5));
67
68 cache.clear();
69 dw->setString("");
70 cache.cacheData(createDataCell(4_k, data1.c_str()));
71 adaptor->writeCache(&cache);
72 CPPUNIT_ASSERT_EQUAL(data1, dw->getString().substr(4_k));
73
74 cache.clear();
75 dw->setString("???????");
76 cache.cacheData(createDataCell(0, "abc"));
77 cache.cacheData(createDataCell(4, "efg"));
78 adaptor->writeCache(&cache);
79 CPPUNIT_ASSERT_EQUAL(std::string("abc?efg"), dw->getString());
80}
81
82} // namespace aria2

Callers

nothing calls this directly

Calls 9

createDataCellFunction · 0.85
cacheDataMethod · 0.80
getStringMethod · 0.80
setStringMethod · 0.80
getMethod · 0.45
setDiskWriterMethod · 0.45
sizeMethod · 0.45
writeCacheMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected