MCPcopy Create free account
hub / github.com/ceph/ceph / test_object_contents

Function test_object_contents

src/test/common/ObjectContents.cc:7–64  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5#include <map>
6
7bool test_object_contents()
8{
9 ObjectContents c, d;
10 ceph_assert(!c.exists());
11 c.debug(std::cerr);
12 c.write(10, 10, 10);
13 ceph_assert(c.exists());
14 ceph_assert(c.size() == 20);
15
16 c.debug(std::cerr);
17 bufferlist bl;
18 for (ObjectContents::Iterator iter = c.get_iterator();
19 iter.valid();
20 ++iter) {
21 bl.append(*iter);
22 }
23 ceph_assert(bl.length() == 20);
24
25 bufferlist bl2;
26 for (unsigned i = 0; i < 8; ++i) bl2.append(bl[i]);
27 c.write(10, 8, 4);
28 c.debug(std::cerr);
29 ObjectContents::Iterator iter = c.get_iterator();
30 iter.seek_to(8);
31 for (uint64_t i = 8;
32 i < 12;
33 ++i, ++iter) {
34 bl2.append(*iter);
35 }
36 for (unsigned i = 12; i < 20; ++i) bl2.append(bl[i]);
37 ceph_assert(bl2.length() == 20);
38
39 for (ObjectContents::Iterator iter3 = c.get_iterator();
40 iter.valid();
41 ++iter) {
42 ceph_assert(bl2[iter3.get_pos()] == *iter3);
43 }
44
45 ceph_assert(bl2[0] == '\0');
46 ceph_assert(bl2[7] == '\0');
47
48 interval_set<uint64_t> to_clone;
49 to_clone.insert(5, 10);
50 d.clone_range(c, to_clone);
51 ceph_assert(d.size() == 15);
52
53 c.debug(std::cerr);
54 d.debug(std::cerr);
55
56 ObjectContents::Iterator iter2 = d.get_iterator();
57 iter2.seek_to(5);
58 for (uint64_t i = 5; i < 15; ++i, ++iter2) {
59 std::cerr << "i is " << i << std::endl;
60 ceph_assert(iter2.get_pos() == i);
61 ceph_assert(*iter2 == bl2[i]);
62 }
63 return true;
64}

Callers

nothing calls this directly

Calls 12

seek_toMethod · 0.80
existsMethod · 0.45
debugMethod · 0.45
writeMethod · 0.45
sizeMethod · 0.45
get_iteratorMethod · 0.45
validMethod · 0.45
appendMethod · 0.45
lengthMethod · 0.45
get_posMethod · 0.45
insertMethod · 0.45
clone_rangeMethod · 0.45

Tested by

no test coverage detected