From 9d549eb2f456b2d6b493c34eccbf72eb372281f6 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Tue, 11 Mar 2014 11:25:47 -0700 Subject: [PATCH] test/system/st_rados_watch: expect ENOENT for watch on non-existent object Signed-off-by: Samuel Just --- src/test/system/rados_watch_notify.cc | 8 ++++---- src/test/system/st_rados_watch.cc | 12 +++++++++--- src/test/system/st_rados_watch.h | 2 ++ 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/test/system/rados_watch_notify.cc b/src/test/system/rados_watch_notify.cc index e549d38650527..6517f33ebe826 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 696b0867e8893..38b7b5eee85a6 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 e5ae1304b1834..e3e78c0cc0e17 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; }; -- 2.39.5