]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
systest: move pool deletion into its own file
authorJosh Durgin <josh.durgin@dreamhost.com>
Wed, 20 Jul 2011 22:43:31 +0000 (15:43 -0700)
committerJosh Durgin <josh.durgin@dreamhost.com>
Tue, 2 Aug 2011 21:17:15 +0000 (14:17 -0700)
Signed-off-by: Josh Durgin <josh.durgin@dreamhost.com>
src/Makefile.am
src/test/system/rados_delete_pools_parallel.cc
src/test/system/st_rados_delete_pool.cc [new file with mode: 0644]
src/test/system/st_rados_delete_pool.h [new file with mode: 0644]

index e6ee312ba31951f4f4f907b4782459294091b1e7..c08744067dc4da1badc9369b15295ab4c98ac7f8 100644 (file)
@@ -399,6 +399,7 @@ bin_DEBUGPROGRAMS += testrados_open_pools_parallel
 testrados_delete_pools_parallel_SOURCES = \
        test/system/rados_delete_pools_parallel.cc \
        test/system/st_rados_create_pool.cc \
+       test/system/st_rados_delete_pool.cc \
        test/system/st_rados_list_objects.cc
 testrados_delete_pools_parallel_LDADD = libsystest.la librados.la
 bin_DEBUGPROGRAMS += testrados_delete_pools_parallel
index 3f55f1bcdc4884e87ec62f47ae74214b3dc843b5..bfdd7fd2fd24eea3d95db1fa29f5665b4f288fc2 100644 (file)
@@ -15,6 +15,7 @@
 #include "cross_process_sem.h"
 #include "include/rados/librados.h"
 #include "st_rados_create_pool.h"
+#include "st_rados_delete_pool.h"
 #include "st_rados_list_objects.h"
 #include "systest_runnable.h"
 #include "systest_settings.h"
@@ -47,48 +48,6 @@ static int g_num_objects = 50;
  *
  * DO NOT EXPECT      * hangs, crashes
  */
-class StRadosDeletePool : public SysTestRunnable
-{
-public:
-  StRadosDeletePool(int argc, const char **argv,
-                 CrossProcessSem *pool_setup_sem, CrossProcessSem *delete_pool_sem,
-                 const std::string &pool_name)
-    : SysTestRunnable(argc, argv),
-      m_pool_setup_sem(pool_setup_sem), m_delete_pool_sem(delete_pool_sem),
-      m_pool_name(pool_name)
-  {
-  }
-
-  ~StRadosDeletePool()
-  {
-  }
-
-  int run()
-  {
-    rados_t cl;
-    RETURN1_IF_NONZERO(rados_create(&cl, NULL));
-    rados_conf_parse_argv(cl, m_argc, m_argv);
-    RETURN1_IF_NONZERO(rados_conf_read_file(cl, NULL));
-    RETURN1_IF_NONZERO(rados_connect(cl));
-    m_pool_setup_sem->wait();
-    m_pool_setup_sem->post();
-
-    rados_ioctx_t io_ctx;
-    RETURN1_IF_NOT_VAL(-EEXIST, rados_pool_create(cl, m_pool_name.c_str()));
-    RETURN1_IF_NONZERO(rados_ioctx_create(cl, m_pool_name.c_str(), &io_ctx));
-    rados_ioctx_destroy(io_ctx);
-    rados_pool_delete(cl, m_pool_name.c_str());
-    if (m_delete_pool_sem)
-      m_delete_pool_sem->post();
-    rados_shutdown(cl);
-    return 0;
-  }
-
-private:
-  CrossProcessSem *m_pool_setup_sem;
-  CrossProcessSem *m_delete_pool_sem;
-  std::string m_pool_name;
-};
 
 const char *get_id_str()
 {
diff --git a/src/test/system/st_rados_delete_pool.cc b/src/test/system/st_rados_delete_pool.cc
new file mode 100644 (file)
index 0000000..e06bf5a
--- /dev/null
@@ -0,0 +1,59 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
+/*
+* Ceph - scalable distributed file system
+*
+* Copyright (C) 2011 New Dream Network
+*
+* This is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License version 2.1, as published by the Free Software
+* Foundation.  See file COPYING.
+*
+*/
+
+#include "cross_process_sem.h"
+#include "include/rados/librados.h"
+#include "st_rados_delete_pool.h"
+#include "systest_runnable.h"
+#include "systest_settings.h"
+
+#include <errno.h>
+
+StRadosDeletePool::
+StRadosDeletePool(int argc, const char **argv,
+                 CrossProcessSem *pool_setup_sem, CrossProcessSem *delete_pool_sem,
+                 const std::string &pool_name)
+    : SysTestRunnable(argc, argv),
+      m_pool_setup_sem(pool_setup_sem), m_delete_pool_sem(delete_pool_sem),
+      m_pool_name(pool_name)
+{
+}
+
+StRadosDeletePool::
+~StRadosDeletePool()
+{
+}
+
+int StRadosDeletePool::
+run()
+{
+  rados_t cl;
+  RETURN1_IF_NONZERO(rados_create(&cl, NULL));
+  rados_conf_parse_argv(cl, m_argc, m_argv);
+  RETURN1_IF_NONZERO(rados_conf_read_file(cl, NULL));
+  RETURN1_IF_NONZERO(rados_connect(cl));
+  m_pool_setup_sem->wait();
+  m_pool_setup_sem->post();
+
+  rados_ioctx_t io_ctx;
+  RETURN1_IF_NOT_VAL(-EEXIST, rados_pool_create(cl, m_pool_name.c_str()));
+  RETURN1_IF_NONZERO(rados_ioctx_create(cl, m_pool_name.c_str(), &io_ctx));
+  rados_ioctx_destroy(io_ctx);
+  printf("%s: deleting pool %s\n", get_id_str(), m_pool_name.c_str());
+  RETURN1_IF_NONZERO(rados_pool_delete(cl, m_pool_name.c_str()));
+  if (m_delete_pool_sem)
+    m_delete_pool_sem->post();
+  rados_shutdown(cl);
+  return 0;
+}
diff --git a/src/test/system/st_rados_delete_pool.h b/src/test/system/st_rados_delete_pool.h
new file mode 100644 (file)
index 0000000..6380091
--- /dev/null
@@ -0,0 +1,42 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
+/*
+* Ceph - scalable distributed file system
+*
+* Copyright (C) 2011 New Dream Network
+*
+* This is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License version 2.1, as published by the Free Software
+* Foundation.  See file COPYING.
+*
+*/
+
+#ifndef TEST_SYSTEM_ST_RADOS_DELETE_POOL_H
+#define TEST_SYSTEM_ST_RADOS_DELETE_POOL_H
+
+#include "systest_runnable.h"
+
+class CrossProcessSem;
+
+/*
+ * st_rados_delete_pool
+ *
+ * Waits on pool_setup_sem, posts to it,
+ * deletes a pool, and posts to delete_pool_sem.
+ */
+class StRadosDeletePool : public SysTestRunnable
+{
+public:
+  StRadosDeletePool(int argc, const char **argv,
+       CrossProcessSem *pool_setup_sem, CrossProcessSem *delete_pool_sem,
+       const std::string &pool_name);
+  ~StRadosDeletePool();
+  virtual int run();
+private:
+  CrossProcessSem *m_pool_setup_sem;
+  CrossProcessSem *m_delete_pool_sem;
+  std::string m_pool_name;
+};
+
+#endif