From c6b664b25b1cf8c89071590ea8d3a5c792e4ba13 Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Wed, 17 Jun 2020 08:28:24 +0200 Subject: [PATCH] added tests --- slsDetectorSoftware/tests/test-Module.cpp | 51 +++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/slsDetectorSoftware/tests/test-Module.cpp b/slsDetectorSoftware/tests/test-Module.cpp index 47d11e395..747bf90e8 100644 --- a/slsDetectorSoftware/tests/test-Module.cpp +++ b/slsDetectorSoftware/tests/test-Module.cpp @@ -1,8 +1,59 @@ #include "Module.h" +#include "SharedMemory.h" #include "catch.hpp" using dt = slsDetectorDefs::detectorType; TEST_CASE("Construction with a defined detector type") { sls::Module m(dt::EIGER); REQUIRE(m.getDetectorType() == dt::EIGER); + m.freeSharedMemory(); // clean up +} + +TEST_CASE("Read back detector type from shm"){ + // Create specific detector in order to create shm + sls::Module m(dt::JUNGFRAU); + + // New detector that reads type from shm + sls::Module m2; + REQUIRE(m2.getDetectorType()== dt::JUNGFRAU); + + // Now both objects point to the same shm so we can only + // free one! + m2.freeSharedMemory(); +} + +TEST_CASE("Is shm fixed pattern shm compatible"){ + sls::Module m(dt::JUNGFRAU); + + // Should be true since we just created the shm + REQUIRE(m.isFixedPatternSharedMemoryCompatible() == true); + + // Set shm version to 0 + sls::SharedMemory shm(0,0); + REQUIRE(shm.IsExisting()== true); + shm.OpenSharedMemory(); + shm()->shmversion = 0; + + // Should fail since version is set to 0 + REQUIRE(m.isFixedPatternSharedMemoryCompatible() == false); + + m.freeSharedMemory(); +} + +TEST_CASE("Get default control port"){ + sls::Module m(dt::MYTHEN3); + REQUIRE(m.getControlPort() == 1952); + m.freeSharedMemory(); +} + +TEST_CASE("Get default stop port"){ + sls::Module m(dt::GOTTHARD2); + REQUIRE(m.getStopPort() == 1953); + m.freeSharedMemory(); +} + +TEST_CASE("Get default receiver TCP port"){ + sls::Module m(dt::MYTHEN3); + REQUIRE(m.getReceiverPort() == 1954); + m.freeSharedMemory(); } \ No newline at end of file