diff --git a/tests/executables_src/testPropagateDataFaultFlag.cc b/tests/executables_src/testPropagateDataFaultFlag.cc
index 8289cfd5cf70d0ba0ef8f51c7acf072a2ff343fe..0ac5c7b6752e0d05a2ad96932cc38bf28a710c4b 100644
--- a/tests/executables_src/testPropagateDataFaultFlag.cc
+++ b/tests/executables_src/testPropagateDataFaultFlag.cc
@@ -498,10 +498,50 @@ BOOST_AUTO_TEST_CASE(testThreadedFanout) {
   BOOST_CHECK(m2_result.dataValidity()== ctk::DataValidity::ok);
 }
 
+BOOST_AUTO_TEST_CASE(testInvalidTrigger){
+  auto deviceRegister = device1->getRawAccessor("m1", "i3");
+  deviceRegister = 20;
 
+  auto trigger = test.getScalar<int>("trigger");
+  auto result = test.getScalar<int>("i3"); //Cs hook into reg: m1.i3
 
-BOOST_AUTO_TEST_CASE(testConsumingFanout){ 
+  //----------------------------------------------------------------//
+  // trigger works as expected
+  trigger = 1;
+  trigger.write();
 
+  test.stepApplication();
+
+  result.read();
+  BOOST_CHECK_EQUAL(result, 20);
+  BOOST_CHECK(result.dataValidity() == ctk::DataValidity::ok);
+
+  //----------------------------------------------------------------//
+  // faulty trigger
+  deviceRegister = 30;
+  trigger = 1;
+  trigger.setDataValidity(ctk::DataValidity::faulty);
+  trigger.write();
+
+  test.stepApplication();
+
+  result.read();
+  BOOST_CHECK_EQUAL(result, 30);
+  BOOST_CHECK(result.dataValidity() == ctk::DataValidity::faulty);
+
+  //----------------------------------------------------------------//
+  // recovery
+  deviceRegister = 50;
+
+  trigger = 1;
+  trigger.setDataValidity(ctk::DataValidity::ok);
+  trigger.write();
+
+  test.stepApplication();
+
+  result.read();
+  BOOST_CHECK_EQUAL(result, 50);
+  BOOST_CHECK(result.dataValidity() == ctk::DataValidity::ok);
 }
 
 BOOST_AUTO_TEST_CASE(testTrigger){}