From: Samuel Just Date: Tue, 11 Mar 2014 18:25:47 +0000 (-0700) Subject: test/system/st_rados_watch: expect ENOENT for watch on non-existent object X-Git-Tag: v0.78~33^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9d549eb2f456b2d6b493c34eccbf72eb372281f6;p=ceph.git test/system/st_rados_watch: expect ENOENT for watch on non-existent object Signed-off-by: Samuel Just --- diff --git a/src/test/system/rados_watch_notify.cc b/src/test/system/rados_watch_notify.cc index e549d3865052..6517f33ebe82 100644 --- a/src/test/system/rados_watch_notify.cc +++ b/src/test/system/rados_watch_notify.cc @@ -70,7 +70,7 @@ int main(int argc, const char **argv) { StRadosCreatePool r1(argc, argv, NULL, setup_sem, NULL, pool, 1, ".obj"); StRadosWatch r2(argc, argv, setup_sem, watch_sem, notify_sem, - 1, pool, "0.obj"); + 1, 0, pool, "0.obj"); StRadosNotify r3(argc, argv, setup_sem, watch_sem, notify_sem, 0, pool, "0.obj"); vector vec; @@ -94,7 +94,7 @@ int main(int argc, const char **argv) { StRadosCreatePool r1(argc, argv, NULL, setup_sem, NULL, pool, 0, ".obj"); StRadosWatch r2(argc, argv, setup_sem, watch_sem, notify_sem, - 0, pool, "0.obj"); + 0, -ENOENT, pool, "0.obj"); StRadosNotify r3(argc, argv, setup_sem, watch_sem, notify_sem, -ENOENT, pool, "0.obj"); vector vec; @@ -127,7 +127,7 @@ int main(int argc, const char **argv) { StRadosCreatePool r1(argc, argv, NULL, setup_sem, NULL, pool, 1, ".obj"); StRadosWatch r2(argc, argv, setup_sem, watch_sem, finished_notifies_sem, - 1, pool, "0.obj"); + 1, 0, pool, "0.obj"); StRadosNotify r3(argc, argv, setup_sem, watch_sem, notify_sem, 0, pool, "0.obj"); StRadosDeletePool r4(argc, argv, notify_sem, deleted_sem, pool); @@ -165,7 +165,7 @@ int main(int argc, const char **argv) { StRadosCreatePool r1(argc, argv, NULL, setup_sem, NULL, pool, 1, ".obj"); StRadosWatch r2(argc, argv, setup_sem, watch_sem, finished_notifies_sem, - 1, pool, "0.obj"); + 1, 0, pool, "0.obj"); StRadosNotify r3(argc, argv, setup_sem, watch_sem, notify_sem, 0, pool, "0.obj"); StRadosDeleteObjs r4(argc, argv, notify_sem, deleted_sem, 1, pool, ".obj"); diff --git a/src/test/system/st_rados_watch.cc b/src/test/system/st_rados_watch.cc index 696b0867e889..38b7b5eee85a 100644 --- a/src/test/system/st_rados_watch.cc +++ b/src/test/system/st_rados_watch.cc @@ -28,6 +28,7 @@ StRadosWatch::StRadosWatch(int argc, const char **argv, CrossProcessSem *watch_sem, CrossProcessSem *notify_sem, int num_notifies, + int watch_retcode, const std::string &pool_name, const std::string &obj_name) : SysTestRunnable(argc, argv), @@ -35,6 +36,7 @@ StRadosWatch::StRadosWatch(int argc, const char **argv, m_watch_sem(watch_sem), m_notify_sem(notify_sem), m_num_notifies(num_notifies), + m_watch_retcode(watch_retcode), m_pool_name(pool_name), m_obj_name(obj_name) { @@ -65,9 +67,13 @@ run() RETURN1_IF_NONZERO(rados_connect(cl)); RETURN1_IF_NONZERO(rados_ioctx_create(cl, m_pool_name.c_str(), &io_ctx)); printf("%s: watching object %s\n", get_id_str(), m_obj_name.c_str()); - RETURN1_IF_NONZERO(rados_watch(io_ctx, m_obj_name.c_str(), 0, &handle, - reinterpret_cast(notify_cb), - reinterpret_cast(&num_notifies))); + + RETURN1_IF_NOT_VAL( + rados_watch(io_ctx, m_obj_name.c_str(), 0, &handle, + reinterpret_cast(notify_cb), + reinterpret_cast(&num_notifies)), + m_watch_retcode + ); if (m_watch_sem) { m_watch_sem->post(); } diff --git a/src/test/system/st_rados_watch.h b/src/test/system/st_rados_watch.h index e5ae1304b183..e3e78c0cc0e1 100644 --- a/src/test/system/st_rados_watch.h +++ b/src/test/system/st_rados_watch.h @@ -38,6 +38,7 @@ public: CrossProcessSem *watch_sem, CrossProcessSem *notify_sem, int num_notifies, + int watch_retcode, const std::string &pool_name, const std::string &obj_name); ~StRadosWatch(); @@ -47,6 +48,7 @@ private: CrossProcessSem *m_watch_sem; CrossProcessSem *m_notify_sem; int m_num_notifies; + int m_watch_retcode; std::string m_pool_name; std::string m_obj_name; };