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

Method testAdd

test/WrDiskCacheTest.cc:36–75  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34CPPUNIT_TEST_SUITE_REGISTRATION(WrDiskCacheTest);
35
36void WrDiskCacheTest::testAdd()
37{
38 WrDiskCache dc(20);
39 CPPUNIT_ASSERT_EQUAL((size_t)0, dc.getSize());
40 WrDiskCacheEntry e1(adaptor_);
41 e1.cacheData(createDataCell(0, "who knows?"));
42 CPPUNIT_ASSERT(dc.add(&e1));
43 CPPUNIT_ASSERT_EQUAL((size_t)10, dc.getSize());
44
45 WrDiskCacheEntry e2(adaptor_);
46 e2.cacheData(createDataCell(21, "seconddata"));
47 CPPUNIT_ASSERT(dc.add(&e2));
48 CPPUNIT_ASSERT_EQUAL((size_t)20, dc.getSize());
49
50 WrDiskCacheEntry e3(adaptor_);
51 e3.cacheData(createDataCell(10, "hello"));
52 CPPUNIT_ASSERT(dc.add(&e3));
53 CPPUNIT_ASSERT_EQUAL((size_t)15, dc.getSize());
54 // e1 is flushed to the disk
55 CPPUNIT_ASSERT_EQUAL(std::string("who knows?"), writer_->getString());
56 CPPUNIT_ASSERT_EQUAL((size_t)0, e1.getSize());
57
58 e3.cacheData(createDataCell(15, " world"));
59 CPPUNIT_ASSERT(dc.update(&e3, 6));
60
61 // e3 is flushed to the disk
62 CPPUNIT_ASSERT_EQUAL(std::string("who knows?hello world"),
63 writer_->getString());
64 CPPUNIT_ASSERT_EQUAL((size_t)0, e3.getSize());
65 CPPUNIT_ASSERT_EQUAL((size_t)10, dc.getSize());
66
67 e2.cacheData(createDataCell(31, "01234567890"));
68 CPPUNIT_ASSERT(dc.update(&e2, 11));
69 // e2 is flushed to the disk
70 CPPUNIT_ASSERT_EQUAL(
71 std::string("who knows?hello worldseconddata01234567890"),
72 writer_->getString());
73 CPPUNIT_ASSERT_EQUAL((size_t)0, e2.getSize());
74 CPPUNIT_ASSERT_EQUAL((size_t)0, dc.getSize());
75}
76
77} // namespace aria2

Callers

nothing calls this directly

Calls 6

createDataCellFunction · 0.85
cacheDataMethod · 0.80
getStringMethod · 0.80
getSizeMethod · 0.45
addMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected