diff --git a/tests/universal/network/pub_sub.cxx b/tests/universal/network/pub_sub.cxx index 2a90360..6e06217 100644 --- a/tests/universal/network/pub_sub.cxx +++ b/tests/universal/network/pub_sub.cxx @@ -119,7 +119,9 @@ void put_sub_fifo_channel(Talloc& alloc) { std::this_thread::sleep_for(1s); - auto subscriber = session2.declare_subscriber(ke, channels::FifoChannel(16)); + std::vector>> subscribers; + subscribers.push_back(session2.declare_subscriber(ke, channels::FifoChannel(16))); + subscribers.push_back(session2.declare_subscriber(ke, channels::FifoChannel(16))); std::this_thread::sleep_for(1s); @@ -128,24 +130,28 @@ void put_sub_fifo_channel(Talloc& alloc) { std::this_thread::sleep_for(1s); - auto res = subscriber.handler().recv(); - assert(std::holds_alternative(res)); - assert(std::get(res).get_keyexpr() == "zenoh/test"); - assert(std::get(res).get_payload().as_string() == "first"); - res = subscriber.handler().try_recv(); - assert(std::holds_alternative(res)); - assert(std::get(res).get_keyexpr() == "zenoh/test"); - assert(std::get(res).get_payload().as_string() == "second"); - - res = subscriber.handler().try_recv(); - assert(std::holds_alternative(res)); - assert(std::get(res) == channels::RecvError::Z_NODATA); + for (const auto& subscriber : subscribers) { + auto res = subscriber.handler().recv(); + assert(std::holds_alternative(res)); + assert(std::get(res).get_keyexpr() == "zenoh/test"); + assert(std::get(res).get_payload().as_string() == "first"); + res = subscriber.handler().try_recv(); + assert(std::holds_alternative(res)); + assert(std::get(res).get_keyexpr() == "zenoh/test"); + assert(std::get(res).get_payload().as_string() == "second"); + + res = subscriber.handler().try_recv(); + assert(std::holds_alternative(res)); + assert(std::get(res) == channels::RecvError::Z_NODATA); + } /// after session close subscriber handler should become disconnected session2.close(); - res = subscriber.handler().recv(); - assert(std::holds_alternative(res)); - assert(std::get(res) == channels::RecvError::Z_DISCONNECTED); + for (const auto& subscriber : subscribers) { + auto res = subscriber.handler().recv(); + assert(std::holds_alternative(res)); + assert(std::get(res) == channels::RecvError::Z_DISCONNECTED); + } } template @@ -156,7 +162,9 @@ void put_sub_ring_channel(Talloc& alloc) { std::this_thread::sleep_for(1s); - auto subscriber = session2.declare_subscriber(ke, channels::RingChannel(1)); + std::vector>> subscribers; + subscribers.push_back(session2.declare_subscriber(ke, channels::RingChannel(1))); + subscribers.push_back(session2.declare_subscriber(ke, channels::RingChannel(1))); std::this_thread::sleep_for(1s); @@ -165,20 +173,24 @@ void put_sub_ring_channel(Talloc& alloc) { std::this_thread::sleep_for(1s); - auto res = subscriber.handler().recv(); - assert(std::holds_alternative(res)); - assert(std::get(res).get_keyexpr() == "zenoh/test"); - assert(std::get(res).get_payload().as_string() == "second"); + for (const auto& subscriber : subscribers) { + auto res = subscriber.handler().recv(); + assert(std::holds_alternative(res)); + assert(std::get(res).get_keyexpr() == "zenoh/test"); + assert(std::get(res).get_payload().as_string() == "second"); - res = subscriber.handler().try_recv(); - assert(std::holds_alternative(res)); - assert(std::get(res) == channels::RecvError::Z_NODATA); + res = subscriber.handler().try_recv(); + assert(std::holds_alternative(res)); + assert(std::get(res) == channels::RecvError::Z_NODATA); + } /// after session close subscriber handler should become disconnected session2.close(); - res = subscriber.handler().recv(); - assert(std::holds_alternative(res)); - assert(std::get(res) == channels::RecvError::Z_DISCONNECTED); + for (const auto& subscriber : subscribers) { + auto res = subscriber.handler().recv(); + assert(std::holds_alternative(res)); + assert(std::get(res) == channels::RecvError::Z_DISCONNECTED); + } } template