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::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]") {
Detector det;
CmdProxy proxy(&det);
@ -117,17 +156,17 @@ TEST_CASE("subexptime", "[.cmd]") {
CmdProxy proxy(&det);
auto det_type = det.getDetectorType().squash();
if (det_type == defs::EIGER){
if (det_type == defs::EIGER) {
auto time = det.getSubExptime();
std::ostringstream oss1, oss2;
proxy.Call("subexptime", {"2.5us"}, -1, PUT, oss1);
REQUIRE(oss1.str() == "subexptime 2.5us\n");
proxy.Call("subexptime", {}, -1, GET, oss2);
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});
}
}else{
} else {
REQUIRE_THROWS(proxy.Call("subexptime", {}, -1, GET));
REQUIRE_THROWS(proxy.Call("subexptime", {"2.13"}, -1, PUT));
}
@ -137,32 +176,29 @@ TEST_CASE("subdeadtime", "[.cmd]") {
Detector det;
CmdProxy proxy(&det);
auto det_type = det.getDetectorType().squash();
if (det_type == defs::EIGER){
if (det_type == defs::EIGER) {
auto time = det.getSubDeadTime();
std::ostringstream oss1, oss2;
proxy.Call("subdeadtime", {"500us"}, -1, PUT, oss1);
REQUIRE(oss1.str() == "subdeadtime 500us\n");
proxy.Call("subdeadtime", {}, -1, GET, oss2);
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});
}
}else{
} else {
REQUIRE_THROWS(proxy.Call("subdeadtime", {}, -1, GET));
REQUIRE_THROWS(proxy.Call("subdeadtime", {"2.13"}, -1, PUT));
}
}
TEST_CASE("tengiga", "[.cmd]") {
Detector det;
CmdProxy proxy(&det);
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();
det.setTenGiga(false);
@ -172,7 +208,7 @@ TEST_CASE("tengiga", "[.cmd]") {
proxy.Call("tengiga", {}, -1, GET, oss2);
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});
}
}

View File

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