]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
SelfManagedSnapTest: test more
authorColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Fri, 12 Aug 2011 00:30:52 +0000 (17:30 -0700)
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Fri, 12 Aug 2011 00:30:52 +0000 (17:30 -0700)
* test more snapshot functions in SelfManagedSnapTest

* rados_ioctx_selfmanaged_snap_set_write_ctx: fix name in C file to
conform to header file

Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
src/librados.cc
src/test/rados-api/snapshots.cc

index 08506dd8317f70d1b9f0ab65e81b95c6992cd69e..16304818fc22b82eebe613d35ea3fd0e54a7bc39 100644 (file)
@@ -3404,8 +3404,8 @@ extern "C" void rados_ioctx_snap_set_read(rados_ioctx_t io, rados_snap_t seq)
   ctx->set_snap_read((snapid_t)seq);
 }
 
-extern "C" int rados_ioctx_snap_set_write_context(rados_ioctx_t io, rados_snap_t seq,
-                                      rados_snap_t *snaps, int num_snaps)
+extern "C" int rados_ioctx_selfmanaged_snap_set_write_ctx(rados_ioctx_t io, 
+           rados_snap_t seq, rados_snap_t *snaps, int num_snaps)
 {
   librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io;
   vector<snapid_t> snv;
index 61718e1cd84a751cb5bd8d8fc7c6c810dc357869..d8a86a22bbd5fb39b6aefd8c5642a3c83ee2c23e 100644 (file)
@@ -92,26 +92,41 @@ TEST(LibRadosSnapshots, SnapGetName) {
 }
 
 TEST(LibRadosSnapshots, SelfManagedSnapTest) {
-  char buf[128];
+  std::vector<uint64_t> my_snaps;
   rados_t cluster;
   rados_ioctx_t ioctx;
   std::string pool_name = get_temp_pool_name();
   ASSERT_EQ("", create_one_pool(pool_name, &cluster));
-  rados_ioctx_create(cluster, pool_name.c_str(), &ioctx);
+  ASSERT_EQ(0, rados_ioctx_create(cluster, pool_name.c_str(), &ioctx));
+
+  my_snaps.push_back(-2);
+  ASSERT_EQ(0, rados_ioctx_selfmanaged_snap_create(ioctx, &my_snaps.back()));
+  ::std::reverse(my_snaps.begin(), my_snaps.end());
+  ASSERT_EQ(0, rados_ioctx_selfmanaged_snap_set_write_ctx(ioctx, my_snaps[0],
+                                       &my_snaps[0], my_snaps.size()));
+  ::std::reverse(my_snaps.begin(), my_snaps.end());
+  char buf[128];
   memset(buf, 0xcc, sizeof(buf));
   ASSERT_EQ((int)sizeof(buf), rados_write(ioctx, "foo", buf, sizeof(buf), 0));
-  uint64_t snapid;
-  ASSERT_EQ(0, rados_ioctx_selfmanaged_snap_create(ioctx, &snapid));
+
+  my_snaps.push_back(-2);
+  ASSERT_EQ(0, rados_ioctx_selfmanaged_snap_create(ioctx, &my_snaps.back()));
+  ::std::reverse(my_snaps.begin(), my_snaps.end());
+  ASSERT_EQ(0, rados_ioctx_selfmanaged_snap_set_write_ctx(ioctx, my_snaps[0],
+                                       &my_snaps[0], my_snaps.size()));
+  ::std::reverse(my_snaps.begin(), my_snaps.end());
   char buf2[sizeof(buf)];
   memset(buf2, 0xdd, sizeof(buf2));
-  ASSERT_EQ(0, rados_write_full(ioctx, "foo", buf2, sizeof(buf2), 0));
-  //rados_ioctx_snap_set_read(ioctx, snapid);
-  //ASSERT_EQ(0, rados_ioctx_selfmanaged_snap_rollback(ioctx, "foo", snapid));
-//  char buf3[sizeof(buf)];
-//  memset(buf3, 0, sizeof(buf3));
-//  ASSERT_EQ((int)sizeof(buf3), rados_read(ioctx, "foo", buf3, sizeof(buf3), 0));
-//  ASSERT_EQ(0, memcmp(buf, buf3, sizeof(buf3)));
-  ASSERT_EQ(0, rados_ioctx_selfmanaged_snap_remove(ioctx, snapid));
+  ASSERT_EQ((int)sizeof(buf2), rados_write(ioctx, "foo", buf2, sizeof(buf2), 0));
+  rados_ioctx_snap_set_read(ioctx, my_snaps[1]);
+  char buf3[sizeof(buf)];
+  ASSERT_EQ((int)sizeof(buf3), rados_read(ioctx, "foo", buf3, sizeof(buf3), 0));
+  ASSERT_EQ(0, memcmp(buf3, buf, sizeof(buf)));
+
+  ASSERT_EQ(0, rados_ioctx_selfmanaged_snap_remove(ioctx, my_snaps.back()));
+  my_snaps.pop_back();
+  ASSERT_EQ(0, rados_ioctx_selfmanaged_snap_remove(ioctx, my_snaps.back()));
+  my_snaps.pop_back();
   rados_ioctx_destroy(ioctx);
   ASSERT_EQ(0, destroy_one_pool(pool_name, &cluster));
 }