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

Function TEST_F

src/test/librbd/test_ObjectMap.cc:41–67  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39};
40
41TEST_F(TestObjectMap, RefreshInvalidatesWhenCorrupt) {
42 REQUIRE_FEATURE(RBD_FEATURE_OBJECT_MAP);
43
44 librbd::ImageCtx *ictx;
45 ASSERT_EQ(0, open_image(m_image_name, &ictx));
46 bool flags_set;
47 ASSERT_EQ(0, ictx->test_flags(CEPH_NOSNAP, RBD_FLAG_OBJECT_MAP_INVALID,
48 &flags_set));
49 ASSERT_FALSE(flags_set);
50
51 C_SaferCond lock_ctx;
52 {
53 std::unique_lock owner_locker{ictx->owner_lock};
54 ictx->exclusive_lock->try_acquire_lock(&lock_ctx);
55 }
56 ASSERT_EQ(0, lock_ctx.wait());
57
58 std::string oid = librbd::ObjectMap<>::object_map_name(ictx->id, CEPH_NOSNAP);
59 bufferlist bl;
60 bl.append("corrupt");
61 ASSERT_EQ(0, ictx->md_ctx.write_full(oid, bl));
62
63 ASSERT_EQ(0, when_open_object_map(ictx));
64 ASSERT_EQ(0, ictx->test_flags(CEPH_NOSNAP, RBD_FLAG_OBJECT_MAP_INVALID,
65 &flags_set));
66 ASSERT_TRUE(flags_set);
67}
68
69TEST_F(TestObjectMap, RefreshInvalidatesWhenTooSmall) {
70 REQUIRE_FEATURE(RBD_FEATURE_OBJECT_MAP);

Callers

nothing calls this directly

Calls 15

open_imageFunction · 0.85
resizeClass · 0.85
pending_errorMethod · 0.80
end_opMethod · 0.80
wait_for_retMethod · 0.80
object_map_resizeFunction · 0.50
nowFunction · 0.50
test_flagsMethod · 0.45
try_acquire_lockMethod · 0.45
waitMethod · 0.45
appendMethod · 0.45
write_fullMethod · 0.45

Tested by

no test coverage detected