]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test/rados-api/snapshots: add SelfManagedSnapTest
authorColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Wed, 10 Aug 2011 22:55:27 +0000 (15:55 -0700)
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Wed, 10 Aug 2011 22:55:27 +0000 (15:55 -0700)
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
src/test/rados-api/snapshots.cc

index 2b68a0d2bd3c8f903546e8040b9332ffdb773110..8dc0ddd06e0c34a408f07931d75937d7cae1781b 100644 (file)
@@ -4,13 +4,6 @@
 #include <errno.h>
 #include "gtest/gtest.h"
 
-///* snapshots */
-//void rados_ioctx_snap_set_read(rados_ioctx_t io, rados_snap_t snap);
-//int rados_ioctx_selfmanaged_snap_create(rados_ioctx_t io, uint64_t *snapid);
-//int rados_ioctx_selfmanaged_snap_remove(rados_ioctx_t io, uint64_t snapid);
-//int rados_ioctx_selfmanaged_snap_rollback(rados_ioctx_t io, const char *oid, uint64_t snapid);
-//int rados_ioctx_selfmanaged_snap_set_write_ctx(rados_ioctx_t io, rados_snap_t seq, rados_snap_t *snaps, int num_snaps);
-
 TEST(LibRadosSnapshots, SnapList) {
   char buf[128];
   rados_t cluster;
@@ -82,7 +75,7 @@ TEST(LibRadosSnapshots, SnapGetName) {
   ASSERT_EQ(0, rados_ioctx_snap_create(ioctx, "snapfoo"));
   rados_snap_t rid;
   ASSERT_EQ(0, rados_ioctx_snap_lookup(ioctx, "snapfoo", &rid));
-  ASSERT_EQ(0, rados_ioctx_snap_lookup(ioctx, "snapfoo", &rid));
+  ASSERT_EQ(-ENOENT, rados_ioctx_snap_lookup(ioctx, "snapbar", &rid));
   char name[128];
   memset(name, 0, sizeof(name));
   ASSERT_EQ(0, rados_ioctx_snap_get_name(ioctx, rid, name, sizeof(name)));
@@ -93,4 +86,29 @@ TEST(LibRadosSnapshots, SnapGetName) {
   ASSERT_EQ(0, destroy_one_pool(pool_name, &cluster));
 }
 
+TEST(LibRadosSnapshots, SelfManagedSnapTest) {
+  char buf[128];
+  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);
+  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));
+  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));
+  rados_ioctx_destroy(ioctx);
+  ASSERT_EQ(0, destroy_one_pool(pool_name, &cluster));
+}
 
+// int rados_ioctx_selfmanaged_snap_set_write_ctx(rados_ioctx_t io, rados_snap_t seq, rados_snap_t *snaps, int num_snaps);