API
 
Loading...
Searching...
No Matches
closedLoopIndi_test.cpp
Go to the documentation of this file.
1/** \file closedLoopIndi_test.cpp
2 * \brief Catch2 tests for the closedLoopIndi app.
3 * \author Jared R. Males (jaredmales@gmail.com)
4 *
5 * \ingroup closedLoopIndi_files
6 */
7
8#include "../../../tests/testXWC.hpp"
9#include "../../../tests/testMacrosINDI.hpp"
10
11#include "../closedLoopIndi.hpp"
12
13using namespace MagAOX::app;
14
15namespace libXWCTest
16{
17
18/** \defgroup closedLoopIndi_unit_test closedLoopIndi Unit Tests
19 * \brief Unit tests for the closedLoopIndi application.
20 *
21 * \ingroup application_unit_test
22 */
23
24/// Namespace for `closedLoopIndi` unit tests.
25/** \ingroup closedLoopIndi_unit_test
26 */
27namespace closedLoopIndiTest
28{
29
30/// \cond DOXYGEN_SUPPRESS_TEST_HARNESS
31class closedLoopIndi_test : public closedLoopIndi
32{
33 public:
34 closedLoopIndi_test( const std::string device )
35 {
36 m_configName = device;
37
38 XWCTEST_SETUP_INDI_NEW_PROP( reference0 );
39 XWCTEST_SETUP_INDI_NEW_PROP( reference1 );
41 XWCTEST_SETUP_INDI_NEW_PROP( ctrlEnabled );
42 XWCTEST_SETUP_INDI_NEW_PROP( counterReset );
43
44 XWCTEST_SETUP_INDI_ARB_PROP( m_indiP_inputs, inputdev, measurement )
45 XWCTEST_SETUP_INDI_ARB_PROP( m_indiP_ctrl0_fsm, ctrl0dev, fsm )
46 XWCTEST_SETUP_INDI_ARB_PROP( m_indiP_ctrl0, ctrl0dev, prop0 )
47 XWCTEST_SETUP_INDI_ARB_PROP( m_indiP_ctrl1_fsm, ctrl1dev, fsm )
48 XWCTEST_SETUP_INDI_ARB_PROP( m_indiP_ctrl1, ctrl1dev, prop1 )
49 XWCTEST_SETUP_INDI_ARB_PROP( m_indiP_upstream, updev, loop_state )
50 }
51};
52/// \endcond
53
54/// Verify the closedLoopIndi INDI callback validators accept only the expected properties.
55/**
56 * \ingroup closedLoopIndi_unit_test
57 */
58TEST_CASE( "closedLoopIndi INDI callbacks validate device and property names", "[closedLoopIndi]" )
59{
60 // clang-format off
61 #ifdef CLOSEDLOOPINDI_TEST_DOXYGEN_REF
62 closedLoopIndi::newCallBack_m_indiP_reference0( pcf::IndiProperty() );
63 closedLoopIndi::newCallBack_m_indiP_reference1( pcf::IndiProperty() );
64 closedLoopIndi::newCallBack_m_indiP_ggain( pcf::IndiProperty() );
65 closedLoopIndi::newCallBack_m_indiP_ctrlEnabled( pcf::IndiProperty() );
66 closedLoopIndi::newCallBack_m_indiP_counterReset( pcf::IndiProperty() );
67 closedLoopIndi::setCallBack_m_indiP_inputs( pcf::IndiProperty() );
68 closedLoopIndi::setCallBack_m_indiP_ctrl0_fsm( pcf::IndiProperty() );
69 closedLoopIndi::setCallBack_m_indiP_ctrl0( pcf::IndiProperty() );
70 closedLoopIndi::setCallBack_m_indiP_ctrl1_fsm( pcf::IndiProperty() );
71 closedLoopIndi::setCallBack_m_indiP_ctrl1( pcf::IndiProperty() );
72 closedLoopIndi::setCallBack_m_indiP_upstream( pcf::IndiProperty() );
73 #endif
74 // clang-format on
75
81 XWCTEST_INDI_SET_CALLBACK( closedLoopIndi, m_indiP_inputs, inputdev, measurement )
82 XWCTEST_INDI_SET_CALLBACK( closedLoopIndi, m_indiP_ctrl0_fsm, ctrl0dev, fsm )
83 XWCTEST_INDI_SET_CALLBACK( closedLoopIndi, m_indiP_ctrl0, ctrl0dev, prop0 )
84 XWCTEST_INDI_SET_CALLBACK( closedLoopIndi, m_indiP_ctrl1_fsm, ctrl1dev, fsm )
85 XWCTEST_INDI_SET_CALLBACK( closedLoopIndi, m_indiP_ctrl1, ctrl1dev, prop1 )
86 XWCTEST_INDI_SET_CALLBACK( closedLoopIndi, m_indiP_upstream, updev, loop_state )
87}
88
89} // namespace closedLoopIndiTest
90
91} // namespace libXWCTest
The MagAO-X application to do closed-loop control using INDI properties.
TEST_CASE("closedLoopIndi INDI callbacks validate device and property names", "[closedLoopIndi]")
Verify the closedLoopIndi INDI callback validators accept only the expected properties.
#define XWCTEST_INDI_SET_CALLBACK(testclass, varname, device, propname)
Catch-2 tests for whether a SET callback properly validates the input property properly.
#define XWCTEST_INDI_NEW_CALLBACK(testclass, propname)
Catch-2 tests for whether a NEW callback properly validates the input property properly.
Namespace for all libXWC tests.
#define XWCTEST_SETUP_INDI_ARB_PROP(varname, device, propname)
#define XWCTEST_SETUP_INDI_NEW_PROP(propname)