diff --git a/tests/executables_src/testDeviceExceptionFlagPropagation.cc b/tests/executables_src/testDeviceExceptionFlagPropagation.cc index 4fc907902fd781bb57cfe9d54751f4ea9f8d13ac..56dabcf6bf4515f71dda7cecae4fc7764fd555c8 100644 --- a/tests/executables_src/testDeviceExceptionFlagPropagation.cc +++ b/tests/executables_src/testDeviceExceptionFlagPropagation.cc @@ -4,12 +4,12 @@ using namespace boost::unit_test_framework; #include <ChimeraTK/DummyRegisterAccessor.h> +#include <ChimeraTK/ExceptionDevice.h> #include "Application.h" #include "ApplicationModule.h" #include "ControlSystemModule.h" #include "DeviceModule.h" -#include "ExceptionDevice.h" #include "PeriodicTrigger.h" #include "TestFacility.h" #include "VariableGroup.h" diff --git a/tests/executables_src/testDeviceInitialisationHandler.cc b/tests/executables_src/testDeviceInitialisationHandler.cc index 658bc66dea44e2c085b2b43524559d31c9502ab2..fbd4336c3e14a3c5c4a4951ebbb5d6a71a1c10e9 100644 --- a/tests/executables_src/testDeviceInitialisationHandler.cc +++ b/tests/executables_src/testDeviceInitialisationHandler.cc @@ -10,9 +10,9 @@ #include "DeviceModule.h" //#include "ScalarAccessor.h" #include "TestFacility.h" -#include "ExceptionDevice.h" #include <ChimeraTK/Device.h> +#include <ChimeraTK/ExceptionDevice.h> #include <stdlib.h> #include "check_timeout.h" diff --git a/tests/executables_src/testExceptionDummyDevice.cc b/tests/executables_src/testExceptionDummyDevice.cc deleted file mode 100644 index fd4231e6c50a9665b21fceeb06c317325118df9c..0000000000000000000000000000000000000000 --- a/tests/executables_src/testExceptionDummyDevice.cc +++ /dev/null @@ -1,56 +0,0 @@ -#define BOOST_TEST_MODULE testExceptionsDummy - -#include "ExceptionDevice.h" -#include <ChimeraTK/BackendFactory.h> -#include <ChimeraTK/Device.h> -#include <boost/test/included/unit_test.hpp> - -using namespace boost::unit_test_framework; -namespace ctk = ChimeraTK; - -auto exceptionDummy = boost::dynamic_pointer_cast<ExceptionDummy>(ctk::BackendFactory::getInstance().createBackend("(ExceptionDummy:1?map=test3.map)")); -ctk::Device device; - -BOOST_AUTO_TEST_CASE(testExceptionsDummyDevice) { - - // test general function - BOOST_CHECK(!device.isFunctional()); - device.open("(ExceptionDummy:1?map=test3.map)"); - BOOST_CHECK(device.isFunctional()); - - - // test throwExceptionRead - exceptionDummy->throwExceptionRead = true; - BOOST_CHECK(!device.isFunctional()); - BOOST_CHECK_THROW(device.read<int32_t>("/Integers/signed32"),ChimeraTK::runtime_error); - BOOST_CHECK(!device.isFunctional()); - BOOST_CHECK_THROW(device.open("(ExceptionDummy:1?map=test3.map)"),ChimeraTK::runtime_error); - BOOST_CHECK(!device.isFunctional()); - exceptionDummy->throwExceptionRead = false; - BOOST_CHECK(!device.isFunctional()); - device.open("(ExceptionDummy:1?map=test3.map)"); - BOOST_CHECK(device.isFunctional()); - - // test throwExceptionWrite - exceptionDummy->throwExceptionWrite = true; - BOOST_CHECK(!device.isFunctional()); - BOOST_CHECK_THROW(device.write<int32_t>("/Integers/signed32",0),ChimeraTK::runtime_error); - BOOST_CHECK(!device.isFunctional()); - BOOST_CHECK_THROW(device.open("(ExceptionDummy:1?map=test3.map)"),ChimeraTK::runtime_error); - BOOST_CHECK(!device.isFunctional()); - exceptionDummy->throwExceptionWrite = false; - BOOST_CHECK(!device.isFunctional()); - device.open("(ExceptionDummy:1?map=test3.map)"); - BOOST_CHECK(device.isFunctional()); - - // test throwExceptionOpen - exceptionDummy->throwExceptionOpen = true; - BOOST_CHECK(!device.isFunctional()); - BOOST_CHECK_THROW(device.open("(ExceptionDummy:1?map=test3.map)"),ChimeraTK::runtime_error); - BOOST_CHECK(!device.isFunctional()); - exceptionDummy->throwExceptionOpen = false; - BOOST_CHECK(!device.isFunctional()); - device.open("(ExceptionDummy:1?map=test3.map)"); - BOOST_CHECK(device.isFunctional()); - -} diff --git a/tests/executables_src/testExceptionHandling.cc b/tests/executables_src/testExceptionHandling.cc index 051c8179f6db17c60490d33a96ede82deced143b..78157d16bf5b46b841fdae357da36c74fb6c2715 100644 --- a/tests/executables_src/testExceptionHandling.cc +++ b/tests/executables_src/testExceptionHandling.cc @@ -9,12 +9,12 @@ #include <ChimeraTK/Device.h> #include <ChimeraTK/NDRegisterAccessor.h> #include <ChimeraTK/DummyRegisterAccessor.h> +#include <ChimeraTK/ExceptionDevice.h> #include "Application.h" #include "ApplicationModule.h" #include "ControlSystemModule.h" #include "DeviceModule.h" -#include "ExceptionDevice.h" #include "ScalarAccessor.h" #include "TestFacility.h" #include "check_timeout.h" diff --git a/tests/executables_src/testProcessVariableRecovery.cc b/tests/executables_src/testProcessVariableRecovery.cc index 2b5aef1a344ea7fc8d314f9ac6ca34c43d691221..42b91d7071eef08b2107d08ad6a89726c94fb03d 100644 --- a/tests/executables_src/testProcessVariableRecovery.cc +++ b/tests/executables_src/testProcessVariableRecovery.cc @@ -5,16 +5,17 @@ #include "ControlSystemModule.h" #include "DeviceModule.h" #include "TestFacility.h" -#include "ExceptionDevice.h" -#include <ChimeraTK/Device.h> -#include <stdlib.h> #include "check_timeout.h" #include "ApplicationModule.h" #include "ArrayAccessor.h" #include "ConfigReader.h" +#include <ChimeraTK/ExceptionDevice.h> +#include <ChimeraTK/Device.h> +#include <stdlib.h> #include <regex> + using namespace boost::unit_test_framework; namespace ctk = ChimeraTK; diff --git a/tests/executables_src/testPropagateDataFaultFlag.cc b/tests/executables_src/testPropagateDataFaultFlag.cc index 13285b77b25ef79453487d47ff18bd63083e7c76..3a25a444baf91d898403c099a2452233fda3adc3 100644 --- a/tests/executables_src/testPropagateDataFaultFlag.cc +++ b/tests/executables_src/testPropagateDataFaultFlag.cc @@ -16,10 +16,11 @@ #include "ScalarAccessor.h" #include "ArrayAccessor.h" #include "TestFacility.h" -#include "ExceptionDevice.h" #include "ModuleGroup.h" #include "check_timeout.h" +#include <ChimeraTK/ExceptionDevice.h> + using namespace boost::unit_test_framework; namespace ctk = ChimeraTK; diff --git a/tests/include/ExceptionDevice.h b/tests/include/ExceptionDevice.h deleted file mode 100644 index 359a2e8fb2b601f578aa6b036bc060c52e569f74..0000000000000000000000000000000000000000 --- a/tests/include/ExceptionDevice.h +++ /dev/null @@ -1,64 +0,0 @@ -#include <ChimeraTK/BackendFactory.h> -#include <ChimeraTK/DeviceAccessVersion.h> -#include <ChimeraTK/DummyBackend.h> - -class ExceptionDummy : public ChimeraTK::DummyBackend { - public: - ExceptionDummy(std::string mapFileName) : DummyBackend(mapFileName) {} - bool throwExceptionOpen{false}; - bool throwExceptionRead{false}; - bool throwExceptionWrite{false}; - bool thereHaveBeenExceptions{false}; - - static boost::shared_ptr<DeviceBackend> createInstance(std::string, std::map<std::string, std::string> parameters) { - return boost::shared_ptr<DeviceBackend>(new ExceptionDummy(parameters["map"])); - } - - void open() override { - if(throwExceptionOpen) { - thereHaveBeenExceptions = true; - throw(ChimeraTK::runtime_error("DummyException: This is a test")); - } - ChimeraTK::DummyBackend::open(); - if(throwExceptionRead || throwExceptionWrite) { - thereHaveBeenExceptions = true; - throw(ChimeraTK::runtime_error("DummyException: open throws because of device error when already open.")); - } - thereHaveBeenExceptions = false; - } - - void read(uint8_t bar, uint32_t address, int32_t* data, size_t sizeInBytes) override { - if(throwExceptionRead) { - thereHaveBeenExceptions = true; - throw(ChimeraTK::runtime_error("DummyException: read throws by request")); - } - ChimeraTK::DummyBackend::read(bar, address, data, sizeInBytes); - } - - void write(uint8_t bar, uint32_t address, int32_t const* data, size_t sizeInBytes) override { - if(throwExceptionWrite) { - thereHaveBeenExceptions = true; - throw(ChimeraTK::runtime_error("DummyException: write throws by request")); - } - ChimeraTK::DummyBackend::write(bar, address, data, sizeInBytes); - } - - bool isFunctional() const override { - return (_opened && !throwExceptionOpen && !throwExceptionRead && !throwExceptionWrite && !thereHaveBeenExceptions); - } - - class BackendRegisterer { - public: - BackendRegisterer(); - }; - static BackendRegisterer backendRegisterer; -}; - -ExceptionDummy::BackendRegisterer ExceptionDummy::backendRegisterer; - -ExceptionDummy::BackendRegisterer::BackendRegisterer() { - std::cout << "ExceptionDummy::BackendRegisterer: registering backend type " - "ExceptionDummy" - << std::endl; - ChimeraTK::BackendFactory::getInstance().registerBackendType("ExceptionDummy", &ExceptionDummy::createInstance); -}