mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-07-13 19:31:49 +02:00
fixed shared memeory tests to include current env and fixed prints for errors
Some checks failed
Native CMake Build / Configure and build using cmake (push) Failing after 11s
Some checks failed
Native CMake Build / Configure and build using cmake (push) Failing after 11s
This commit is contained in:
@ -18,11 +18,16 @@ struct Data {
|
|||||||
constexpr int shm_id = 10;
|
constexpr int shm_id = 10;
|
||||||
|
|
||||||
TEST_CASE("Create SharedMemory read and write", "[detector]") {
|
TEST_CASE("Create SharedMemory read and write", "[detector]") {
|
||||||
|
const char *env_p = std::getenv("SLSDETNAME");
|
||||||
|
std::string env_name = env_p ? ("_" + std::string(env_p)) : "";
|
||||||
|
|
||||||
SharedMemory<Data> shm(shm_id, -1);
|
SharedMemory<Data> shm(shm_id, -1);
|
||||||
|
if (shm.exists()) {
|
||||||
|
shm.removeSharedMemory();
|
||||||
|
}
|
||||||
shm.createSharedMemory();
|
shm.createSharedMemory();
|
||||||
CHECK(shm.getName() == std::string("/slsDetectorPackage_detector_") +
|
CHECK(shm.getName() == std::string("/slsDetectorPackage_detector_") +
|
||||||
std::to_string(shm_id));
|
std::to_string(shm_id) + env_name);
|
||||||
|
|
||||||
shm()->x = 3;
|
shm()->x = 3;
|
||||||
shm()->y = 5.7;
|
shm()->y = 5.7;
|
||||||
@ -90,10 +95,12 @@ TEST_CASE("Open two shared memories to the same place", "[detector]") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("Move SharedMemory", "[detector]") {
|
TEST_CASE("Move SharedMemory", "[detector]") {
|
||||||
|
const char *env_p = std::getenv("SLSDETNAME");
|
||||||
|
std::string env_name = env_p ? ("_" + std::string(env_p)) : "";
|
||||||
|
|
||||||
SharedMemory<Data> shm(shm_id, -1);
|
SharedMemory<Data> shm(shm_id, -1);
|
||||||
CHECK(shm.getName() == std::string("/slsDetectorPackage_detector_") +
|
CHECK(shm.getName() == std::string("/slsDetectorPackage_detector_") +
|
||||||
std::to_string(shm_id));
|
std::to_string(shm_id) + env_name);
|
||||||
shm.createSharedMemory();
|
shm.createSharedMemory();
|
||||||
shm()->x = 9;
|
shm()->x = 9;
|
||||||
|
|
||||||
@ -104,15 +111,19 @@ TEST_CASE("Move SharedMemory", "[detector]") {
|
|||||||
REQUIRE_THROWS(
|
REQUIRE_THROWS(
|
||||||
shm()); // trying to access should throw instead of returning a nullptr
|
shm()); // trying to access should throw instead of returning a nullptr
|
||||||
CHECK(shm2.getName() == std::string("/slsDetectorPackage_detector_") +
|
CHECK(shm2.getName() == std::string("/slsDetectorPackage_detector_") +
|
||||||
std::to_string(shm_id));
|
std::to_string(shm_id) + env_name);
|
||||||
shm2.removeSharedMemory();
|
shm2.removeSharedMemory();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("Create several shared memories", "[detector]") {
|
TEST_CASE("Create several shared memories", "[detector]") {
|
||||||
|
const char *env_p = std::getenv("SLSDETNAME");
|
||||||
|
std::string env_name = env_p ? ("_" + std::string(env_p)) : "";
|
||||||
|
|
||||||
constexpr int N = 5;
|
constexpr int N = 5;
|
||||||
std::vector<SharedMemory<int>> v;
|
std::vector<SharedMemory<int>> v;
|
||||||
v.reserve(N);
|
v.reserve(N);
|
||||||
for (int i = 0; i != N; ++i) {
|
for (int i = 0; i != N; ++i) {
|
||||||
|
std::cout << "i:" << i << std::endl;
|
||||||
v.emplace_back(shm_id + i, -1);
|
v.emplace_back(shm_id + i, -1);
|
||||||
CHECK(v[i].exists() == false);
|
CHECK(v[i].exists() == false);
|
||||||
v[i].createSharedMemory();
|
v[i].createSharedMemory();
|
||||||
@ -123,7 +134,7 @@ TEST_CASE("Create several shared memories", "[detector]") {
|
|||||||
for (int i = 0; i != N; ++i) {
|
for (int i = 0; i != N; ++i) {
|
||||||
CHECK(*v[i]() == i);
|
CHECK(*v[i]() == i);
|
||||||
CHECK(v[i].getName() == std::string("/slsDetectorPackage_detector_") +
|
CHECK(v[i].getName() == std::string("/slsDetectorPackage_detector_") +
|
||||||
std::to_string(i + shm_id));
|
std::to_string(i + shm_id) + env_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i != N; ++i) {
|
for (int i = 0; i != N; ++i) {
|
||||||
@ -133,8 +144,12 @@ TEST_CASE("Create several shared memories", "[detector]") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("Create create a shared memory with a tag") {
|
TEST_CASE("Create create a shared memory with a tag") {
|
||||||
|
const char *env_p = std::getenv("SLSDETNAME");
|
||||||
|
std::string env_name = env_p ? ("_" + std::string(env_p)) : "";
|
||||||
|
|
||||||
SharedMemory<int> shm(0, -1, "ctbdacs");
|
SharedMemory<int> shm(0, -1, "ctbdacs");
|
||||||
REQUIRE(shm.getName() == "/slsDetectorPackage_detector_0_ctbdacs");
|
REQUIRE(shm.getName() ==
|
||||||
|
"/slsDetectorPackage_detector_0" + env_name + "_ctbdacs");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("Create create a shared memory with a tag when SLSDETNAME is set") {
|
TEST_CASE("Create create a shared memory with a tag when SLSDETNAME is set") {
|
||||||
|
@ -128,14 +128,16 @@ def startCmdTests(name, fp, fname):
|
|||||||
try:
|
try:
|
||||||
subprocess.run(cmd.split(), stdout=fp, stderr=fp, check=True, text=True)
|
subprocess.run(cmd.split(), stdout=fp, stderr=fp, check=True, text=True)
|
||||||
except subprocess.CalledProcessError as e:
|
except subprocess.CalledProcessError as e:
|
||||||
Log(Fore.RED, f'Command tests failed for {name}:\n{e}')
|
pass
|
||||||
raise
|
|
||||||
|
|
||||||
with open (fname, 'r') as f:
|
with open (fname, 'r') as f:
|
||||||
for line in f:
|
for line in f:
|
||||||
if "FAILED" in line:
|
if "FAILED" in line:
|
||||||
msg = 'Cmd tests failed for ' + name + '!!!'
|
msg = 'Cmd tests failed for ' + name + '!!!'
|
||||||
|
sys.stdout = original_stdout
|
||||||
Log(Fore.RED, msg)
|
Log(Fore.RED, msg)
|
||||||
|
Log(Fore.RED, line)
|
||||||
|
sys.stdout = fp
|
||||||
raise Exception(msg)
|
raise Exception(msg)
|
||||||
|
|
||||||
Log(Fore.GREEN, 'Cmd Tests successful for ' + name)
|
Log(Fore.GREEN, 'Cmd Tests successful for ' + name)
|
||||||
@ -146,14 +148,15 @@ def startGeneralTests(fp, fname):
|
|||||||
try:
|
try:
|
||||||
subprocess.run(cmd.split(), stdout=fp, stderr=fp, check=True, text=True)
|
subprocess.run(cmd.split(), stdout=fp, stderr=fp, check=True, text=True)
|
||||||
except subprocess.CalledProcessError as e:
|
except subprocess.CalledProcessError as e:
|
||||||
Log(Fore.RED, f'General tests failed:\n{e}')
|
pass
|
||||||
raise
|
|
||||||
|
|
||||||
with open (fname, 'r') as f:
|
with open (fname, 'r') as f:
|
||||||
for line in f:
|
for line in f:
|
||||||
if "FAILED" in line:
|
if "FAILED" in line:
|
||||||
msg = 'General tests failed !!!'
|
msg = 'General tests failed !!!'
|
||||||
Log(Fore.RED, msg)
|
sys.stdout = original_stdout
|
||||||
|
Log(Fore.RED, msg + '\n' + line)
|
||||||
|
sys.stdout = fp
|
||||||
raise Exception(msg)
|
raise Exception(msg)
|
||||||
|
|
||||||
Log(Fore.GREEN, 'General Tests successful')
|
Log(Fore.GREEN, 'General Tests successful')
|
||||||
@ -206,6 +209,7 @@ with open(fname, 'w') as fp:
|
|||||||
startGeneralTests(fp, file_results)
|
startGeneralTests(fp, file_results)
|
||||||
killAllStaleProcesses(fp)
|
killAllStaleProcesses(fp)
|
||||||
|
|
||||||
|
testError = False
|
||||||
for server in servers:
|
for server in servers:
|
||||||
try:
|
try:
|
||||||
# print to terminal for progress
|
# print to terminal for progress
|
||||||
@ -230,12 +234,14 @@ with open(fname, 'w') as fp:
|
|||||||
sys.stdout = original_stdout
|
sys.stdout = original_stdout
|
||||||
sys.stderr = original_stderr
|
sys.stderr = original_stderr
|
||||||
Log(Fore.RED, f'Exception caught while testing {server}. Cleaning up...')
|
Log(Fore.RED, f'Exception caught while testing {server}. Cleaning up...')
|
||||||
|
testError = True
|
||||||
break
|
break
|
||||||
|
|
||||||
# redirect to terminal
|
# redirect to terminal
|
||||||
sys.stdout = original_stdout
|
sys.stdout = original_stdout
|
||||||
sys.stderr = original_stderr
|
sys.stderr = original_stderr
|
||||||
Log(Fore.GREEN, 'Passed all tests for virtual detectors \n' + str(servers))
|
if not testError:
|
||||||
|
Log(Fore.GREEN, 'Passed all tests for virtual detectors \n' + str(servers))
|
||||||
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@ -243,7 +249,6 @@ with open(fname, 'w') as fp:
|
|||||||
sys.stdout = original_stdout
|
sys.stdout = original_stdout
|
||||||
sys.stderr = original_stderr
|
sys.stderr = original_stderr
|
||||||
Log(Fore.RED, f'Exception caught with general testing. Cleaning up...')
|
Log(Fore.RED, f'Exception caught with general testing. Cleaning up...')
|
||||||
Log(Fore.RED, str(e))
|
|
||||||
cleanSharedmemory(sys.stdout)
|
cleanSharedmemory(sys.stdout)
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user