F´ Flight Software - C/C++ Documentation NASA-v1.6.0
A framework for building embedded system applications to NASA flight quality standards.
Loading...
Searching...
No Matches
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