]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph_test_rados_api_*: do not clean up objects (usually)
authorSage Weil <sage@redhat.com>
Mon, 17 Apr 2017 19:48:23 +0000 (15:48 -0400)
committerSage Weil <sage@redhat.com>
Fri, 5 May 2017 17:39:13 +0000 (13:39 -0400)
First, this is pointless--each test runs in a namespace so they don't
step on each other.  Second, leaving objects in place is an opportunity
for scrub to notice any issues we created.  Third, the cleanup asserts
that delete succeeds but if clones exist pgls will show whiteouts and then
delete will return ENOENT.  We could disable the assert, but why bother
even attempting a sloppy cleanup?

We need to preserve cleanup behavior for a few tests (notably the object
listing ones).

Signed-off-by: Sage Weil <sage@redhat.com>
src/test/librados/TestCase.cc
src/test/librados/TestCase.h
src/test/librados/list.cc

index b9ae9b79e0e703770ef916cb16415868d2b91d6b..9df0cce9f5317dd0e16f49e11df714b6a18b7b93 100644 (file)
@@ -47,7 +47,8 @@ void RadosTestNS::SetUp()
 
 void RadosTestNS::TearDown()
 {
-  cleanup_all_objects(ioctx);
+  if (cleanup)
+    cleanup_all_objects(ioctx);
   rados_ioctx_destroy(ioctx);
 }
 
@@ -97,7 +98,8 @@ void RadosTestPPNS::SetUp()
 
 void RadosTestPPNS::TearDown()
 {
-  cleanup_all_objects(ioctx);
+  if (cleanup)
+    cleanup_all_objects(ioctx);
   ioctx.close();
 }
 
@@ -179,7 +181,8 @@ void RadosTestParamPPNS::SetUp()
 
 void RadosTestParamPPNS::TearDown()
 {
-  cleanup_all_objects(ioctx);
+  if (cleanup)
+    cleanup_all_objects(ioctx);
   ioctx.close();
 }
 
@@ -223,7 +226,8 @@ void RadosTestECNS::SetUp()
 
 void RadosTestECNS::TearDown()
 {
-  cleanup_all_objects(ioctx);
+  if (cleanup)
+    cleanup_all_objects(ioctx);
   rados_ioctx_destroy(ioctx);
 }
 
@@ -253,7 +257,8 @@ void RadosTestECPPNS::SetUp()
 
 void RadosTestECPPNS::TearDown()
 {
-  cleanup_all_objects(ioctx);
+  if (cleanup)
+    cleanup_all_objects(ioctx);
   ioctx.close();
 }
 
@@ -284,8 +289,10 @@ void RadosTest::SetUp()
 
 void RadosTest::TearDown()
 {
-  cleanup_default_namespace(ioctx);
-  cleanup_namespace(ioctx, nspace);
+  if (cleanup) {
+    cleanup_default_namespace(ioctx);
+    cleanup_namespace(ioctx, nspace);
+  }
   rados_ioctx_destroy(ioctx);
 }
 
@@ -343,8 +350,10 @@ void RadosTestPP::SetUp()
 
 void RadosTestPP::TearDown()
 {
-  cleanup_default_namespace(ioctx);
-  cleanup_namespace(ioctx, nspace);
+  if (cleanup) {
+    cleanup_default_namespace(ioctx);
+    cleanup_namespace(ioctx, nspace);
+  }
   ioctx.close();
 }
 
@@ -442,8 +451,10 @@ void RadosTestParamPP::SetUp()
 
 void RadosTestParamPP::TearDown()
 {
-  cleanup_default_namespace(ioctx);
-  cleanup_namespace(ioctx, nspace);
+  if (cleanup) {
+    cleanup_default_namespace(ioctx);
+    cleanup_namespace(ioctx, nspace);
+  }
   ioctx.close();
 }
 
@@ -494,8 +505,10 @@ void RadosTestEC::SetUp()
 
 void RadosTestEC::TearDown()
 {
-  cleanup_default_namespace(ioctx);
-  cleanup_namespace(ioctx, nspace);
+  if (cleanup) {
+    cleanup_default_namespace(ioctx);
+    cleanup_namespace(ioctx, nspace);
+  }
   rados_ioctx_destroy(ioctx);
 }
 
@@ -527,8 +540,10 @@ void RadosTestECPP::SetUp()
 
 void RadosTestECPP::TearDown()
 {
-  cleanup_default_namespace(ioctx);
-  cleanup_namespace(ioctx, nspace);
+  if (cleanup) {
+    cleanup_default_namespace(ioctx);
+    cleanup_namespace(ioctx, nspace);
+  }
   ioctx.close();
 }
 
index 2bb1f1f4aa90947b380bc28adeca1de74fb0966f..ac84bba0864fbd32c679845a2a74a825d329d711 100644 (file)
@@ -21,7 +21,7 @@
  */
 class RadosTestNS : public ::testing::Test {
 public:
-  RadosTestNS() {}
+  RadosTestNS(bool c=false) : cleanup(c) {}
   ~RadosTestNS() override {}
 protected:
   static void SetUpTestCase();
@@ -34,11 +34,16 @@ protected:
   void TearDown() override;
   rados_t cluster;
   rados_ioctx_t ioctx;
+  bool cleanup;
+};
+
+struct RadosTestNSCleanup : public RadosTestNS {
+  RadosTestNSCleanup() : RadosTestNS(true) {}
 };
 
 class RadosTestPPNS : public ::testing::Test {
 public:
-  RadosTestPPNS() : cluster(s_cluster) {}
+  RadosTestPPNS(bool c=false) : cluster(s_cluster), cleanup(c) {}
   ~RadosTestPPNS() override {}
 protected:
   static void SetUpTestCase();
@@ -51,11 +56,16 @@ protected:
   void TearDown() override;
   librados::Rados &cluster;
   librados::IoCtx ioctx;
+  bool cleanup;
+};
+
+struct RadosTestPPNSCleanup : public RadosTestPPNS {
+  RadosTestPPNSCleanup() : RadosTestPPNS(true) {}
 };
 
 class RadosTestParamPPNS : public ::testing::TestWithParam<const char*> {
 public:
-  RadosTestParamPPNS() : cluster(s_cluster) {}
+  RadosTestParamPPNS(bool c=false) : cluster(s_cluster), cleanup(c) {}
   ~RadosTestParamPPNS() override {}
   static void SetUpTestCase();
   static void TearDownTestCase();
@@ -69,11 +79,12 @@ protected:
   void TearDown() override;
   librados::Rados &cluster;
   librados::IoCtx ioctx;
+  bool cleanup;
 };
 
 class RadosTestECNS : public RadosTestNS {
 public:
-  RadosTestECNS() {}
+  RadosTestECNS(bool c=false) : cleanup(c) {}
   ~RadosTestECNS() override {}
 protected:
   static void SetUpTestCase();
@@ -86,11 +97,16 @@ protected:
   rados_t cluster;
   rados_ioctx_t ioctx;
   uint64_t alignment;
+  bool cleanup;
+};
+
+struct RadosTestECNSCleanup : public RadosTestECNS {
+  RadosTestECNSCleanup() : RadosTestECNS(true) {}
 };
 
 class RadosTestECPPNS : public RadosTestPPNS {
 public:
-  RadosTestECPPNS() : cluster(s_cluster) {}
+  RadosTestECPPNS(bool c=false) : cluster(s_cluster), cleanup(c) {}
   ~RadosTestECPPNS() override {}
 protected:
   static void SetUpTestCase();
@@ -103,6 +119,11 @@ protected:
   librados::Rados &cluster;
   librados::IoCtx ioctx;
   uint64_t alignment;
+  bool cleanup;
+};
+
+struct RadosTestECPPNSCleanup : public RadosTestECPPNS {
+  RadosTestECPPNSCleanup() : RadosTestECPPNS(true) {}
 };
 
 /**
@@ -115,7 +136,7 @@ protected:
  */
 class RadosTest : public ::testing::Test {
 public:
-  RadosTest() {}
+  RadosTest(bool c=false) : cleanup(c) {}
   ~RadosTest() override {}
 protected:
   static void SetUpTestCase();
@@ -130,11 +151,12 @@ protected:
   rados_t cluster;
   rados_ioctx_t ioctx;
   std::string nspace;
+  bool cleanup;
 };
 
 class RadosTestPP : public ::testing::Test {
 public:
-  RadosTestPP() : cluster(s_cluster) {}
+  RadosTestPP(bool c=false) : cluster(s_cluster), cleanup(c) {}
   ~RadosTestPP() override {}
 protected:
   static void SetUpTestCase();
@@ -148,12 +170,13 @@ protected:
   void TearDown() override;
   librados::Rados &cluster;
   librados::IoCtx ioctx;
+  bool cleanup;
   std::string nspace;
 };
 
 class RadosTestParamPP : public ::testing::TestWithParam<const char*> {
 public:
-  RadosTestParamPP() : cluster(s_cluster) {}
+  RadosTestParamPP(bool c=false) : cluster(s_cluster), cleanup(c) {}
   ~RadosTestParamPP() override {}
   static void SetUpTestCase();
   static void TearDownTestCase();
@@ -168,12 +191,13 @@ protected:
   void TearDown() override;
   librados::Rados &cluster;
   librados::IoCtx ioctx;
+  bool cleanup;
   std::string nspace;
 };
 
 class RadosTestEC : public RadosTest {
 public:
-  RadosTestEC() {}
+  RadosTestEC(bool c=false) : cleanup(c) {}
   ~RadosTestEC() override {}
 protected:
   static void SetUpTestCase();
@@ -185,13 +209,14 @@ protected:
   void TearDown() override;
   rados_t cluster;
   rados_ioctx_t ioctx;
+  bool cleanup;
   std::string nspace;
   uint64_t alignment;
 };
 
 class RadosTestECPP : public RadosTestPP {
 public:
-  RadosTestECPP() : cluster(s_cluster) {}
+  RadosTestECPP(bool c=false) : cluster(s_cluster), cleanup(c) {}
   ~RadosTestECPP() override {}
 protected:
   static void SetUpTestCase();
@@ -203,6 +228,7 @@ protected:
   void TearDown() override;
   librados::Rados &cluster;
   librados::IoCtx ioctx;
+  bool cleanup;
   std::string nspace;
   uint64_t alignment;
 };
