]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
ceph_test_objectstore: add a few checks to the rename test
authorSage Weil <sage@redhat.com>
Tue, 8 Mar 2016 17:47:53 +0000 (12:47 -0500)
committerSage Weil <sage@redhat.com>
Fri, 11 Mar 2016 15:41:38 +0000 (10:41 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/test/objectstore/store_test.cc

index 36cb2aeb808929ab94333c6b58def558b082d1f2..2d0d96360d0402110718b19eabef4c474171cfe7 100644 (file)
@@ -3075,13 +3075,14 @@ TEST_P(StoreTest, Rename) {
   coll_t cid(spg_t(pg_t(0, 2122),shard_id_t::NO_SHARD));
   ghobject_t srcoid(hobject_t("src_oid", "", CEPH_NOSNAP, 0, 0, ""));
   ghobject_t dstoid(hobject_t("dest_oid", "", CEPH_NOSNAP, 0, 0, ""));
-  bufferlist data;
-  data.append("foo");
+  bufferlist a, b;
+  a.append("foo");
+  b.append("bar");
   int r;
   {
     ObjectStore::Transaction t;
     t.create_collection(cid, 0);
-    t.write(cid, srcoid, 0, data.length(), data);
+    t.write(cid, srcoid, 0, a.length(), a);
     r = store->apply_transaction(&osr, std::move(t));
     ASSERT_EQ(r, 0);
   }
@@ -3089,13 +3090,35 @@ TEST_P(StoreTest, Rename) {
   {
     ObjectStore::Transaction t;
     t.collection_move_rename(cid, srcoid, cid, dstoid);
-    t.write(cid, srcoid, 0, data.length(), data);
-    t.setattr(cid, srcoid, "attr", data);
+    t.remove(cid, srcoid);
+    t.write(cid, srcoid, 0, b.length(), b);
+    t.setattr(cid, srcoid, "attr", b);
     r = store->apply_transaction(&osr, std::move(t));
     ASSERT_EQ(r, 0);
   }
   ASSERT_TRUE(store->exists(cid, srcoid));
   ASSERT_TRUE(store->exists(cid, dstoid));
+  {
+    bufferlist bl;
+    store->read(cid, srcoid, 0, 3, bl);
+    ASSERT_TRUE(bl.contents_equal(b));
+    store->read(cid, dstoid, 0, 3, bl);
+    ASSERT_TRUE(bl.contents_equal(a));
+  }
+  {
+    ObjectStore::Transaction t;
+    t.collection_move_rename(cid, srcoid, cid, dstoid);
+    t.remove(cid, srcoid);
+    t.setattr(cid, srcoid, "attr", a);
+    r = store->apply_transaction(&osr, std::move(t));
+    ASSERT_EQ(r, 0);
+  }
+  ASSERT_TRUE(store->exists(cid, dstoid));
+  {
+    bufferlist bl;
+    store->read(cid, dstoid, 0, 3, bl);
+    ASSERT_TRUE(bl.contents_equal(b));
+  }
   {
     ObjectStore::Transaction t;
     t.remove(cid, dstoid);