eiger test

This commit is contained in:
Erik Frojdh 2019-12-05 11:00:55 +01:00
parent 6765eb0c94
commit d9ae9a8cc6
2 changed files with 87 additions and 81 deletions

View File

@ -44,8 +44,8 @@ TEST_CASE("Eiger transmission delay") {
}
}
//Reset to previous values
for (int i=0; i!=det.size(); ++i){
// Reset to previous values
for (int i = 0; i != det.size(); ++i) {
det.setTransmissionDelayFrame(frame[i]);
det.setTransmissionDelayLeft(left[i]);
det.setTransmissionDelayRight(right[i]);
@ -84,31 +84,81 @@ TEST_CASE("dr", "[.cmd]") {
}
}
// TEST_CASE("interruptsubframe", "[.cmd][.eiger]") {
TEST_CASE("interruptsubframe", "[.cmd][!mayfail]") {
// TODO! Fix this for virtual server
Detector det;
CmdProxy proxy(&det);
auto det_type = det.getDetectorType().squash();
if (det_type == defs::EIGER) {
auto previous = det.getInterruptSubframe();
// Detector det;
// CmdProxy proxy(&det);
std::ostringstream oss1, oss2, oss3;
proxy.Call("interruptsubframe", {"1"}, -1, PUT, oss1);
REQUIRE(oss1.str() == "interruptsubframe 1\n");
proxy.Call("interruptsubframe", {}, -1, GET, oss2);
REQUIRE(oss2.str() == "interruptsubframe 1\n");
proxy.Call("interruptsubframe", {"0"}, -1, PUT, oss3);
REQUIRE(oss3.str() == "interruptsubframe 0\n");
for (int i = 0; i != det.size(); ++i) {
det.setInterruptSubframe(previous[i], {i});
}
// auto det_type = det.getDetectorType().squash();
// if (det_type == defs::EIGER){
// auto previous = det.getInterruptSubframe();
} else {
REQUIRE_THROWS(proxy.Call("interruptsubframe", {}, -1, GET));
REQUIRE_THROWS(proxy.Call("interruptsubframe", {"1"}, -1, PUT));
}
}
// std::ostringstream oss1, oss2, oss3;
// proxy.Call("interruptsubframe", {"1"}, -1, PUT, oss1);
// REQUIRE(oss1.str() == "interruptsubframe 1\n");
// proxy.Call("interruptsubframe", {}, -1, GET, oss2);
// REQUIRE(oss2.str() == "interruptsubframe 1\n");
// proxy.Call("interruptsubframe", {"0"}, -1, PUT, oss3);
// REQUIRE(oss3.str() == "interruptsubframe 0\n");
// for (int i=0; i!=det.size(); ++i){
// det.setInterruptSubframe(previous[i], {i});
// }
TEST_CASE("overflow", "[.cmd]") {
Detector det;
CmdProxy proxy(&det);
auto det_type = det.getDetectorType().squash();
if (det_type == defs::EIGER) {
auto previous = det.getOverFlowMode();
// }else{
// REQUIRE_THROWS(proxy.Call("interruptsubframe", {}, -1, GET));
// REQUIRE_THROWS(proxy.Call("interruptsubframe", {"1"}, -1, PUT));
// }
// }
std::ostringstream oss1, oss2, oss3;
proxy.Call("overflow", {"1"}, -1, PUT, oss1);
REQUIRE(oss1.str() == "overflow 1\n");
proxy.Call("overflow", {}, -1, GET, oss2);
REQUIRE(oss2.str() == "overflow 1\n");
proxy.Call("overflow", {"0"}, -1, PUT, oss3);
REQUIRE(oss3.str() == "overflow 0\n");
for (int i = 0; i != det.size(); ++i) {
det.setOverFlowMode(previous[i], {i});
}
} else {
REQUIRE_THROWS(proxy.Call("overflow", {}, -1, GET));
REQUIRE_THROWS(proxy.Call("overflow", {"1"}, -1, PUT));
}
}
TEST_CASE("trimen", "[.cmd][.this]") {
//TODO! Also Mythen?
Detector det;
CmdProxy proxy(&det);
auto det_type = det.getDetectorType().squash();
if (det_type == defs::EIGER) {
auto previous = det.getTrimEnergies();
std::ostringstream oss1, oss2;
proxy.Call("trimen", {"4500", "5400", "6400"}, -1, PUT, oss1);
REQUIRE(oss1.str() == "trimen [4500, 5400, 6400]\n");
proxy.Call("trimen", {}, -1, GET, oss2);
REQUIRE(oss2.str() == "trimen [4500, 5400, 6400]\n");
for (int i = 0; i!=det.size(); ++i){
det.setTrimEnergies(previous[i], {i});
}
} else {
REQUIRE_THROWS(proxy.Call("trimen", {"4500", "5400", "6400"}, -1, PUT));
REQUIRE_THROWS(proxy.Call("trimen", {}, -1, GET));
}
}
// TEST_CASE("threshold"{
// })
// TEST_CASE("activate", "[.cmd][.eiger]") {
// if (test::type == slsDetectorDefs::EIGER) {

View File

@ -21,6 +21,19 @@ TEST_CASE("Unknown command", "[.cmd]") {
REQUIRE_THROWS(proxy.Call("vsaevrreavv", {}, -1, PUT));
}
TEST_CASE("type", "[.cmd]"){
Detector det;
CmdProxy proxy(&det);
auto dt = det.getDetectorType().squash();
std::ostringstream oss;
proxy.Call("type", {}, -1, GET, oss);
auto ans = oss.str().erase(0, strlen("type "));
REQUIRE(ans == sls::ToString(dt) + '\n');
REQUIRE(dt == test::type);
}
// TEST_CASE("vchip", "[.cmd]") {
// int prev_val = 0;
@ -2884,22 +2897,7 @@ TEST_CASE("stopport", "[.cmd]") {
// }
// }
// TEST_CASE("trimen", "[.cmd][.eiger]") {
// if (test::type == slsDetectorDefs::EIGER) {
// // require globals for trimen?
// REQUIRE_NOTHROW(multiSlsDetectorClient("trimen 4500 5400 6400",
// PUT));
// {
// std::ostringstream oss;
// REQUIRE_NOTHROW(multiSlsDetectorClient("0:trimen", GET, nullptr,
// oss)); REQUIRE(oss.str() == "trimen [4500, 5400, 6400]\n");
// }
// REQUIRE_NOTHROW(multiSlsDetectorClient("threshold 4500 standard",
// PUT));
// } else {
// REQUIRE_THROWS(multiSlsDetectorClient("trimen", GET));
// }
// }
// TEST_CASE("trimval", "[.cmd][.eiger]") {
// if (test::type == slsDetectorDefs::EIGER) {
@ -2944,49 +2942,7 @@ TEST_CASE("stopport", "[.cmd]") {
// }
// }
// TEST_CASE("storeinram", "[.cmd][.eiger]") {
// if (test::type == slsDetectorDefs::EIGER) {
// {
// std::ostringstream oss;
// REQUIRE_NOTHROW(multiSlsDetectorClient("storeinram 1", PUT,
// nullptr, oss)); REQUIRE(oss.str() == "storeinram 1\n");
// }
// {
// std::ostringstream oss;
// REQUIRE_NOTHROW(multiSlsDetectorClient("storeinram", GET,
// nullptr, oss)); REQUIRE(oss.str() == "storeinram 1\n");
// }
// {
// std::ostringstream oss;
// REQUIRE_NOTHROW(multiSlsDetectorClient("storeinram 0", PUT,
// nullptr, oss)); REQUIRE(oss.str() == "storeinram 0\n");
// }
// } else {
// REQUIRE_THROWS(multiSlsDetectorClient("storeinram", GET));
// }
// }
// TEST_CASE("overflow", "[.cmd][.eiger]") {
// if (test::type == slsDetectorDefs::EIGER) {
// {
// std::ostringstream oss;
// REQUIRE_NOTHROW(multiSlsDetectorClient("overflow 1", PUT,
// nullptr, oss)); REQUIRE(oss.str() == "overflow 1\n");
// }
// {
// std::ostringstream oss;
// REQUIRE_NOTHROW(multiSlsDetectorClient("overflow", GET, nullptr,
// oss)); REQUIRE(oss.str() == "overflow 1\n");
// }
// {
// std::ostringstream oss;
// REQUIRE_NOTHROW(multiSlsDetectorClient("overflow 0", PUT,
// nullptr, oss)); REQUIRE(oss.str() == "overflow 0\n");
// }
// } else {
// REQUIRE_THROWS(multiSlsDetectorClient("overflow", GET));
// }
// }
// TEST_CASE("parallel", "[.cmd][.eiger]") {
// if (test::type == slsDetectorDefs::EIGER) {