]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test/store_test.cc: Add test for setattr
authorAdam Kupczyk <akupczyk@ibm.com>
Tue, 10 Jun 2025 10:36:32 +0000 (10:36 +0000)
committerAlex Ainscow <aainscow@uk.ibm.com>
Wed, 2 Jul 2025 08:40:46 +0000 (09:40 +0100)
Added case for setting attr that has its buffelist full.

Signed-off-by: Adam Kupczyk <akupczyk@ibm.com>
(cherry picked from commit 87a73576a5125e46494aa2642d3c89eda3561f5b)

src/test/objectstore/store_test.cc

index 91296a3285fbb9773272958e9d6c73093980f7b1..db4b509b3e7e441896207120ae4cf50421b267f3 100644 (file)
@@ -3019,9 +3019,13 @@ TEST_P(StoreTest, SimpleAttrTest) {
   int r;
   coll_t cid;
   ghobject_t hoid(hobject_t(sobject_t("attr object 1", CEPH_NOSNAP)));
-  bufferlist val, val2;
+  bufferlist val, val2, val_exactly_10;
   val.append("value");
   val.append("value2");
+  bufferptr bp = bufferptr("0123456789abcdef", 0x10);
+  ASSERT_EQ(bp.length(), 0x10);
+  val_exactly_10.append(bp);
+  ASSERT_EQ(val_exactly_10.get_num_buffers(), 1);
   {
     auto ch = store->open_collection(cid);
     ASSERT_FALSE(ch);
@@ -3049,6 +3053,7 @@ TEST_P(StoreTest, SimpleAttrTest) {
     t.touch(cid, hoid);
     t.setattr(cid, hoid, "foo", val);
     t.setattr(cid, hoid, "bar", val2);
+    t.setattr(cid, hoid, "tiramisu", val_exactly_10);
     r = queue_transaction(store, ch, std::move(t));
     ASSERT_EQ(r, 0);
   }
@@ -3069,6 +3074,12 @@ TEST_P(StoreTest, SimpleAttrTest) {
     bl.append(bp);
     ASSERT_TRUE(bl_eq(val, bl));
 
+    r = store->getattr(ch, hoid, "tiramisu", bp);
+    ASSERT_EQ(0, r);
+    bufferlist bl1;
+    bl1.append(bp);
+    ASSERT_TRUE(bl_eq(val_exactly_10, bl1));
+
     map<string,bufferptr,less<>> bm;
     r = store->getattrs(ch, hoid, bm);
     ASSERT_EQ(0, r);