int main(int argc, const char **argv)
{
const char *num_objects = getenv("NUM_OBJECTS");
+ std::string pool = "foo";
if (num_objects) {
g_num_objects = atoi(num_objects);
if (g_num_objects == 0)
// first test: create a pool, then delete that pool
{
- StRadosCreatePool r1(argc, argv, pool_setup_sem, NULL, 50, ".obj");
- StRadosDeletePool r2(argc, argv, pool_setup_sem, NULL, "foo");
+ StRadosCreatePool r1(argc, argv, pool_setup_sem, NULL,
+ pool, 50, ".obj");
+ StRadosDeletePool r2(argc, argv, pool_setup_sem, NULL, pool);
vector < SysTestRunnable* > vec;
vec.push_back(&r1);
vec.push_back(&r2);
RETURN1_IF_NONZERO(pool_setup_sem->reinit(0));
RETURN1_IF_NONZERO(delete_pool_sem->reinit(0));
{
- StRadosCreatePool r1(argc, argv, pool_setup_sem, NULL, g_num_objects, ".obj");
- StRadosDeletePool r2(argc, argv,
- pool_setup_sem, delete_pool_sem, "foo");
- StRadosListObjects r3(argc, argv, true, g_num_objects / 2,
+ StRadosCreatePool r1(argc, argv, pool_setup_sem, NULL,
+ pool, g_num_objects, ".obj");
+ StRadosDeletePool r2(argc, argv, pool_setup_sem, delete_pool_sem, pool);
+ StRadosListObjects r3(argc, argv, pool, true, g_num_objects / 2,
pool_setup_sem, delete_pool_sem);
vector < SysTestRunnable* > vec;
vec.push_back(&r1);
class RadosDeleteObjectsR : public SysTestRunnable
{
public:
- RadosDeleteObjectsR(int argc, const char **argv)
- : SysTestRunnable(argc, argv)
+ RadosDeleteObjectsR(int argc, const char **argv,
+ const std::string &pool_name)
+ : SysTestRunnable(argc, argv), m_pool_name(pool_name)
{
}
pool_setup_sem->post();
rados_ioctx_t io_ctx;
- RETURN1_IF_NOT_VAL(-EEXIST, rados_pool_create(cl, "foo"));
- RETURN1_IF_NONZERO(rados_ioctx_create(cl, "foo", &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));
std::map <int, std::string> to_delete;
for (int i = 0; i < g_num_objects; ++i) {
return 0;
}
+private:
+ std::string m_pool_name;
};
class RadosAddObjectsR : public SysTestRunnable
{
public:
- RadosAddObjectsR(int argc, const char **argv, const std::string &suffix)
+ RadosAddObjectsR(int argc, const char **argv,
+ const std::string &pool_name,
+ const std::string &suffix)
: SysTestRunnable(argc, argv),
+ m_pool_name(pool_name),
m_suffix(suffix)
{
}
pool_setup_sem->post();
rados_ioctx_t io_ctx;
- RETURN1_IF_NOT_VAL(-EEXIST, rados_pool_create(cl, "foo"));
- RETURN1_IF_NONZERO(rados_ioctx_create(cl, "foo", &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));
std::map <int, std::string> to_add;
for (int i = 0; i < g_num_objects; ++i) {
return 0;
}
private:
+ std::string m_pool_name;
std::string m_suffix;
};
int main(int argc, const char **argv)
{
const char *num_objects = getenv("NUM_OBJECTS");
+ std::string pool = "foo";
if (num_objects) {
g_num_objects = atoi(num_objects);
if (g_num_objects == 0)
// Test 1... list objects
{
- StRadosCreatePool r1(argc, argv, pool_setup_sem, NULL, g_num_objects, ".obj");
- StRadosListObjects r2(argc, argv, false, g_num_objects,
+ StRadosCreatePool r1(argc, argv, pool_setup_sem, NULL,
+ pool, g_num_objects, ".obj");
+ StRadosListObjects r2(argc, argv, pool, false, g_num_objects,
pool_setup_sem, modify_sem);
vector < SysTestRunnable* > vec;
vec.push_back(&r1);
RETURN1_IF_NONZERO(pool_setup_sem->reinit(0));
RETURN1_IF_NONZERO(modify_sem->reinit(0));
{
- StRadosCreatePool r1(argc, argv, pool_setup_sem, NULL, g_num_objects, ".obj");
- StRadosListObjects r2(argc, argv, false, g_num_objects / 2,
+ StRadosCreatePool r1(argc, argv, pool_setup_sem, NULL,
+ pool, g_num_objects, ".obj");
+ StRadosListObjects r2(argc, argv, pool, false, g_num_objects / 2,
pool_setup_sem, modify_sem);
- RadosDeleteObjectsR r3(argc, argv);
+ RadosDeleteObjectsR r3(argc, argv, pool);
vector < SysTestRunnable* > vec;
vec.push_back(&r1);
vec.push_back(&r2);
RETURN1_IF_NONZERO(pool_setup_sem->reinit(0));
RETURN1_IF_NONZERO(modify_sem->reinit(0));
{
- StRadosCreatePool r1(argc, argv, pool_setup_sem, NULL, g_num_objects, ".obj");
- StRadosListObjects r2(argc, argv, false, g_num_objects / 2,
+ StRadosCreatePool r1(argc, argv, pool_setup_sem, NULL,
+ pool, g_num_objects, ".obj");
+ StRadosListObjects r2(argc, argv, pool, false, g_num_objects / 2,
pool_setup_sem, modify_sem);
- RadosAddObjectsR r3(argc, argv, ".obj2");
+ RadosAddObjectsR r3(argc, argv, pool, ".obj2");
vector < SysTestRunnable* > vec;
vec.push_back(&r1);
vec.push_back(&r2);
RETURN1_IF_NONZERO(pool_setup_sem->reinit(0));
RETURN1_IF_NONZERO(modify_sem->reinit(0));
{
- StRadosCreatePool r1(argc, argv, pool_setup_sem, NULL, g_num_objects, ".obj");
- StRadosListObjects r2(argc, argv, false, g_num_objects / 2,
+ StRadosCreatePool r1(argc, argv, pool_setup_sem, NULL,
+ pool, g_num_objects, ".obj");
+ StRadosListObjects r2(argc, argv, pool, false, g_num_objects / 2,
pool_setup_sem, modify_sem);
- RadosAddObjectsR r3(argc, argv, ".obj2");
- RadosAddObjectsR r4(argc, argv, ".obj3");
- RadosDeleteObjectsR r5(argc, argv);
+ RadosAddObjectsR r3(argc, argv, pool, ".obj2");
+ RadosAddObjectsR r4(argc, argv, pool, ".obj3");
+ RadosDeleteObjectsR r5(argc, argv, pool);
vector < SysTestRunnable* > vec;
vec.push_back(&r1);
vec.push_back(&r2);
RETURN1_IF_NONZERO(pool_setup_sem->reinit(0));
RETURN1_IF_NONZERO(modify_sem->reinit(0));
{
- StRadosCreatePool r1(argc, argv, pool_setup_sem, NULL, g_num_objects, ".obj");
- StRadosListObjects r2(argc, argv, false, g_num_objects / 2,
+ StRadosCreatePool r1(argc, argv, pool_setup_sem, NULL,
+ pool, g_num_objects, ".obj");
+ StRadosListObjects r2(argc, argv, pool, false, g_num_objects / 2,
pool_setup_sem, modify_sem);
// AddObjects with the same 'suffix' as used in StRadosCreatePool
- RadosAddObjectsR r3(argc, argv, ".obj");
+ RadosAddObjectsR r3(argc, argv, pool, ".obj");
vector < SysTestRunnable* > vec;
vec.push_back(&r1);
vec.push_back(&r2);
// pool in a different process.
CrossProcessSem *pool_setup_sem = NULL;
RETURN1_IF_NONZERO(CrossProcessSem::create(0, &pool_setup_sem));
- StRadosCreatePool r1(argc, argv, pool_setup_sem, NULL, 50, ".obj");
+ StRadosCreatePool r1(argc, argv, pool_setup_sem, NULL, "foo", 50, ".obj");
StRadosOpenPool r2(argc, argv, pool_setup_sem, NULL);
vector < SysTestRunnable* > vec;
vec.push_back(&r1);
RETURN1_IF_NONZERO(CrossProcessSem::create(0, &pool_setup_sem2));
CrossProcessSem *open_pool_sem2 = NULL;
RETURN1_IF_NONZERO(CrossProcessSem::create(0, &open_pool_sem2));
- StRadosCreatePool r3(argc, argv, pool_setup_sem2, open_pool_sem2, 50, ".obj");
+ StRadosCreatePool r3(argc, argv, pool_setup_sem2, open_pool_sem2,
+ "foo", 50, ".obj");
StRadosOpenPool r4(argc, argv, pool_setup_sem2, open_pool_sem2);
vector < SysTestRunnable* > vec2;
vec2.push_back(&r3);
StRadosCreatePool::
StRadosCreatePool(int argc, const char **argv,
- CrossProcessSem *pool_setup_sem, CrossProcessSem *close_create_pool,
- int num_objects, const std::string &suffix)
+ CrossProcessSem *pool_setup_sem,
+ CrossProcessSem *close_create_pool,
+ const std::string &pool_name,
+ int num_objects,
+ const std::string &suffix)
: SysTestRunnable(argc, argv),
- m_pool_setup_sem(pool_setup_sem), m_close_create_pool(close_create_pool),
+ m_pool_setup_sem(pool_setup_sem),
+ m_close_create_pool(close_create_pool),
+ m_pool_name(pool_name),
m_num_objects(num_objects),
m_suffix(suffix)
{
if (!log_name.empty())
rados_conf_set(cl, "log_file", log_name.c_str());
RETURN1_IF_NONZERO(rados_connect(cl));
- int ret = rados_pool_delete(cl, "foo");
+ int ret = rados_pool_delete(cl, m_pool_name.c_str());
if (!((ret == 0) || (ret == -ENOENT))) {
printf("%s: rados_pool_delete error %d\n", get_id_str(), ret);
return ret;
}
- RETURN1_IF_NONZERO(rados_pool_create(cl, "foo"));
+ RETURN1_IF_NONZERO(rados_pool_create(cl, m_pool_name.c_str()));
rados_ioctx_t io_ctx;
- RETURN1_IF_NONZERO(rados_ioctx_create(cl, "foo", &io_ctx));
+ RETURN1_IF_NONZERO(rados_ioctx_create(cl, m_pool_name.c_str(), &io_ctx));
for (int i = 0; i < m_num_objects; ++i) {
char oid[128];
public:
static std::string get_random_buf(int sz);
StRadosCreatePool(int argc, const char **argv,
- CrossProcessSem *pool_setup_sem, CrossProcessSem *close_create_pool_sem,
- int num_objects, const std::string &suffix);
+ CrossProcessSem *pool_setup_sem,
+ CrossProcessSem *close_create_pool_sem,
+ const std::string &pool_name,
+ int num_objects,
+ const std::string &suffix);
~StRadosCreatePool();
virtual int run();
private:
CrossProcessSem *m_pool_setup_sem;
CrossProcessSem *m_close_create_pool;
+ std::string m_pool_name;
int m_num_objects;
std::string m_suffix;
};
#include <errno.h>
-StRadosDeletePool::
-StRadosDeletePool(int argc, const char **argv,
- CrossProcessSem *pool_setup_sem, CrossProcessSem *delete_pool_sem,
- const std::string &pool_name)
+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_setup_sem(pool_setup_sem),
+ m_delete_pool_sem(delete_pool_sem),
m_pool_name(pool_name)
{
}
-StRadosDeletePool::
-~StRadosDeletePool()
+StRadosDeletePool::~StRadosDeletePool()
{
}
-int StRadosDeletePool::
-run()
+int StRadosDeletePool::run()
{
rados_t cl;
RETURN1_IF_NONZERO(rados_create(&cl, NULL));
{
public:
StRadosDeletePool(int argc, const char **argv,
- CrossProcessSem *pool_setup_sem, CrossProcessSem *delete_pool_sem,
- const std::string &pool_name);
+ CrossProcessSem *pool_setup_sem,
+ CrossProcessSem *delete_pool_sem,
+ const std::string &pool_name);
~StRadosDeletePool();
virtual int run();
private:
StRadosListObjects::
StRadosListObjects(int argc, const char **argv,
- bool accept_list_errors, int midway_cnt,
- CrossProcessSem *pool_setup_sem, CrossProcessSem *midway_sem)
+ const std::string &pool_name,
+ bool accept_list_errors,
+ int midway_cnt,
+ CrossProcessSem *pool_setup_sem,
+ CrossProcessSem *midway_sem)
: SysTestRunnable(argc, argv),
m_accept_list_errors(accept_list_errors),
m_midway_cnt(midway_cnt),
{
public:
static std::string get_random_buf(int sz);
- StRadosListObjects(int argc, const char **argv, bool accept_list_errors,
- int midway_cnt,
- CrossProcessSem *pool_setup_sem, CrossProcessSem *midway_sem);
+ StRadosListObjects(int argc, const char **argv,
+ const std::string &pool_name,
+ bool accept_list_errors,
+ int midway_cnt,
+ CrossProcessSem *pool_setup_sem,
+ CrossProcessSem *midway_sem);
~StRadosListObjects();
virtual int run();
private:
+ std::string m_pool_name;
bool m_accept_list_errors;
int m_midway_cnt;
CrossProcessSem *m_pool_setup_sem;