This commit is contained in:
Erik Frojdh 2019-12-04 10:25:17 +01:00
parent 619106e05f
commit be3d82b7b4
2 changed files with 94 additions and 57 deletions

View File

@ -13,6 +13,45 @@ using sls::Detector;
using test::GET; using test::GET;
using test::PUT; using test::PUT;
TEST_CASE("Eiger transmission delay") {
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") {
std::ostringstream oss1, oss2;
proxy.Call("txndelay_frame", {"5000"}, -1, PUT, oss1);
REQUIRE(oss1.str() == "txndealy_frame 5000\n");
proxy.Call("txndelay_frame", {}, -1, GET, oss2);
REQUIRE(oss2.str() == "txndealy_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_frame", {}, -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]);
}
}
TEST_CASE("dr", "[.cmd]") { TEST_CASE("dr", "[.cmd]") {
Detector det; Detector det;
CmdProxy proxy(&det); CmdProxy proxy(&det);
@ -117,17 +156,17 @@ TEST_CASE("subexptime", "[.cmd]") {
CmdProxy proxy(&det); CmdProxy proxy(&det);
auto det_type = det.getDetectorType().squash(); auto det_type = det.getDetectorType().squash();
if (det_type == defs::EIGER){ if (det_type == defs::EIGER) {
auto time = det.getSubExptime(); auto time = det.getSubExptime();
std::ostringstream oss1, oss2; std::ostringstream oss1, oss2;
proxy.Call("subexptime", {"2.5us"}, -1, PUT, oss1); proxy.Call("subexptime", {"2.5us"}, -1, PUT, oss1);
REQUIRE(oss1.str() == "subexptime 2.5us\n"); REQUIRE(oss1.str() == "subexptime 2.5us\n");
proxy.Call("subexptime", {}, -1, GET, oss2); proxy.Call("subexptime", {}, -1, GET, oss2);
REQUIRE(oss2.str() == "subexptime 2.5us\n"); REQUIRE(oss2.str() == "subexptime 2.5us\n");
for (int i = 0; i!=det.size(); ++i){ for (int i = 0; i != det.size(); ++i) {
det.setSubExptime(time[i], {i}); det.setSubExptime(time[i], {i});
} }
}else{ } else {
REQUIRE_THROWS(proxy.Call("subexptime", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("subexptime", {}, -1, GET));
REQUIRE_THROWS(proxy.Call("subexptime", {"2.13"}, -1, PUT)); REQUIRE_THROWS(proxy.Call("subexptime", {"2.13"}, -1, PUT));
} }
@ -137,32 +176,29 @@ TEST_CASE("subdeadtime", "[.cmd]") {
Detector det; Detector det;
CmdProxy proxy(&det); CmdProxy proxy(&det);
auto det_type = det.getDetectorType().squash(); auto det_type = det.getDetectorType().squash();
if (det_type == defs::EIGER){ if (det_type == defs::EIGER) {
auto time = det.getSubDeadTime(); auto time = det.getSubDeadTime();
std::ostringstream oss1, oss2; std::ostringstream oss1, oss2;
proxy.Call("subdeadtime", {"500us"}, -1, PUT, oss1); proxy.Call("subdeadtime", {"500us"}, -1, PUT, oss1);
REQUIRE(oss1.str() == "subdeadtime 500us\n"); REQUIRE(oss1.str() == "subdeadtime 500us\n");
proxy.Call("subdeadtime", {}, -1, GET, oss2); proxy.Call("subdeadtime", {}, -1, GET, oss2);
REQUIRE(oss2.str() == "subdeadtime 500us\n"); REQUIRE(oss2.str() == "subdeadtime 500us\n");
for (int i = 0; i!=det.size(); ++i){ for (int i = 0; i != det.size(); ++i) {
det.setSubDeadTime(time[i], {i}); det.setSubDeadTime(time[i], {i});
} }
}else{ } else {
REQUIRE_THROWS(proxy.Call("subdeadtime", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("subdeadtime", {}, -1, GET));
REQUIRE_THROWS(proxy.Call("subdeadtime", {"2.13"}, -1, PUT)); REQUIRE_THROWS(proxy.Call("subdeadtime", {"2.13"}, -1, PUT));
} }
} }
TEST_CASE("tengiga", "[.cmd]") { TEST_CASE("tengiga", "[.cmd]") {
Detector det; Detector det;
CmdProxy proxy(&det); CmdProxy proxy(&det);
auto det_type = det.getDetectorType().squash(); auto det_type = det.getDetectorType().squash();
if (det_type == defs::EIGER || det_type == defs::CHIPTESTBOARD){ if (det_type == defs::EIGER || det_type == defs::CHIPTESTBOARD) {
auto tengiga = det.getTenGiga(); auto tengiga = det.getTenGiga();
det.setTenGiga(false); det.setTenGiga(false);
@ -172,7 +208,7 @@ TEST_CASE("tengiga", "[.cmd]") {
proxy.Call("tengiga", {}, -1, GET, oss2); proxy.Call("tengiga", {}, -1, GET, oss2);
REQUIRE(oss2.str() == "tengiga 1\n"); REQUIRE(oss2.str() == "tengiga 1\n");
for (int i = 0; i!=det.size(); ++i){ for (int i = 0; i != det.size(); ++i) {
det.setTenGiga(tengiga[i], {i}); det.setTenGiga(tengiga[i], {i});
} }
} }

View File

@ -14,8 +14,7 @@ using sls::Detector;
using test::GET; using test::GET;
using test::PUT; using test::PUT;
TEST_CASE("Unknown command", "[.cmd]"){ TEST_CASE("Unknown command", "[.cmd]") {
Detector det; Detector det;
CmdProxy proxy(&det); CmdProxy proxy(&det);
@ -2799,8 +2798,6 @@ TEST_CASE("stopport", "[.cmd]") {
// } // }
// } // }
// TEST_CASE("measuredsubperiod", "[.cmd][.eiger]") { // TEST_CASE("measuredsubperiod", "[.cmd][.eiger]") {
// if (test::type == slsDetectorDefs::EIGER) { // if (test::type == slsDetectorDefs::EIGER) {
// REQUIRE_NOTHROW(multiSlsDetectorClient("frames 1", PUT)); // REQUIRE_NOTHROW(multiSlsDetectorClient("frames 1", PUT));
@ -2839,8 +2836,6 @@ TEST_CASE("stopport", "[.cmd]") {
// } // }
// } // }
// TEST_CASE("readnlines", "[.cmd][.eiger]") { // TEST_CASE("readnlines", "[.cmd][.eiger]") {
// if (test::type == slsDetectorDefs::EIGER) { // if (test::type == slsDetectorDefs::EIGER) {
// { // {
@ -3047,12 +3042,6 @@ TEST_CASE("stopport", "[.cmd]") {
// oss)); s = oss.str(); REQUIRE_NOTHROW(multiSlsDetectorClient(s, PUT)); // oss)); s = oss.str(); REQUIRE_NOTHROW(multiSlsDetectorClient(s, PUT));
// } // }
TEST_CASE("zmqip", "[.cmd]") { TEST_CASE("zmqip", "[.cmd]") {
Detector det; Detector det;
CmdProxy proxy(&det); CmdProxy proxy(&det);
@ -3064,40 +3053,55 @@ TEST_CASE("zmqip", "[.cmd]") {
proxy.Call("zmqip", {zmqip[0].str()}, 0, PUT, oss2); proxy.Call("zmqip", {zmqip[0].str()}, 0, PUT, oss2);
REQUIRE(oss2.str() == "zmqip " + zmqip[0].str() + '\n'); REQUIRE(oss2.str() == "zmqip " + zmqip[0].str() + '\n');
for (int i = 0; i!=det.size(); ++i){ for (int i = 0; i != det.size(); ++i) {
det.setRxZmqIP(zmqip[i], {i}); det.setRxZmqIP(zmqip[i], {i});
} }
} }
// TEST_CASE("zmqport", "[.cmd]") { TEST_CASE("zmqport") {
// multiSlsDetector d; Detector det;
// int socketsperdetector = 1; CmdProxy proxy(&det);
// if (test::type == slsDetectorDefs::EIGER) {
// socketsperdetector *= 2; int socketsperdetector = 1;
// } else if (test::type == slsDetectorDefs::JUNGFRAU) { auto det_type = det.getDetectorType().squash();
// REQUIRE_NOTHROW(multiSlsDetectorClient("numinterfaces 2", PUT)); int prev;
// socketsperdetector *= 2; if (det_type == slsDetectorDefs::EIGER) {
// } socketsperdetector *= 2;
// int port = 3500; } else if (det_type == slsDetectorDefs::JUNGFRAU) {
// REQUIRE_NOTHROW(multiSlsDetectorClient("zmqport " + std::to_string(port), prev = det.getNumberofUDPInterfaces().squash();
// PUT)); for (int i = 0; i != d.size(); ++i) { det.setNumberofUDPInterfaces(2);
// std::ostringstream oss; socketsperdetector *= 2;
// REQUIRE_NOTHROW(multiSlsDetectorClient(std::to_string(i) + }
// ":zmqport", GET, nullptr, oss)); REQUIRE(oss.str() == "zmqport " + int port = 3500;
// std::to_string(port + i * socketsperdetector) + '\n'); auto port_str = std::to_string(port);
// } {
// port = 1954; std::ostringstream oss;
// REQUIRE_NOTHROW(multiSlsDetectorClient("zmqport " + std::to_string(port), proxy.Call("zmqport", {port_str}, -1, PUT, oss);
// PUT)); for (int i = 0; i != d.size(); ++i) { REQUIRE(oss.str() == "zmqport " + port_str + '\n');
// std::ostringstream oss; }
// REQUIRE_NOTHROW(multiSlsDetectorClient(std::to_string(i) + for (int i = 0; i != det.size(); ++i) {
// ":zmqport", GET, nullptr, oss)); REQUIRE(oss.str() == "zmqport " + std::ostringstream oss;
// std::to_string(port + i * socketsperdetector) + '\n'); proxy.Call("zmqport", {}, i, GET, oss);
// } REQUIRE(oss.str() == "zmqport " + std::to_string(port + i * socketsperdetector) + '\n');
// if (test::type == slsDetectorDefs::JUNGFRAU) { }
// REQUIRE_NOTHROW(multiSlsDetectorClient("numinterfaces 1", PUT));
// } 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 == slsDetectorDefs::JUNGFRAU) {
det.setNumberofUDPInterfaces(prev);
}
}
TEST_CASE("fpath", "[.cmd]") { TEST_CASE("fpath", "[.cmd]") {
Detector det; Detector det;
@ -3134,7 +3138,6 @@ TEST_CASE("fformat", "[.cmd]") {
} }
} }
// TEST_CASE("txndelay", "[.cmd][.eiger][.jungfrau]") { // TEST_CASE("txndelay", "[.cmd][.eiger][.jungfrau]") {
// if (test::type == slsDetectorDefs::EIGER) { // if (test::type == slsDetectorDefs::EIGER) {
// { // {
@ -3216,8 +3219,6 @@ TEST_CASE("fformat", "[.cmd]") {
// } // }
// } // }
// TEST_CASE("network", "[.cmd]") { // TEST_CASE("network", "[.cmd]") {
// /* {TODO custom srcip in globals // /* {TODO custom srcip in globals
// REQUIRE_NOTHROW(multiSlsDetectorClient("0:udp_srcip 129.129.205.203", // REQUIRE_NOTHROW(multiSlsDetectorClient("0:udp_srcip 129.129.205.203",