From a9406fa3d3f433d38a45b3883287b39727bea354 Mon Sep 17 00:00:00 2001 From: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com> Date: Thu, 27 Feb 2025 18:03:55 +0100 Subject: [PATCH 1/2] add missing includes (#419) --- docs/pubsub.rst | 1 + examples/universal/z_get_channel_non_blocking.cxx | 1 + tests/universal/network/liveliness.cxx | 1 + tests/universal/network/pub_sub.cxx | 1 + tests/universal/network/queryable_get.cxx | 1 + tests/zenohc/shm_api.cxx | 1 + 6 files changed, 6 insertions(+) diff --git a/docs/pubsub.rst b/docs/pubsub.rst index c7d67f8f..9611d8c1 100644 --- a/docs/pubsub.rst +++ b/docs/pubsub.rst @@ -65,6 +65,7 @@ Subscriber example with non-blocking stream interface: .. code-block:: c++ #include "zenoh.hxx" + #include #include #include diff --git a/examples/universal/z_get_channel_non_blocking.cxx b/examples/universal/z_get_channel_non_blocking.cxx index 489325bb..aeed2917 100644 --- a/examples/universal/z_get_channel_non_blocking.cxx +++ b/examples/universal/z_get_channel_non_blocking.cxx @@ -14,6 +14,7 @@ #include #include +#include #include #include #include diff --git a/tests/universal/network/liveliness.cxx b/tests/universal/network/liveliness.cxx index 67668874..3a2ec0eb 100644 --- a/tests/universal/network/liveliness.cxx +++ b/tests/universal/network/liveliness.cxx @@ -12,6 +12,7 @@ // ZettaScale Zenoh Team, // +#include #include #include diff --git a/tests/universal/network/pub_sub.cxx b/tests/universal/network/pub_sub.cxx index 40ac914e..2a903603 100644 --- a/tests/universal/network/pub_sub.cxx +++ b/tests/universal/network/pub_sub.cxx @@ -12,6 +12,7 @@ // ZettaScale Zenoh Team, // +#include #include #include "zenoh.hxx" diff --git a/tests/universal/network/queryable_get.cxx b/tests/universal/network/queryable_get.cxx index b2916f9b..e43e602f 100644 --- a/tests/universal/network/queryable_get.cxx +++ b/tests/universal/network/queryable_get.cxx @@ -12,6 +12,7 @@ // ZettaScale Zenoh Team, // +#include #include #include "zenoh.hxx" diff --git a/tests/zenohc/shm_api.cxx b/tests/zenohc/shm_api.cxx index d8115015..5a113036 100644 --- a/tests/zenohc/shm_api.cxx +++ b/tests/zenohc/shm_api.cxx @@ -12,6 +12,7 @@ // ZettaScale Zenoh Team, // +#include #include #include From 2962e51a6d5728ac0de5c1f9f6581927775cb781 Mon Sep 17 00:00:00 2001 From: DenisBiryukov91 <155981813+DenisBiryukov91@users.noreply.github.com> Date: Fri, 28 Feb 2025 11:36:25 +0100 Subject: [PATCH 2/2] make pub-sub test use multiple subscribers (#420) --- tests/universal/network/pub_sub.cxx | 66 +++++++++++++++++------------ 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/tests/universal/network/pub_sub.cxx b/tests/universal/network/pub_sub.cxx index 2a903603..6e06217e 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