F´ Flight Software - C/C++ Documentation NASA-v1.6.0
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
EventTests.cpp
Go to the documentation of this file.
1// ======================================================================
2// \title EventTests.cpp
3// \author T. Chieu
4// \brief cpp file for event tests
5//
6// \copyright
7// Copyright (C) 2009-2023 California Institute of Technology.
8// ALL RIGHTS RESERVED. United States Government Sponsorship
9// acknowledged.
10//
11// ======================================================================
12
13#include "test/ut/Tester.hpp"
14
15// ----------------------------------------------------------------------
16// Event tests
17// ----------------------------------------------------------------------
18
19void Tester ::testEvent(NATIVE_INT_TYPE portNum, FppTest::Types::NoParams& data) {
20 ASSERT_TRUE(component.isConnected_eventOut_OutputPort(portNum));
21 ASSERT_TRUE(component.isConnected_textEventOut_OutputPort(portNum));
22
23 component.log_ACTIVITY_HI_EventNoArgs();
24
25 ASSERT_EVENTS_SIZE(1);
26 ASSERT_EVENTS_EventNoArgs_SIZE(1);
27}
28
29void Tester ::testEventHelper(NATIVE_INT_TYPE portNum, FppTest::Types::PrimitiveParams& data, NATIVE_UINT_TYPE size) {
30 component.log_ACTIVITY_LO_EventPrimitive(data.args.val1, data.args.val2, data.args.val3, data.args.val4,
31 data.args.val5, data.args.val6);
32
33 ASSERT_EVENTS_SIZE(size);
34 ASSERT_EVENTS_EventPrimitive_SIZE(size);
35 ASSERT_EVENTS_EventPrimitive(portNum, data.args.val1, data.args.val2, data.args.val3, data.args.val4,
36 data.args.val5, data.args.val6);
37}
38
39void Tester ::testEvent(NATIVE_INT_TYPE portNum, FppTest::Types::PrimitiveParams& data) {
40 ASSERT_TRUE(component.isConnected_eventOut_OutputPort(portNum));
41 ASSERT_TRUE(component.isConnected_textEventOut_OutputPort(portNum));
42
43 for (U32 i = 0; i < component.EVENTID_EVENTPRIMITIVE_THROTTLE; i++) {
44 testEventHelper(portNum, data, i + 1);
45 }
46
47 // Test that throttling works
48 testEventHelper(portNum, data, component.EVENTID_EVENTPRIMITIVE_THROTTLE);
49
50 // Test throttle reset
51 component.log_ACTIVITY_LO_EventPrimitive_ThrottleClear();
52 testEventHelper(portNum, data, component.EVENTID_EVENTPRIMITIVE_THROTTLE + 1);
53}
54
55void Tester ::testEvent(NATIVE_INT_TYPE portNum, FppTest::Types::LogStringParams& data) {
56 component.log_COMMAND_EventString(data.args.val1, data.args.val2);
57
58 ASSERT_EVENTS_SIZE(1);
59 ASSERT_EVENTS_EventString_SIZE(1);
60 ASSERT_EVENTS_EventString(portNum, data.args.val1.toChar(), data.args.val2.toChar());
61}
62
63void Tester ::testEvent(NATIVE_INT_TYPE portNum, FppTest::Types::EnumParam& data) {
64 ASSERT_TRUE(component.isConnected_eventOut_OutputPort(portNum));
65 ASSERT_TRUE(component.isConnected_textEventOut_OutputPort(portNum));
66
67 component.log_DIAGNOSTIC_EventEnum(data.args.val);
68
69 ASSERT_EVENTS_SIZE(1);
70 ASSERT_EVENTS_EventEnum_SIZE(1);
71 ASSERT_EVENTS_EventEnum(portNum, data.args.val);
72}
73
74void Tester ::testEventHelper(NATIVE_INT_TYPE portNum, FppTest::Types::ArrayParam& data, NATIVE_UINT_TYPE size) {
75 ASSERT_TRUE(component.isConnected_eventOut_OutputPort(portNum));
76 ASSERT_TRUE(component.isConnected_textEventOut_OutputPort(portNum));
77
78 component.log_FATAL_EventArray(data.args.val);
79
80 ASSERT_EVENTS_SIZE(size);
81 ASSERT_EVENTS_EventArray_SIZE(size);
82 ASSERT_EVENTS_EventArray(portNum, data.args.val);
83}
84
85void Tester ::testEvent(NATIVE_INT_TYPE portNum, FppTest::Types::ArrayParam& data) {
86 ASSERT_TRUE(component.isConnected_eventOut_OutputPort(portNum));
87 ASSERT_TRUE(component.isConnected_textEventOut_OutputPort(portNum));
88
89 for (U32 i = 0; i < component.EVENTID_EVENTARRAY_THROTTLE; i++) {
90 testEventHelper(portNum, data, i + 1);
91 }
92
93 // Test that throttling works
94 testEventHelper(portNum, data, component.EVENTID_EVENTARRAY_THROTTLE);
95
96 // Test throttle reset
97 component.log_FATAL_EventArray_ThrottleClear();
98 testEventHelper(portNum, data, component.EVENTID_EVENTARRAY_THROTTLE + 1);
99}
100
101void Tester ::testEvent(NATIVE_INT_TYPE portNum, FppTest::Types::StructParam& data) {
102 ASSERT_TRUE(component.isConnected_eventOut_OutputPort(portNum));
103 ASSERT_TRUE(component.isConnected_textEventOut_OutputPort(portNum));
104
105 component.log_WARNING_HI_EventStruct(data.args.val);
106
107 ASSERT_EVENTS_SIZE(1);
108 ASSERT_EVENTS_EventStruct_SIZE(1);
109 ASSERT_EVENTS_EventStruct(portNum, data.args.val);
110}
111
112void Tester ::testEventHelper(NATIVE_INT_TYPE portNum, FppTest::Types::BoolParam& data, NATIVE_UINT_TYPE size) {
113 ASSERT_TRUE(component.isConnected_eventOut_OutputPort(portNum));
114 ASSERT_TRUE(component.isConnected_textEventOut_OutputPort(portNum));
115
116 component.log_WARNING_LO_EventBool(data.args.val);
117
118 ASSERT_EVENTS_SIZE(size);
119 ASSERT_EVENTS_EventBool_SIZE(size);
120 ASSERT_EVENTS_EventBool(portNum, data.args.val);
121}
122
123void Tester ::testEvent(NATIVE_INT_TYPE portNum, FppTest::Types::BoolParam& data) {
124 ASSERT_TRUE(component.isConnected_eventOut_OutputPort(portNum));
125 ASSERT_TRUE(component.isConnected_textEventOut_OutputPort(portNum));
126
127 for (U32 i = 0; i < component.EVENTID_EVENTBOOL_THROTTLE; i++) {
128 testEventHelper(portNum, data, i + 1);
129 }
130
131 // Test that throttling works
132 testEventHelper(portNum, data, component.EVENTID_EVENTBOOL_THROTTLE);
133
134 // Test throttle reset
135 component.log_WARNING_LO_EventBool_ThrottleClear();
136 testEventHelper(portNum, data, component.EVENTID_EVENTBOOL_THROTTLE + 1);
137}
PlatformIntType NATIVE_INT_TYPE
Definition BasicTypes.h:51
PlatformUIntType NATIVE_UINT_TYPE
Definition BasicTypes.h:52