index 77f5f54fed39e84ca75a95af510b6fd42ff876d8..948063b58eda39767f9c1388ad7db10cc75b6461 100644 (file)
 
 using namespace librados;
 
-typedef RadosTestNS LibRadosList;
-typedef RadosTestPPNS LibRadosListPP;
-typedef RadosTestECNS LibRadosListEC;
-typedef RadosTestECPPNS LibRadosListECPP;
+typedef RadosTestNSCleanup LibRadosList;
+typedef RadosTestPPNSCleanup LibRadosListPP;
+typedef RadosTestECNSCleanup LibRadosListEC;
+typedef RadosTestECPPNSCleanup LibRadosListECPP;
 typedef RadosTestNP LibRadosListNP;
 
 
@@ -144,6 +144,7 @@ static void check_list(
   std::string check_nspace)
 {
   const char *entry, *nspace;
+  cout << "myset " << myset << std::endl;
   // we should see every item exactly once.
   int ret;
   while ((ret = rados_nobjects_list_next(ctx, &entry, NULL, &nspace)) == 0) {
@@ -154,6 +155,7 @@ static void check_list(
       ASSERT_TRUE(std::string(nspace) == check_nspace);
       test_name = std::string(entry);
     }
+    cout << test_name << std::endl;
 
     ASSERT_TRUE(myset.end() != myset.find(test_name));
     myset.erase(test_name);