139 std::cout <<
"testProcessVariableRecovery" << std::endl;
147 test.writeScalar(
"/TEST/TO_DEV_SCALAR2", 42);
148 std::vector<int32_t> array = {99, 99, 99, 99};
149 test.writeArray(
"/TEST/TO_DEV_ARRAY2", array);
152 test.writeScalar(
"/TEST/trigger", 0);
158 dummy.open(deviceCDD.data());
163 std::string(
"/Devices/") + ctk::Utilities::escapeName(deviceCDD.data(),
false) +
"/status"),
174 auto trigger = test.getScalar<int32_t>(
"/TEST/trigger");
184 auto dummyBackend = boost::dynamic_pointer_cast<ctk::ExceptionDummy>(
185 ctk::BackendFactory::getInstance().createBackend(deviceCDD.data()));
188 dummyBackend->throwExceptionOpen =
true;
191 dummy.write<int32_t>(
"/CONSTANT/VAR32", 0);
192 dummy.write<int32_t>(
"/TEST/TO_DEV_SCALAR1", 0);
193 dummy.write<int32_t>(
"/TEST/TO_DEV_SCALAR2", 0);
194 array = {0, 0, 0, 0};
195 dummy.write(
"/TEST/TO_DEV_ARRAY1", array);
196 dummy.write(
"/TEST/TO_DEV_ARRAY2", array);
199 dummyBackend->throwExceptionWrite =
true;
200 dummyBackend->throwExceptionRead =
true;
203 auto trigger2 = test.getVoid(
"/deviceTrigger");
208 ctk::Utilities::escapeName(deviceCDD.data(),
false) /
"status"),
212 dummyBackend->throwExceptionWrite =
false;
213 dummyBackend->throwExceptionRead =
false;
214 dummyBackend->throwExceptionOpen =
false;
217 ctk::Utilities::escapeName(deviceCDD.data(),
false) /
"status"),
221 BOOST_CHECK_EQUAL(dummy.read<int32_t>(
"/TEST/TO_DEV_SCALAR2"), 42);
222 BOOST_CHECK((dummy.read<int32_t>(
"/TEST/TO_DEV_ARRAY2", 0) == std::vector<int32_t>{99, 99, 99, 99}));
224 BOOST_CHECK_EQUAL(dummy.read<int32_t>(
"/TEST/TO_DEV_SCALAR1"), 100);
225 BOOST_CHECK((dummy.read<int32_t>(
"/TEST/TO_DEV_ARRAY1", 0) == std::vector<int32_t>{100, 100, 100, 100}));