Files
Jungfraujoch/tests/ZMQPreviewSocketTest.cpp
2024-10-16 19:52:01 +02:00

30 lines
949 B
C++

// Copyright (2019-2024) Paul Scherrer Institute
#include <catch2/catch_all.hpp>
#include "../preview/ZMQPreviewSocket.h"
TEST_CASE("ZMQPreviewSocket","[ZeroMQ]") {
ZMQPreviewSocket preview_socket("ipc://*");
ZMQSocket sub_socket(ZMQSocketType::Sub);
sub_socket.Connect(preview_socket.GetAddress());
sub_socket.SubscribeAll();
sub_socket.ReceiveTimeout(std::chrono::seconds(2));
// ensure sub socket is properly connected
std::this_thread::sleep_for(std::chrono::seconds(2));
std::vector<uint8_t> vec(256);
for (int i = 0; i < vec.size(); i++)
vec[i] = (i * 7 + 13) % 256;
preview_socket.SendImage(vec.data(), vec.size());
preview_socket.SendImage(vec.data(), vec.size());
ZMQMessage msg1;
REQUIRE(sub_socket.Receive(msg1, true));
REQUIRE(msg1.size() == vec.size());
REQUIRE(memcmp(msg1.data(), vec.data(), vec.size()) == 0);
REQUIRE(!sub_socket.Receive(msg1, true));
}