From: Brad Hubbard Date: Mon, 22 Feb 2021 03:28:12 +0000 (+1000) Subject: tests: ceph_test_rados_api_watch_notify: Allow for reconnect X-Git-Tag: v15.2.13~10^2~17^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c4b37c50fa289f2a033cf8a2f96c8e3c5867840c;p=ceph.git tests: ceph_test_rados_api_watch_notify: Allow for reconnect An injected socket failure may cause rados_watch_check() to return ENOENT instead of the expected ENOTCONN. Fixes: https://tracker.ceph.com/issues/47719 Signed-off-by: Brad Hubbard (cherry picked from commit 0a03a81f633f11bd3247b2f8f10f719c7b3d38e3) --- diff --git a/src/test/librados/watch_notify.cc b/src/test/librados/watch_notify.cc index 4154298f0d9..9243a3d4e10 100644 --- a/src/test/librados/watch_notify.cc +++ b/src/test/librados/watch_notify.cc @@ -590,7 +590,10 @@ TEST_F(LibRadosWatchNotify, AioWatchDelete2) { } ASSERT_TRUE(left > 0); ASSERT_EQ(-ENOTCONN, notify_err); - ASSERT_EQ(-ENOTCONN, rados_watch_check(ioctx, handle)); + int rados_watch_check_err = rados_watch_check(ioctx, handle); + // We may hit ENOENT due to socket failure injection and a forced reconnect + EXPECT_TRUE(rados_watch_check_err == -ENOTCONN || rados_watch_check_err == -ENOENT) + << "Where rados_watch_check_err = " << rados_watch_check_err; ASSERT_EQ(0, rados_aio_create_completion2(nullptr, nullptr, &comp)); rados_aio_unwatch(ioctx, handle, comp); ASSERT_EQ(0, rados_aio_wait_for_complete(comp));