From 3030c262f116e77abb8423b29f274bd26dcffc81 Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Mon, 25 Nov 2019 14:56:15 +0100 Subject: [PATCH] rx tests --- .../tests/test-CmdProxy-rx.cpp | 141 ++++++++++++------ slsDetectorSoftware/tests/test-CmdProxy.cpp | 46 ------ 2 files changed, 99 insertions(+), 88 deletions(-) diff --git a/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp b/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp index 85a777b5f..222161da5 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp @@ -5,13 +5,14 @@ #include #include "tests/globals.h" +#include "versionAPI.h" using sls::CmdProxy; using sls::Detector; using test::GET; using test::PUT; -/* +/* This file should contain receiver specific tests 25/11/2019 we have: rx_datastream @@ -44,6 +45,50 @@ rx_zmqport */ +TEST_CASE("rx_version", "[.cmd]") { + Detector det; + CmdProxy proxy(&det); + std::ostringstream oss; + proxy.Call("rx_version", {}, -1, GET, oss); + std::ostringstream vs; + vs << "rx_version 0x" << std::hex << APIRECEIVER << '\n'; + REQUIRE(oss.str() == vs.str()); +} + +TEST_CASE("rx_start", "[.cmd]") { + Detector det; + CmdProxy proxy(&det); + //PUT only command + REQUIRE_THROWS(proxy.Call("rx_start", {}, -1, GET)); + { + std::ostringstream oss; + proxy.Call("rx_start", {}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_start successful\n"); + } + { + std::ostringstream oss; + proxy.Call("rx_status", {}, -1, GET, oss); + REQUIRE(oss.str() == "rx_status running\n"); + } +} + +TEST_CASE("rx_stop", "[.cmd]") { + Detector det; + CmdProxy proxy(&det); + //PUT only command + REQUIRE_THROWS(proxy.Call("rx_stop", {}, -1, GET)); + { + std::ostringstream oss; + proxy.Call("rx_stop", {}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_stop successful\n"); + } + { + std::ostringstream oss; + proxy.Call("rx_status", {}, -1, GET, oss); + REQUIRE(oss.str() == "rx_status idle\n"); + } +} + TEST_CASE("rx_missingpackets", "[.cmd]") { // TODO! This only tests for no crash how can we test // for correct values? @@ -165,20 +210,28 @@ TEST_CASE("rx_jsonaddheader", "[.cmd]") { } TEST_CASE("rx_udpsocksize", "[.cmd]") { - // TODO! Is the real socket size always twice? Detector det; CmdProxy proxy(&det); - { std::ostringstream oss; proxy.Call("rx_udpsocksize", {"4857600"}, -1, PUT, oss); REQUIRE(oss.str() == "rx_udpsocksize 4857600\n"); } - uint64_t val = 0; { std::ostringstream oss; proxy.Call("rx_udpsocksize", {}, -1, GET, oss); REQUIRE(oss.str() == "rx_udpsocksize 4857600\n"); + } +} + +TEST_CASE("rx_realudpsocksize", "[.cmd]") { + // TODO! Is the real socket size always twice? + Detector det; + CmdProxy proxy(&det); + uint64_t val = 0; + { + std::ostringstream oss; + proxy.Call("rx_udpsocksize", {}, -1, GET, oss); std::string s = (oss.str()).erase(0, strlen("rx_udpsocksize ")); val = std::stol(s); } @@ -326,45 +379,49 @@ TEST_CASE("rx_lock", "[.cmd]") { // } // } -// TEST_CASE("rx_datastream", "[.cmd]") { -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("rx_datastream 1", PUT, -// nullptr, oss)); REQUIRE(oss.str() == "rx_datastream 1\n"); -// } -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("0:rx_datastream", GET, -// nullptr, oss)); REQUIRE(oss.str() == "rx_datastream 1\n"); -// } -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("rx_datastream 0", PUT, -// nullptr, oss)); REQUIRE(oss.str() == "rx_datastream 0\n"); -// } -// } +TEST_CASE("rx_datastream", "[.cmd]") { + Detector det; + CmdProxy proxy(&det); + { + std::ostringstream oss; + proxy.Call("rx_datastream", {"1"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_datastream 1\n"); + REQUIRE(det.getRxZmqDataStream().squash() == true); + } + { + std::ostringstream oss; + proxy.Call("rx_datastream", {}, -1, GET, oss); + REQUIRE(oss.str() == "rx_datastream 1\n"); + } + { + std::ostringstream oss; + proxy.Call("rx_datastream", {"0"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_datastream 0\n"); + REQUIRE(det.getRxZmqDataStream().squash() == false); + } +} -// TEST_CASE("rx_tcpport", "[.cmd]") { -// multiSlsDetector d; -// int port = 3500; -// REQUIRE_NOTHROW(multiSlsDetectorClient("rx_tcpport " + -// std::to_string(port), PUT)); for (int i = 0; i != d.size(); ++i) { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient(std::to_string(i) + -// ":rx_tcpport", GET, nullptr, oss)); REQUIRE(oss.str() == "rx_tcpport -// " + std::to_string(port + i) + '\n'); -// } -// REQUIRE_THROWS(multiSlsDetectorClient("rx_tcpport 15", PUT)); -// port = 1954; -// REQUIRE_NOTHROW(multiSlsDetectorClient("rx_tcpport " + -// std::to_string(port), PUT)); for (int i = 0; i != d.size(); ++i) { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient(std::to_string(i) + -// ":rx_tcpport", GET, nullptr, oss)); REQUIRE(oss.str() == "rx_tcpport -// " + std::to_string(port + i) + '\n'); -// } -// REQUIRE_NOTHROW(multiSlsDetectorClient("rx_tcpport 1954", PUT)); -// } +TEST_CASE("rx_tcpport", "[.cmd]") { + Detector det; + CmdProxy proxy(&det); + + int port = 3500; + + proxy.Call("rx_tcpport", {std::to_string(port)}, -1, PUT); + for (int i = 0; i != det.size(); ++i) { + std::ostringstream oss; + proxy.Call("rx_tcpport", {}, -1, GET, oss); + REQUIRE(oss.str() == "rx_tcpport " + std::to_string(port + i) + '\n'); + } + REQUIRE_THROWS(proxy.Call("rx_tcpport", {"15"}, -1, PUT)); + port = 1954; + proxy.Call("rx_tcpport", {std::to_string(port)}, -1, PUT); + for (int i = 0; i != det.size(); ++i) { + std::ostringstream oss; + proxy.Call("rx_tcpport", {}, -1, GET, oss); + REQUIRE(oss.str() == "rx_tcpport " + std::to_string(port + i) + '\n'); + } +} // TEST_CASE("rx_zmqip", "[.cmd]") { // std::string s; diff --git a/slsDetectorSoftware/tests/test-CmdProxy.cpp b/slsDetectorSoftware/tests/test-CmdProxy.cpp index 2b6f29733..89223b0d2 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy.cpp @@ -3299,53 +3299,7 @@ TEST_CASE("stopport", "[.cmd]") { // } // } -// TEST_CASE("rx_zmqport", "[.cmd]") { -// multiSlsDetector d; -// int socketsperdetector = 1; -// if (test::type == slsDetectorDefs::EIGER) { -// socketsperdetector *= 2; -// } else if (test::type == slsDetectorDefs::JUNGFRAU) { -// REQUIRE_NOTHROW(multiSlsDetectorClient("numinterfaces 2", PUT)); -// socketsperdetector *= 2; -// } -// int port = 3500; -// REQUIRE_NOTHROW(multiSlsDetectorClient("rx_zmqport " + -// std::to_string(port), PUT)); for (int i = 0; i != d.size(); ++i) { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient(std::to_string(i) + -// ":rx_zmqport", GET, nullptr, oss)); REQUIRE(oss.str() == "rx_zmqport -// " + std::to_string(port + i * socketsperdetector) + '\n'); -// } -// port = 30001; -// REQUIRE_NOTHROW(multiSlsDetectorClient("rx_zmqport " + -// std::to_string(port), PUT)); for (int i = 0; i != d.size(); ++i) { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient(std::to_string(i) + -// ":rx_zmqport", GET, nullptr, oss)); REQUIRE(oss.str() == "rx_zmqport -// " + std::to_string(port + i * socketsperdetector) + '\n'); -// } -// if (test::type == slsDetectorDefs::JUNGFRAU) { -// REQUIRE_NOTHROW(multiSlsDetectorClient("numinterfaces 1", PUT)); -// } -// } -// TEST_CASE("rx_datastream", "[.cmd]") { -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("rx_datastream 1", PUT, -// nullptr, oss)); REQUIRE(oss.str() == "rx_datastream 1\n"); -// } -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("0:rx_datastream", GET, -// nullptr, oss)); REQUIRE(oss.str() == "rx_datastream 1\n"); -// } -// { -// std::ostringstream oss; -// REQUIRE_NOTHROW(multiSlsDetectorClient("rx_datastream 0", PUT, -// nullptr, oss)); REQUIRE(oss.str() == "rx_datastream 0\n"); -// } -// } // TEST_CASE("fpath", "[.cmd]") { // std::string s;