diff --git a/slsDetectorSoftware/tests/test-CmdProxy-eiger.cpp b/slsDetectorSoftware/tests/test-CmdProxy-eiger.cpp index 3ea66c65c..a8bc8869c 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-eiger.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-eiger.cpp @@ -271,45 +271,29 @@ TEST_CASE("trigger", "[.cmd][.new]") { /* Network Configuration (Detector<->Receiver) */ -TEST_CASE("Eiger transmission delay", "[.cmd]") { +TEST_CASE("txndelay_frame", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); auto det_type = det.getDetectorType().squash(); - auto frame = det.getTransmissionDelayFrame(); - auto left = det.getTransmissionDelayLeft(); - auto right = det.getTransmissionDelayRight(); if (det_type == defs::EIGER) { - SECTION("txndelay_frame") { + auto prev_val = det.getTransmissionDelayFrame(); + { std::ostringstream oss1, oss2; proxy.Call("txndelay_frame", {"5000"}, -1, PUT, oss1); REQUIRE(oss1.str() == "txndelay_frame 5000\n"); proxy.Call("txndelay_frame", {}, -1, GET, oss2); REQUIRE(oss2.str() == "txndelay_frame 5000\n"); } - SECTION("txndelay_left") { - std::ostringstream oss1, oss2; - proxy.Call("txndelay_left", {"5000"}, -1, PUT, oss1); - REQUIRE(oss1.str() == "txndelay_left 5000\n"); - proxy.Call("txndelay_left", {}, -1, GET, oss2); - REQUIRE(oss2.str() == "txndelay_left 5000\n"); - } - SECTION("txndelay_right") { - std::ostringstream oss1, oss2; - proxy.Call("txndelay_right", {"5000"}, -1, PUT, oss1); - REQUIRE(oss1.str() == "txndelay_right 5000\n"); - proxy.Call("txndelay_right", {}, -1, GET, oss2); - REQUIRE(oss2.str() == "txndelay_right 5000\n"); - } - - // Reset to previous values for (int i = 0; i != det.size(); ++i) { - det.setTransmissionDelayFrame(frame[i]); - det.setTransmissionDelayLeft(left[i]); - det.setTransmissionDelayRight(right[i]); + det.setTransmissionDelayFrame(prev_val[i]); } + } else { + REQUIRE_THROWS(proxy.Call("txndelay_frame", {}, -1, GET)); } } +/* Eiger Specific */ + TEST_CASE("dr", "[.cmd]") { Detector det; CmdProxy proxy(&det); diff --git a/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp b/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp index 2d4f13aa6..95c2ab9f8 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy-rx.cpp @@ -374,7 +374,7 @@ TEST_CASE("rx_lastclient", "[.cmd][.rx][.new]") { /* File */ -TEST_CASE("fformat", "[.cmd]") { +TEST_CASE("fformat", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getFileFormat(); @@ -393,7 +393,7 @@ TEST_CASE("fformat", "[.cmd]") { } } -TEST_CASE("fpath", "[.cmd]") { +TEST_CASE("fpath", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getFilePath(); @@ -412,7 +412,7 @@ TEST_CASE("fpath", "[.cmd]") { } } -TEST_CASE("fname", "[.cmd]") { +TEST_CASE("fname", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getFileNamePrefix(); @@ -436,7 +436,7 @@ TEST_CASE("fname", "[.cmd]") { } } -TEST_CASE("findex", "[.cmd]") { +TEST_CASE("findex", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getAcquisitionIndex(); @@ -460,7 +460,7 @@ TEST_CASE("findex", "[.cmd]") { } } -TEST_CASE("fwrite", "[.cmd]") { +TEST_CASE("fwrite", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getFileWrite(); @@ -484,7 +484,7 @@ TEST_CASE("fwrite", "[.cmd]") { } } -TEST_CASE("fmaster", "[.cmd]") { +TEST_CASE("fmaster", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getMasterFileWrite(); @@ -508,7 +508,7 @@ TEST_CASE("fmaster", "[.cmd]") { } } -TEST_CASE("foverwrite", "[.cmd]") { +TEST_CASE("foverwrite", "[.cmd][.new]") { Detector det; CmdProxy proxy(&det); auto prev_val = det.getFileOverWrite(); diff --git a/slsDetectorSoftware/tests/test-CmdProxy.cpp b/slsDetectorSoftware/tests/test-CmdProxy.cpp index 50e1cf093..700cb41b3 100644 --- a/slsDetectorSoftware/tests/test-CmdProxy.cpp +++ b/slsDetectorSoftware/tests/test-CmdProxy.cpp @@ -1225,6 +1225,224 @@ TEST_CASE("udp_dstmac", "[.cmd][.new]") { REQUIRE_THROWS(proxy.Call("udp_dstmac", {"00:00:00:00:00:00"}, -1, PUT)); } +TEST_CASE("udp_dstport", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getDestinationUDPPort(); + { + std::ostringstream oss; + proxy.Call("udp_dstport", {"50084"}, -1, PUT, oss); + REQUIRE(oss.str() == "udp_dstport 50084\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setDestinationUDPPort(prev_val[i], {i}); + } +} + +TEST_CASE("udp_srcip2", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getSourceUDPIP2(); + REQUIRE_THROWS(proxy.Call("udp_srcip2", {"0.0.0.0"}, -1, PUT)); + { + std::ostringstream oss; + proxy.Call("udp_srcip2", {"129.129.205.12"}, -1, PUT, oss); + REQUIRE(oss.str() == "udp_srcip2 129.129.205.12\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setSourceUDPIP2(prev_val[i], {i}); + } +} + +TEST_CASE("udp_dstip2", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + REQUIRE_THROWS(proxy.Call("udp_dstip2", {"0.0.0.0"}, -1, PUT)); +} + +TEST_CASE("udp_srcmac2", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getSourceUDPMAC2(); + REQUIRE_THROWS(proxy.Call("udp_srcmac2", {"00:00:00:00:00:00"}, -1, PUT)); + { + std::ostringstream oss; + proxy.Call("udp_srcmac2", {"00:50:c2:42:34:12"}, -1, PUT, oss); + REQUIRE(oss.str() == "udp_srcmac2 00:50:c2:42:34:12\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setSourceUDPMAC2(prev_val[i], {i}); + } +} + +TEST_CASE("udp_dstmac2", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + REQUIRE_THROWS(proxy.Call("udp_dstmac2", {"00:00:00:00:00:00"}, -1, PUT)); +} + +TEST_CASE("udp_dstport2", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto prev_val = det.getDestinationUDPPort2(); + { + std::ostringstream oss; + proxy.Call("udp_dstport2", {"50084"}, -1, PUT, oss); + REQUIRE(oss.str() == "udp_dstport2 50084\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setDestinationUDPPort2(prev_val[i], {i}); + } +} + +TEST_CASE("flowcontrol10g", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + + if (det_type == defs::EIGER || det_type == defs::JUNGFRAU) { + auto prev_val = det.getTenGigaFlowControl(); + { + std::ostringstream oss; + proxy.Call("flowcontrol10g", {"1"}, -1, PUT, oss); + REQUIRE(oss.str() == "flowcontrol10g 1\n"); + } + { + std::ostringstream oss; + proxy.Call("flowcontrol10g", {"0"}, -1, PUT, oss); + REQUIRE(oss.str() == "flowcontrol10g 0\n"); + } + { + std::ostringstream oss; + proxy.Call("flowcontrol10g", {}, -1, GET, oss); + REQUIRE(oss.str() == "flowcontrol10g 0\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setTenGigaFlowControl(prev_val[i], {i}); + } + } else { + REQUIRE_THROWS(proxy.Call("flowcontrol10g", {}, -1, GET)); + } +} + +TEST_CASE("txndelay_left", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER || det_type == defs::JUNGFRAU) { + auto prev_val = det.getTransmissionDelayLeft(); + auto val = 5000; + if (det_type == defs::JUNGFRAU) { + val = 5; + } + std::string sval = std::to_string(val); + { + std::ostringstream oss1, oss2; + proxy.Call("txndelay_left", {sval}, -1, PUT, oss1); + REQUIRE(oss1.str() == "txndelay_left " + sval + "\n"); + proxy.Call("txndelay_left", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "txndelay_left " + sval + "\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setTransmissionDelayLeft(prev_val[i]); + } + } else { + REQUIRE_THROWS(proxy.Call("txndelay_left", {}, -1, GET)); + } +} + +TEST_CASE("txndelay_right", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::EIGER || det_type == defs::JUNGFRAU) { + auto prev_val = det.getTransmissionDelayRight(); + auto val = 5000; + if (det_type == defs::JUNGFRAU) { + val = 5; + } + std::string sval = std::to_string(val); + { + std::ostringstream oss1, oss2; + proxy.Call("txndelay_right", {sval}, -1, PUT, oss1); + REQUIRE(oss1.str() == "txndelay_right " + sval + "\n"); + proxy.Call("txndelay_right", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "txndelay_right " + sval + "\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setTransmissionDelayRight(prev_val[i]); + } + } else { + REQUIRE_THROWS(proxy.Call("txndelay_right", {}, -1, GET)); + } +} + +/* ZMQ Streaming Parameters (Receiver<->Client) */ + +TEST_CASE("zmqport", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + + int socketsperdetector = 1; + auto det_type = det.getDetectorType().squash(); + int prev = 1; + if (det_type == defs::EIGER) { + socketsperdetector *= 2; + } else if (det_type == defs::JUNGFRAU) { + prev = det.getNumberofUDPInterfaces().squash(); + det.setNumberofUDPInterfaces(2); + socketsperdetector *= 2; + } + int port = 3500; + auto port_str = std::to_string(port); + { + std::ostringstream oss; + proxy.Call("zmqport", {port_str}, -1, PUT, oss); + REQUIRE(oss.str() == "zmqport " + port_str + '\n'); + } + for (int i = 0; i != det.size(); ++i) { + std::ostringstream oss; + proxy.Call("zmqport", {}, i, GET, oss); + REQUIRE(oss.str() == "zmqport " + + std::to_string(port + i * socketsperdetector) + + '\n'); + } + + port = 1954; + port_str = std::to_string(port); + { + std::ostringstream oss; + proxy.Call("zmqport", {port_str}, -1, PUT, oss); + REQUIRE(oss.str() == "zmqport " + port_str + '\n'); + } + for (int i = 0; i != det.size(); ++i) { + std::ostringstream oss; + proxy.Call("zmqport", {}, i, GET, oss); + REQUIRE(oss.str() == "zmqport " + + std::to_string(port + i * socketsperdetector) + + '\n'); + } + if (det_type == defs::JUNGFRAU) { + det.setNumberofUDPInterfaces(prev); + } +} + +TEST_CASE("zmqip", "[.cmd][.new]") { + Detector det; + CmdProxy proxy(&det); + std::ostringstream oss1, oss2; + auto zmqip = det.getClientZmqIp(); + proxy.Call("zmqip", {}, 0, GET, oss1); + REQUIRE(oss1.str() == "zmqip " + zmqip[0].str() + '\n'); + + proxy.Call("zmqip", {zmqip[0].str()}, 0, PUT, oss2); + REQUIRE(oss2.str() == "zmqip " + zmqip[0].str() + '\n'); + + for (int i = 0; i != det.size(); ++i) { + det.setRxZmqIP(zmqip[i], {i}); + } +} + /* Advanced */ TEST_CASE("initialchecks", "[.cmd]") { @@ -2711,70 +2929,6 @@ TEST_CASE("user", "[.cmd]") { // oss)); s = oss.str(); REQUIRE_NOTHROW(multiSlsDetectorClient(s, PUT)); // } -TEST_CASE("zmqip", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - std::ostringstream oss1, oss2; - auto zmqip = det.getClientZmqIp(); - proxy.Call("zmqip", {}, 0, GET, oss1); - REQUIRE(oss1.str() == "zmqip " + zmqip[0].str() + '\n'); - - proxy.Call("zmqip", {zmqip[0].str()}, 0, PUT, oss2); - REQUIRE(oss2.str() == "zmqip " + zmqip[0].str() + '\n'); - - for (int i = 0; i != det.size(); ++i) { - det.setRxZmqIP(zmqip[i], {i}); - } -} - -TEST_CASE("zmqport", "[.cmd]") { - Detector det; - CmdProxy proxy(&det); - - int socketsperdetector = 1; - auto det_type = det.getDetectorType().squash(); - int prev = 1; - if (det_type == defs::EIGER) { - socketsperdetector *= 2; - } else if (det_type == defs::JUNGFRAU) { - prev = det.getNumberofUDPInterfaces().squash(); - det.setNumberofUDPInterfaces(2); - socketsperdetector *= 2; - } - int port = 3500; - auto port_str = std::to_string(port); - { - std::ostringstream oss; - proxy.Call("zmqport", {port_str}, -1, PUT, oss); - REQUIRE(oss.str() == "zmqport " + port_str + '\n'); - } - for (int i = 0; i != det.size(); ++i) { - std::ostringstream oss; - proxy.Call("zmqport", {}, i, GET, oss); - REQUIRE(oss.str() == "zmqport " + - std::to_string(port + i * socketsperdetector) + - '\n'); - } - - port = 1954; - port_str = std::to_string(port); - { - std::ostringstream oss; - proxy.Call("zmqport", {port_str}, -1, PUT, oss); - REQUIRE(oss.str() == "zmqport " + port_str + '\n'); - } - for (int i = 0; i != det.size(); ++i) { - std::ostringstream oss; - proxy.Call("zmqport", {}, i, GET, oss); - REQUIRE(oss.str() == "zmqport " + - std::to_string(port + i * socketsperdetector) + - '\n'); - } - if (det_type == defs::JUNGFRAU) { - det.setNumberofUDPInterfaces(prev); - } -} - // TEST_CASE("txndelay", "[.cmd][.eiger][.jungfrau]") { // if (test::type == defs::EIGER) { // {