Skip to content

Commit 04ad137

Browse files
committed
test/store_test.cc: Expanded test for setattr
Added case for setting attr that has buffelist empty (size 0). Signed-off-by: Adam Kupczyk <[email protected]>
1 parent d4e2d49 commit 04ad137

File tree

1 file changed

+34
-1
lines changed

1 file changed

+34
-1
lines changed

src/test/objectstore/store_test.cc

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3019,7 +3019,7 @@ TEST_P(StoreTest, SimpleAttrTest) {
30193019
int r;
30203020
coll_t cid;
30213021
ghobject_t hoid(hobject_t(sobject_t("attr object 1", CEPH_NOSNAP)));
3022-
bufferlist val, val2, val_exactly_10;
3022+
bufferlist val, val2, val_exactly_10, empty_bl;
30233023
val.append("value");
30243024
val.append("value2");
30253025
bufferptr bp = bufferptr("0123456789abcdef", 0x10);
@@ -3054,6 +3054,7 @@ TEST_P(StoreTest, SimpleAttrTest) {
30543054
t.setattr(cid, hoid, "foo", val);
30553055
t.setattr(cid, hoid, "bar", val2);
30563056
t.setattr(cid, hoid, "tiramisu", val_exactly_10);
3057+
t.setattr(cid, hoid, "empty", empty_bl);
30573058
r = queue_transaction(store, ch, std::move(t));
30583059
ASSERT_EQ(r, 0);
30593060
}
@@ -3080,10 +3081,42 @@ TEST_P(StoreTest, SimpleAttrTest) {
30803081
bl1.append(bp);
30813082
ASSERT_TRUE(bl_eq(val_exactly_10, bl1));
30823083

3084+
r = store->getattr(ch, hoid, "empty", bp);
3085+
ASSERT_EQ(0, r);
3086+
EXPECT_EQ(bp.length(), 0);
3087+
30833088
map<string,bufferptr,less<>> bm;
30843089
r = store->getattrs(ch, hoid, bm);
30853090
ASSERT_EQ(0, r);
3091+
}
3092+
ch.reset();
3093+
EXPECT_EQ(store->umount(), 0);
3094+
EXPECT_EQ(store->mount(), 0);
3095+
ch = store->open_collection(cid);
3096+
{
3097+
bufferptr bp;
3098+
r = store->getattr(ch, hoid, "nofoo", bp);
3099+
ASSERT_EQ(-ENODATA, r);
3100+
3101+
r = store->getattr(ch, hoid, "foo", bp);
3102+
ASSERT_EQ(0, r);
3103+
bufferlist bl;
3104+
bl.append(bp);
3105+
ASSERT_TRUE(bl_eq(val, bl));
3106+
3107+
r = store->getattr(ch, hoid, "tiramisu", bp);
3108+
ASSERT_EQ(0, r);
3109+
bufferlist bl1;
3110+
bl1.append(bp);
3111+
ASSERT_TRUE(bl_eq(val_exactly_10, bl1));
3112+
3113+
r = store->getattr(ch, hoid, "empty", bp);
3114+
ASSERT_EQ(0, r);
3115+
EXPECT_EQ(bp.length(), 0);
30863116

3117+
map<string,bufferptr,less<>> bm;
3118+
r = store->getattrs(ch, hoid, bm);
3119+
ASSERT_EQ(0, r);
30873120
}
30883121
{
30893122
ObjectStore::Transaction t;

0 commit comments

Comments
 (0)