ChimeraTK-ApplicationCore 04.06.00
Loading...
Searching...
No Matches
Tests::testTestFacilities Namespace Reference

Classes

struct  BlockingReadTestModule
 
struct  PollingReadModule
 
struct  PollingThroughFanoutsModule
 
struct  ReadAnyTestModule
 
struct  TestBlockingReadApplication
 
struct  TestChaniedModulesApplication
 
struct  TestConvenienceReadApplication
 
struct  TestDeviceApplication
 
struct  TestInitialApplication
 
struct  TestNoDecoratorApplication
 
struct  TestPollingApplication
 
struct  TestPollingThroughFanOutsApplication
 
struct  TestReadAnyApplication
 
struct  TestWithTriggerApplication
 

Functions

 BOOST_AUTO_TEST_CASE (testNoDecorator)
 
 BOOST_AUTO_TEST_CASE (testBlockingRead)
 
 BOOST_AUTO_TEST_CASE (testReadAny)
 
 BOOST_AUTO_TEST_CASE (testChainedModules)
 
 BOOST_AUTO_TEST_CASE (testWithTrigger)
 
 BOOST_AUTO_TEST_CASE (testConvenienceRead)
 
 BOOST_AUTO_TEST_CASE (testPolling)
 
 BOOST_AUTO_TEST_CASE (testPollingThroughFanOuts)
 
 BOOST_AUTO_TEST_CASE (testDevice)
 
 BOOST_AUTO_TEST_CASE (testInitialValues)
 
 BOOST_AUTO_TEST_CASE (TestableModeLockShared)
 Test that the testable mode lock is a shared lock and only the test thread acquires it in exclusive mode.
 

Variables

constexpr std::string_view dummySdm {"(dummy?map=test_readonly.map)"}
 

Function Documentation

◆ BOOST_AUTO_TEST_CASE() [1/11]

Tests::testTestFacilities::BOOST_AUTO_TEST_CASE ( TestableModeLockShared  )

Test that the testable mode lock is a shared lock and only the test thread acquires it in exclusive mode.

This test makes sure that a DeviceManager can execute an init handler as part of the recovery procedure (which takes place while holding the testable mode lock) in parallel with an ApplicationModule thread doing something.

The test was written to reproduce roughly a specific regression discovered after the introduction of recovery groups: A write() opreation issued from an ApplicationModule going to a Device in error state can dead lock with the device recovery in DeviceManager::RecoveryGroup::waitForRecoveryStage(), because the device recovery thread (holding the recovery lock) gives up the testable mode lock temporarily while arriving at the recovery stage barrier, but the ExceptionHandlingDecorator obtains the recovery lock while keeping the testable mode lock. This problem occured because the testable mode lock was at that time not yet a shared lock, which was then changed to fix the issue.

Definition at line 992 of file testTestFacilities.cc.

◆ BOOST_AUTO_TEST_CASE() [2/11]

Tests::testTestFacilities::BOOST_AUTO_TEST_CASE ( testBlockingRead  )

Definition at line 240 of file testTestFacilities.cc.

◆ BOOST_AUTO_TEST_CASE() [3/11]

Tests::testTestFacilities::BOOST_AUTO_TEST_CASE ( testChainedModules  )

Definition at line 422 of file testTestFacilities.cc.

◆ BOOST_AUTO_TEST_CASE() [4/11]

Tests::testTestFacilities::BOOST_AUTO_TEST_CASE ( testConvenienceRead  )

Definition at line 601 of file testTestFacilities.cc.

◆ BOOST_AUTO_TEST_CASE() [5/11]

Tests::testTestFacilities::BOOST_AUTO_TEST_CASE ( testDevice  )

Definition at line 888 of file testTestFacilities.cc.

◆ BOOST_AUTO_TEST_CASE() [6/11]

Tests::testTestFacilities::BOOST_AUTO_TEST_CASE ( testInitialValues  )

Definition at line 943 of file testTestFacilities.cc.

◆ BOOST_AUTO_TEST_CASE() [7/11]

Tests::testTestFacilities::BOOST_AUTO_TEST_CASE ( testNoDecorator  )

Definition at line 206 of file testTestFacilities.cc.

◆ BOOST_AUTO_TEST_CASE() [8/11]

Tests::testTestFacilities::BOOST_AUTO_TEST_CASE ( testPolling  )

Definition at line 639 of file testTestFacilities.cc.

◆ BOOST_AUTO_TEST_CASE() [9/11]

Tests::testTestFacilities::BOOST_AUTO_TEST_CASE ( testPollingThroughFanOuts  )

Definition at line 731 of file testTestFacilities.cc.

◆ BOOST_AUTO_TEST_CASE() [10/11]

Tests::testTestFacilities::BOOST_AUTO_TEST_CASE ( testReadAny  )

Definition at line 277 of file testTestFacilities.cc.

◆ BOOST_AUTO_TEST_CASE() [11/11]

Tests::testTestFacilities::BOOST_AUTO_TEST_CASE ( testWithTrigger  )

Definition at line 519 of file testTestFacilities.cc.

Variable Documentation

◆ dummySdm

constexpr std::string_view Tests::testTestFacilities::dummySdm {"(dummy?map=test_readonly.map)"}
constexpr

Definition at line 31 of file testTestFacilities.cc.