From: Sage Weil Date: Wed, 11 Sep 2013 17:27:49 +0000 (-0700) Subject: librados: test copy_from without src_version specified X-Git-Tag: v0.71~119^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3a0018786033aea5fb312a6126d70134bca3e724;p=ceph.git librados: test copy_from without src_version specified Signed-off-by: Sage Weil --- diff --git a/src/test/librados/misc.cc b/src/test/librados/misc.cc index 24cb431261a5..803c8b1cc777 100644 --- a/src/test/librados/misc.cc +++ b/src/test/librados/misc.cc @@ -581,15 +581,30 @@ TEST(LibRadosMisc, CopyPP) { ASSERT_EQ(0, ioctx.write_full("foo", blc)); ASSERT_EQ(0, ioctx.setxattr("foo", "myattr", xc)); - ObjectWriteOperation op; - op.copy_from("foo", ioctx, ioctx.get_last_version()); - ASSERT_EQ(0, ioctx.operate("foo.copy", &op)); + { + ObjectWriteOperation op; + op.copy_from("foo", ioctx, ioctx.get_last_version()); + ASSERT_EQ(0, ioctx.operate("foo.copy", &op)); + + bufferlist bl2, x2; + ASSERT_EQ((int)bl.length(), ioctx.read("foo.copy", bl2, 10000, 0)); + ASSERT_TRUE(bl.contents_equal(bl2)); + ASSERT_EQ((int)x.length(), ioctx.getxattr("foo.copy", "myattr", x2)); + ASSERT_TRUE(x.contents_equal(x2)); + } - bufferlist bl2, x2; - ASSERT_EQ((int)bl.length(), ioctx.read("foo.copy", bl2, 10000, 0)); - ASSERT_TRUE(bl.contents_equal(bl2)); - ASSERT_EQ((int)x.length(), ioctx.getxattr("foo.copy", "myattr", x2)); - ASSERT_TRUE(x.contents_equal(x2)); + // small object without a version + { + ObjectWriteOperation op; + op.copy_from("foo", ioctx, 0); + ASSERT_EQ(0, ioctx.operate("foo.copy2", &op)); + + bufferlist bl2, x2; + ASSERT_EQ((int)bl.length(), ioctx.read("foo.copy2", bl2, 10000, 0)); + ASSERT_TRUE(bl.contents_equal(bl2)); + ASSERT_EQ((int)x.length(), ioctx.getxattr("foo.copy2", "myattr", x2)); + ASSERT_TRUE(x.contents_equal(x2)); + } // do a big object bl.append(buffer::create(g_conf->osd_copyfrom_max_chunk * 3)); @@ -600,15 +615,29 @@ TEST(LibRadosMisc, CopyPP) { ASSERT_EQ(0, ioctx.write_full("big", blc)); ASSERT_EQ(0, ioctx.setxattr("big", "myattr", xc)); - ObjectWriteOperation op2; - op.copy_from("big", ioctx, ioctx.get_last_version()); - ASSERT_EQ(0, ioctx.operate("big.copy", &op)); + { + ObjectWriteOperation op; + op.copy_from("big", ioctx, ioctx.get_last_version()); + ASSERT_EQ(0, ioctx.operate("big.copy", &op)); + + bufferlist bl2, x2; + ASSERT_EQ((int)bl.length(), ioctx.read("big.copy", bl2, bl.length(), 0)); + ASSERT_TRUE(bl.contents_equal(bl2)); + ASSERT_EQ((int)x.length(), ioctx.getxattr("foo.copy", "myattr", x2)); + ASSERT_TRUE(x.contents_equal(x2)); + } - bl2.clear(); - ASSERT_EQ((int)bl.length(), ioctx.read("big.copy", bl2, bl.length(), 0)); - ASSERT_TRUE(bl.contents_equal(bl2)); - ASSERT_EQ((int)x.length(), ioctx.getxattr("foo.copy", "myattr", x2)); - ASSERT_TRUE(x.contents_equal(x2)); + { + ObjectWriteOperation op; + op.copy_from("big", ioctx, 0); + ASSERT_EQ(0, ioctx.operate("big.copy2", &op)); + + bufferlist bl2, x2; + ASSERT_EQ((int)bl.length(), ioctx.read("big.copy2", bl2, bl.length(), 0)); + ASSERT_TRUE(bl.contents_equal(bl2)); + ASSERT_EQ((int)x.length(), ioctx.getxattr("foo.copy2", "myattr", x2)); + ASSERT_TRUE(x.contents_equal(x2)); + } ioctx.close(); ASSERT_EQ(0, destroy_one_pool_pp(pool_name, cluster));