Skip to content
Snippets Groups Projects
Commit db0e21b3 authored by Jens Georg's avatar Jens Georg Committed by Martin Christoph Hierholzer
Browse files

Fix testPropagateDataFaultFlag

parent b8b0dd6e
No related branches found
No related tags found
No related merge requests found
...@@ -528,12 +528,11 @@ BOOST_AUTO_TEST_CASE(testInvalidTrigger) { ...@@ -528,12 +528,11 @@ BOOST_AUTO_TEST_CASE(testInvalidTrigger) {
deviceRegister = 20; deviceRegister = 20;
deviceRegister.write(); deviceRegister.write();
auto trigger = test.getScalar<int>("trigger"); auto trigger = test.getVoid("trigger");
auto result = test.getScalar<int>("i3"); // Cs hook into reg: m1.i3 auto result = test.getScalar<int>("/m1/i3"); // Cs hook into reg: m1.i3
//----------------------------------------------------------------// //----------------------------------------------------------------//
// trigger works as expected // trigger works as expected
trigger = 1;
trigger.write(); trigger.write();
test.stepApplication(); test.stepApplication();
...@@ -546,7 +545,6 @@ BOOST_AUTO_TEST_CASE(testInvalidTrigger) { ...@@ -546,7 +545,6 @@ BOOST_AUTO_TEST_CASE(testInvalidTrigger) {
// faulty trigger // faulty trigger
deviceRegister = 30; deviceRegister = 30;
deviceRegister.write(); deviceRegister.write();
trigger = 1;
trigger.setDataValidity(ctk::DataValidity::faulty); trigger.setDataValidity(ctk::DataValidity::faulty);
trigger.write(); trigger.write();
...@@ -561,7 +559,6 @@ BOOST_AUTO_TEST_CASE(testInvalidTrigger) { ...@@ -561,7 +559,6 @@ BOOST_AUTO_TEST_CASE(testInvalidTrigger) {
deviceRegister = 50; deviceRegister = 50;
deviceRegister.write(); deviceRegister.write();
trigger = 1;
trigger.setDataValidity(ctk::DataValidity::ok); trigger.setDataValidity(ctk::DataValidity::ok);
trigger.write(); trigger.write();
...@@ -583,10 +580,10 @@ struct Fixture_noTestableMode { ...@@ -583,10 +580,10 @@ struct Fixture_noTestableMode {
ChimeraTK::BackendFactory::getInstance().createBackend(TestApplication3::ExceptionDummyCDD1))), ChimeraTK::BackendFactory::getInstance().createBackend(TestApplication3::ExceptionDummyCDD1))),
device2DummyBackend(boost::dynamic_pointer_cast<ctk::ExceptionDummy>( device2DummyBackend(boost::dynamic_pointer_cast<ctk::ExceptionDummy>(
ChimeraTK::BackendFactory::getInstance().createBackend(TestApplication3::ExceptionDummyCDD2))) { ChimeraTK::BackendFactory::getInstance().createBackend(TestApplication3::ExceptionDummyCDD2))) {
device1Status.replace( device1Status.replace(test.getScalar<int32_t>(ctk::RegisterPath("/Devices") /
test.getScalar<int32_t>(ctk::RegisterPath("/Devices") / TestApplication3::ExceptionDummyCDD1 / "status")); ctk::Utilities::stripName(TestApplication3::ExceptionDummyCDD1, false) / "status"));
device2Status.replace( device2Status.replace(test.getScalar<int32_t>(ctk::RegisterPath("/Devices") /
test.getScalar<int32_t>(ctk::RegisterPath("/Devices") / TestApplication3::ExceptionDummyCDD2 / "status")); ctk::Utilities::stripName(TestApplication3::ExceptionDummyCDD2, false) / "status"));
device1DummyBackend->open(); device1DummyBackend->open();
device2DummyBackend->open(); device2DummyBackend->open();
...@@ -697,19 +694,18 @@ BOOST_FIXTURE_TEST_CASE(testReadDeviceWithTrigger, Fixture_noTestableMode) { ...@@ -697,19 +694,18 @@ BOOST_FIXTURE_TEST_CASE(testReadDeviceWithTrigger, Fixture_noTestableMode) {
std::cout << "testReadDeviceWithTrigger" << std::endl; std::cout << "testReadDeviceWithTrigger" << std::endl;
waitForDevices(); waitForDevices();
auto trigger = test.getScalar<int>("trigger"); auto trigger = test.getVoid("trigger");
auto fromDevice = test.getScalar<int>("i3"); // cs side display: m1.i3 auto fromDevice = test.getScalar<int>("/m1/i3"); // cs side display: m1.i3
//----------------------------------------------------------------// //----------------------------------------------------------------//
fromDevice.read(); // there is an initial value fromDevice.read(); // there is an initial value
BOOST_CHECK_EQUAL(fromDevice, 0); BOOST_CHECK_EQUAL(fromDevice, 0);
// trigger works as expected
trigger = 1;
auto deviceRegister = ctk::Device(app.ExceptionDummyCDD1).getScalarRegisterAccessor<int>("/m1/i3/DUMMY_WRITEABLE"); auto deviceRegister = ctk::Device(app.ExceptionDummyCDD1).getScalarRegisterAccessor<int>("/m1/i3/DUMMY_WRITEABLE");
deviceRegister = 30; deviceRegister = 30;
deviceRegister.write(); deviceRegister.write();
// trigger works as expected
trigger.write(); trigger.write();
fromDevice.read(); fromDevice.read();
...@@ -723,7 +719,6 @@ BOOST_FIXTURE_TEST_CASE(testReadDeviceWithTrigger, Fixture_noTestableMode) { ...@@ -723,7 +719,6 @@ BOOST_FIXTURE_TEST_CASE(testReadDeviceWithTrigger, Fixture_noTestableMode) {
device1DummyBackend->throwExceptionRead = true; device1DummyBackend->throwExceptionRead = true;
trigger = 1;
trigger.write(); trigger.write();
fromDevice.read(); fromDevice.read();
...@@ -873,8 +868,8 @@ BOOST_FIXTURE_TEST_CASE(testDataFlowOnDeviceException, Fixture_noTestableMode) { ...@@ -873,8 +868,8 @@ BOOST_FIXTURE_TEST_CASE(testDataFlowOnDeviceException, Fixture_noTestableMode) {
BOOST_CHECK_EQUAL(m2_result, 1101); BOOST_CHECK_EQUAL(m2_result, 1101);
BOOST_CHECK(m2_result.dataValidity() == ctk::DataValidity::faulty); BOOST_CHECK(m2_result.dataValidity() == ctk::DataValidity::faulty);
auto deviceStatus = auto deviceStatus = test.getScalar<int32_t>(ctk::RegisterPath("/Devices") /
test.getScalar<int32_t>(ctk::RegisterPath("/Devices") / TestApplication3::ExceptionDummyCDD2 / "status"); ChimeraTK::Utilities::stripName(TestApplication3::ExceptionDummyCDD2, false) / "status");
// the device is still OK // the device is still OK
CHECK_EQUAL_TIMEOUT((deviceStatus.readLatest(), deviceStatus), 0, 10000); CHECK_EQUAL_TIMEOUT((deviceStatus.readLatest(), deviceStatus), 0, 10000);
...@@ -1010,8 +1005,8 @@ BOOST_AUTO_TEST_CASE(testDataValidPropagationOnException) { ...@@ -1010,8 +1005,8 @@ BOOST_AUTO_TEST_CASE(testDataValidPropagationOnException) {
auto pushInput = test.getScalar<int>("module/o1"); auto pushInput = test.getScalar<int>("module/o1");
auto result = test.getScalar<int>("module/Module3_result"); auto result = test.getScalar<int>("module/Module3_result");
auto deviceStatus = auto deviceStatus = test.getScalar<int32_t>(ctk::RegisterPath("/Devices") /
test.getScalar<int32_t>(ctk::RegisterPath("/Devices") / TestApplication4::ExceptionDummyCDD2 / "status"); ctk::Utilities::stripName(TestApplication3::ExceptionDummyCDD2, false) / "status");
pushInput = 10; pushInput = 10;
pushInput.write(); pushInput.write();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment