diff options
author | Sage Weil <sage@inktank.com> | 2013-02-25 16:49:37 -0800 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-02-25 16:49:37 -0800 |
commit | 29642d33c3595c3d6db9c4c364b9ee69663cfc3d (patch) | |
tree | 827221389c53d080f0a2506942074652921ad12a | |
parent | 9e6025b697ebf23f6c4bce5a268eb467cd72518c (diff) | |
parent | 5b24a68b6e7d57bac688021b822fb2f73494c3e9 (diff) | |
download | ceph-29642d33c3595c3d6db9c4c364b9ee69663cfc3d.tar.gz |
Merge remote-tracking branch 'gh/wip-4147'
-rw-r--r-- | src/test/system/rados_delete_pools_parallel.cc | 4 | ||||
-rw-r--r-- | src/test/system/rados_list_parallel.cc | 10 | ||||
-rw-r--r-- | src/test/system/st_rados_list_objects.cc | 14 | ||||
-rw-r--r-- | src/test/system/st_rados_list_objects.h | 6 |
4 files changed, 20 insertions, 14 deletions
diff --git a/src/test/system/rados_delete_pools_parallel.cc b/src/test/system/rados_delete_pools_parallel.cc index 4bcf2124418..5347c53c296 100644 --- a/src/test/system/rados_delete_pools_parallel.cc +++ b/src/test/system/rados_delete_pools_parallel.cc @@ -91,9 +91,9 @@ int main(int argc, const char **argv) { StRadosCreatePool r1(argc, argv, NULL, pool_setup_sem, NULL, pool, g_num_objects, ".obj"); - StRadosDeletePool r2(argc, argv, pool_setup_sem, delete_pool_sem, pool); + StRadosDeletePool r2(argc, argv, delete_pool_sem, NULL, pool); StRadosListObjects r3(argc, argv, pool, true, g_num_objects / 2, - pool_setup_sem, delete_pool_sem); + pool_setup_sem, NULL, delete_pool_sem); vector < SysTestRunnable* > vec; vec.push_back(&r1); vec.push_back(&r2); diff --git a/src/test/system/rados_list_parallel.cc b/src/test/system/rados_list_parallel.cc index 3a68b943627..77df29e0e79 100644 --- a/src/test/system/rados_list_parallel.cc +++ b/src/test/system/rados_list_parallel.cc @@ -230,7 +230,7 @@ int main(int argc, const char **argv) StRadosCreatePool r1(argc, argv, NULL, pool_setup_sem, NULL, pool, g_num_objects, ".obj"); StRadosListObjects r2(argc, argv, pool, false, g_num_objects, - pool_setup_sem, modify_sem); + pool_setup_sem, modify_sem, NULL); vector < SysTestRunnable* > vec; vec.push_back(&r1); vec.push_back(&r2); @@ -248,7 +248,7 @@ int main(int argc, const char **argv) StRadosCreatePool r1(argc, argv, NULL, pool_setup_sem, NULL, pool, g_num_objects, ".obj"); StRadosListObjects r2(argc, argv, pool, false, g_num_objects / 2, - pool_setup_sem, modify_sem); + pool_setup_sem, modify_sem, NULL); RadosDeleteObjectsR r3(argc, argv, pool); vector < SysTestRunnable* > vec; vec.push_back(&r1); @@ -268,7 +268,7 @@ int main(int argc, const char **argv) StRadosCreatePool r1(argc, argv, NULL, pool_setup_sem, NULL, pool, g_num_objects, ".obj"); StRadosListObjects r2(argc, argv, pool, false, g_num_objects / 2, - pool_setup_sem, modify_sem); + pool_setup_sem, modify_sem, NULL); RadosAddObjectsR r3(argc, argv, pool, ".obj2"); vector < SysTestRunnable* > vec; vec.push_back(&r1); @@ -288,7 +288,7 @@ int main(int argc, const char **argv) StRadosCreatePool r1(argc, argv, NULL, pool_setup_sem, NULL, pool, g_num_objects, ".obj"); StRadosListObjects r2(argc, argv, pool, false, g_num_objects / 2, - pool_setup_sem, modify_sem); + pool_setup_sem, modify_sem, NULL); RadosAddObjectsR r3(argc, argv, pool, ".obj2"); RadosAddObjectsR r4(argc, argv, pool, ".obj3"); RadosDeleteObjectsR r5(argc, argv, pool); @@ -312,7 +312,7 @@ int main(int argc, const char **argv) StRadosCreatePool r1(argc, argv, NULL, pool_setup_sem, NULL, pool, g_num_objects, ".obj"); StRadosListObjects r2(argc, argv, pool, false, g_num_objects / 2, - pool_setup_sem, modify_sem); + pool_setup_sem, modify_sem, NULL); // AddObjects with the same 'suffix' as used in StRadosCreatePool RadosAddObjectsR r3(argc, argv, pool, ".obj"); vector < SysTestRunnable* > vec; diff --git a/src/test/system/st_rados_list_objects.cc b/src/test/system/st_rados_list_objects.cc index 8c0db947a04..5a407e7a619 100644 --- a/src/test/system/st_rados_list_objects.cc +++ b/src/test/system/st_rados_list_objects.cc @@ -33,12 +33,14 @@ StRadosListObjects(int argc, const char **argv, bool accept_list_errors, int midway_cnt, CrossProcessSem *pool_setup_sem, - CrossProcessSem *midway_sem) + CrossProcessSem *midway_sem_wait, + CrossProcessSem *midway_sem_post) : SysTestRunnable(argc, argv), m_accept_list_errors(accept_list_errors), m_midway_cnt(midway_cnt), m_pool_setup_sem(pool_setup_sem), - m_midway_sem(midway_sem) + m_midway_sem_wait(midway_sem_wait), + m_midway_sem_post(midway_sem_post) { } @@ -73,7 +75,7 @@ run() break; } else if (ret != 0) { - if (m_accept_list_errors) + if (m_accept_list_errors && (!m_midway_sem_post || saw > m_midway_cnt)) break; printf("%s: rados_objects_list_next error: %d\n", get_id_str(), ret); return ret; @@ -85,8 +87,10 @@ run() } ++saw; if (saw == m_midway_cnt) { - if (m_midway_sem) - m_midway_sem->wait(); + if (m_midway_sem_wait) + m_midway_sem_wait->wait(); + if (m_midway_sem_post) + m_midway_sem_post->post(); } } rados_objects_list_close(h); diff --git a/src/test/system/st_rados_list_objects.h b/src/test/system/st_rados_list_objects.h index e4698d7492d..ddb1342e8b6 100644 --- a/src/test/system/st_rados_list_objects.h +++ b/src/test/system/st_rados_list_objects.h @@ -37,7 +37,8 @@ public: bool accept_list_errors, int midway_cnt, CrossProcessSem *pool_setup_sem, - CrossProcessSem *midway_sem); + CrossProcessSem *midway_sem_wait, + CrossProcessSem *midway_sem_post); ~StRadosListObjects(); virtual int run(); private: @@ -45,7 +46,8 @@ private: bool m_accept_list_errors; int m_midway_cnt; CrossProcessSem *m_pool_setup_sem; - CrossProcessSem *m_midway_sem; + CrossProcessSem *m_midway_sem_wait; + CrossProcessSem *m_midway_sem_post; }; #endif |