ChimeraTK-ApplicationCore  04.01.00
Tests::testDataValidityPropagation Namespace Reference

Classes

struct  TestApplication1
 
struct  TestApplication16
 app with two chained modules, for testDataValidity_1_6 More...
 
struct  TestApplication3
 
struct  TestModule0
 
struct  TestModule1
 
struct  TestModule2
 
struct  TriggerModule
 

Functions

 BOOST_AUTO_TEST_CASE (testDataValidity_1_3)
 
 BOOST_AUTO_TEST_CASE (testDataValidity_1_6)
 
 BOOST_AUTO_TEST_CASE (testDataValidity_1_8)
 
 BOOST_AUTO_TEST_CASE (testDataValidity_2_1_1)
 
 BOOST_AUTO_TEST_CASE (testDataValidity_2_1_3)
 
 BOOST_AUTO_TEST_CASE (testDataValidity_2_3_1)
 
 BOOST_AUTO_TEST_CASE (testDataValidity_2_3_3)
 
 BOOST_AUTO_TEST_CASE (testDataValidity_2_3_4)
 
 BOOST_AUTO_TEST_CASE (testDataValidity_2_4_1)
 
 BOOST_AUTO_TEST_CASE (testDataValidity_2_4_3)
 

Function Documentation

◆ BOOST_AUTO_TEST_CASE() [1/10]

Tests::testDataValidityPropagation::BOOST_AUTO_TEST_CASE ( testDataValidity_1_3  )

1.3 If a device is in error state, all variables which are read from it shall be marked as 'faulty'. This flag is then propagated through all the modules (via 1.2) so it shows up in the control system.

Definition at line 193 of file testDataValidityPropagation.cc.

+ Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [2/10]

Tests::testDataValidityPropagation::BOOST_AUTO_TEST_CASE ( testDataValidity_1_6  )

1.6 The user code can flag individual outputs as bad. However, the user code cannot actively set an output to 'ok' if the data validity of the module is 'faulty'.

Definition at line 252 of file testDataValidityPropagation.cc.

+ Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [3/10]

Tests::testDataValidityPropagation::BOOST_AUTO_TEST_CASE ( testDataValidity_1_8  )

1.8 The data validity of receiving variables is set to 'faulty' on construction. Like this, data is marked as faulty as long as no sensible initial values have been propagated.

Definition at line 294 of file testDataValidityPropagation.cc.

+ Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [4/10]

Tests::testDataValidityPropagation::BOOST_AUTO_TEST_CASE ( testDataValidity_2_1_1  )

2.1.1 Each input and each output of a module (or fan out) is decorated with a MetaDataPropagatingRegisterDecorator (except for the TriggerFanOut, see. 2.4)

Definition at line 315 of file testDataValidityPropagation.cc.

◆ BOOST_AUTO_TEST_CASE() [5/10]

Tests::testDataValidityPropagation::BOOST_AUTO_TEST_CASE ( testDataValidity_2_1_3  )

2.1.3 read: For each read operation it checks the incoming data validity and increases/decreases the data fault counter of the owner.

Definition at line 353 of file testDataValidityPropagation.cc.

◆ BOOST_AUTO_TEST_CASE() [6/10]

Tests::testDataValidityPropagation::BOOST_AUTO_TEST_CASE ( testDataValidity_2_3_1  )

2.3.1 Each ApplicationModule has one data fault counter variable which is increased/decreased by EntityOwner::incrementDataFaultCounter() and EntityOwner::decrementDataFaultCounter.

Definition at line 394 of file testDataValidityPropagation.cc.

+ Here is the call graph for this function:

◆ BOOST_AUTO_TEST_CASE() [7/10]

Tests::testDataValidityPropagation::BOOST_AUTO_TEST_CASE ( testDataValidity_2_3_3  )

2.3.3 The main loop of the module usually does not care about data validity. If any input is invalid, all outputs are automatically invalid. The loop just runs through normally, even if an input has invalid data.

Definition at line 419 of file testDataValidityPropagation.cc.

◆ BOOST_AUTO_TEST_CASE() [8/10]

Tests::testDataValidityPropagation::BOOST_AUTO_TEST_CASE ( testDataValidity_2_3_4  )

2.3.4 Inside the ApplicationModule main loop the module's data fault counter is accessible. The user can increment and decrement it, but has to be careful to do this in pairs. The more common use case will be to query the module's data validity.

Definition at line 452 of file testDataValidityPropagation.cc.

◆ BOOST_AUTO_TEST_CASE() [9/10]

Tests::testDataValidityPropagation::BOOST_AUTO_TEST_CASE ( testDataValidity_2_4_1  )

2.4.1 Only the push-type trigger input of the TriggerFanOut is equiped with a MetaDataPropagatingRegisterDecorator.

Definition at line 477 of file testDataValidityPropagation.cc.

◆ BOOST_AUTO_TEST_CASE() [10/10]

Tests::testDataValidityPropagation::BOOST_AUTO_TEST_CASE ( testDataValidity_2_4_3  )

2.4.3 The individual poll-type inputs propagate the data validity flag only to the corresponding outputs.

Definition at line 512 of file testDataValidityPropagation.cc.