API
 
Loading...
Searching...
No Matches
telem_fxngen_generated_tests.cpp
Go to the documentation of this file.
1#include <assert.h>
2#include "../../../../tests/catch2/catch.hpp"
3#include "../generated/logCodes.hpp"
4#include "../types/telem_fxngen.hpp"
5#include "../types/generated/telem_fxngen_generated.h"
6#include "../types/flatbuffer_log.hpp"
7
8/*
9 * GENERATED TEST FILE for types/telem_fxngen.hpp
10 * generated by generateTemplateCatch2Tests.py
11 */
12
13const uint8_t telemFxngenC1outp_0 = 176; // dummy C1outp
14const double telemFxngenC1freq_0 = 0.02320353975486; // dummy C1freq
15const double telemFxngenC1vpp_0 = 0.27478057595375; // dummy C1vpp
16const double telemFxngenC1ofst_0 = 0.34109168113576; // dummy C1ofst
17const double telemFxngenC1phse_0 = 0.66362371042702; // dummy C1phse
18const uint8_t telemFxngenC1wvtp_0 = 254; // dummy C1wvtp
19const uint8_t telemFxngenC2outp_0 = 54; // dummy C2outp
20const double telemFxngenC2freq_0 = 0.35807117970539; // dummy C2freq
21const double telemFxngenC2vpp_0 = 0.02263931415658; // dummy C2vpp
22const double telemFxngenC2ofst_0 = 0.53623095366568; // dummy C2ofst
23const double telemFxngenC2phse_0 = 0.64870202750723; // dummy C2phse
24const uint8_t telemFxngenC2wvtp_0 = 11; // dummy C2wvtp
25const uint8_t telemFxngenC1sync_0 = 229; // dummy C1sync
26const uint8_t telemFxngenC2sync_0 = 156; // dummy C2sync
27const double telemFxngenC1wdth_0 = 0.73305831265245; // dummy C1wdth
28const double telemFxngenC2wdth_0 = 0.7119896870799; // dummy C2wdth
29
30
31/** Class to encapsulate telem_fxngen flatbuffer data using
32 ** => types/telem_fxngen.hpp
33 ** => types/generated/telem_fxngen_generated.h
34 **/
36{
37public:
38 // Saved input parameter value; unused
55
56 // Parameters retrieved from flatbuffer
57 uint8_t m_C1outp;
58 double m_C1freq;
59 double m_C1vpp;
60 double m_C1ofst;
61 double m_C1phse;
62 uint8_t m_C1wvtp;
63 uint8_t m_C2outp;
64 double m_C2freq;
65 double m_C2vpp;
66 double m_C2ofst;
67 double m_C2phse;
68 uint8_t m_C2wvtp;
69 uint8_t m_C1sync;
70 uint8_t m_C2sync;
71 double m_C1wdth;
72 double m_C2wdth;
73
74 // Flatbuffers verifier success/failure
75 bool m_verify{false};
76
77 // flatbuffer data length; used in ::verify
78 int L;
79
80 // Constructor
81 CTelemFxngen_0(uint8_t C1outp_, double C1freq_, double C1vpp_, double C1ofst_, double C1phse_, uint8_t C1wvtp_, uint8_t C2outp_, double C2freq_, double C2vpp_, double C2ofst_, double C2phse_, uint8_t C2wvtp_, uint8_t C1sync_, uint8_t C2sync_, double C1wdth_, double C2wdth_) {
82 // Save input parameters
83 m_saveTfC1outp = C1outp_;
84 m_saveTfC1freq = C1freq_;
85 m_saveTfC1vpp = C1vpp_;
86 m_saveTfC1ofst = C1ofst_;
87 m_saveTfC1phse = C1phse_;
88 m_saveTfC1wvtp = C1wvtp_;
89 m_saveTfC2outp = C2outp_;
90 m_saveTfC2freq = C2freq_;
91 m_saveTfC2vpp = C2vpp_;
92 m_saveTfC2ofst = C2ofst_;
93 m_saveTfC2phse = C2phse_;
94 m_saveTfC2wvtp = C2wvtp_;
95 m_saveTfC1sync = C1sync_;
96 m_saveTfC2sync = C2sync_;
97 m_saveTfC1wdth = C1wdth_;
98 m_saveTfC2wdth = C2wdth_;
99
100 // Create the flatbuffer messageT using the input parameters
101 auto tf = MagAOX::logger::telem_fxngen::messageT(C1outp_, C1freq_, C1vpp_, C1ofst_, C1phse_, C1wvtp_, C2outp_, C2freq_, C2vpp_, C2ofst_, C2phse_, C2wvtp_, C1sync_, C2sync_, C1wdth_, C2wdth_);
102
103 // Retrieve flatbuffer pointer (if not an empty_log type) and length
104 void* buffPtr = tf.builder.GetBufferPointer();
106
107 // Retrieve the flatbuffer parameters for Catch2 comparison below
108 m_C1outp = MagAOX::logger::GetTelem_fxngen_fb(buffPtr)->C1outp();
109 m_C1freq = MagAOX::logger::GetTelem_fxngen_fb(buffPtr)->C1freq();
111 m_C1ofst = MagAOX::logger::GetTelem_fxngen_fb(buffPtr)->C1ofst();
112 m_C1phse = MagAOX::logger::GetTelem_fxngen_fb(buffPtr)->C1phse();
113 m_C1wvtp = MagAOX::logger::GetTelem_fxngen_fb(buffPtr)->C1wvtp();
114 m_C2outp = MagAOX::logger::GetTelem_fxngen_fb(buffPtr)->C2outp();
115 m_C2freq = MagAOX::logger::GetTelem_fxngen_fb(buffPtr)->C2freq();
117 m_C2ofst = MagAOX::logger::GetTelem_fxngen_fb(buffPtr)->C2ofst();
118 m_C2phse = MagAOX::logger::GetTelem_fxngen_fb(buffPtr)->C2phse();
119 m_C2wvtp = MagAOX::logger::GetTelem_fxngen_fb(buffPtr)->C2wvtp();
120 m_C1sync = MagAOX::logger::GetTelem_fxngen_fb(buffPtr)->C1sync();
121 m_C2sync = MagAOX::logger::GetTelem_fxngen_fb(buffPtr)->C2sync();
122 m_C1wdth = MagAOX::logger::GetTelem_fxngen_fb(buffPtr)->C1wdth();
123 m_C2wdth = MagAOX::logger::GetTelem_fxngen_fb(buffPtr)->C2wdth();
124
125 // Run the telem_fxngen verifier
126 m_verify = verify(tf);
127 }
128
129 // Run the flatbuffer Verifier for this log type
130 // - requires bufferPtrT (shared_ptr<char*>) to full log entry
131 // comprising log header plus flatbuffer log message
133
134 // Timestamp, prioriy (use nominal value here)
135 flatlogs::timespecX tsx{0,0};
137
138 // Create full log: log header(*); log message (+)
139 // * Log level (priority)
140 // * Event code (implicit in <MagAOX::logger::type>)
141 // * Timestamp
142 // * Message size (variable length; 1, 2, or 8 bytes)
143 // + Message (variable length)
144
145 // N.G. allocates space and writes pointer value to logBuffer
146 flatlogs::bufferPtrT logBuffer;
147 flatlogs::logHeader::createLog<MagAOX::logger::telem_fxngen>(logBuffer
148 , tsx, msg
149 , prio);
150 // Run full log through flatbuffer Verifier
151 return MagAOX::logger::telem_fxngen::verify(logBuffer,L);
152 }
153};
154
155SCENARIO( "Create telem_fxngen 0", "[a log item]")
156{
157 GIVEN("a telem_fxngen log code")
158 {
159 WHEN("random values for fields")
160 {
161 // Create flatbuffer
163 // Compare flatbuffer parameters
164 REQUIRE(tf.m_C1outp == telemFxngenC1outp_0);
165 REQUIRE(tf.m_C1freq == telemFxngenC1freq_0);
166 REQUIRE(tf.m_C1vpp == telemFxngenC1vpp_0);
167 REQUIRE(tf.m_C1ofst == telemFxngenC1ofst_0);
168 REQUIRE(tf.m_C1phse == telemFxngenC1phse_0);
169 REQUIRE(tf.m_C1wvtp == telemFxngenC1wvtp_0);
170 REQUIRE(tf.m_C2outp == telemFxngenC2outp_0);
171 REQUIRE(tf.m_C2freq == telemFxngenC2freq_0);
172 REQUIRE(tf.m_C2vpp == telemFxngenC2vpp_0);
173 REQUIRE(tf.m_C2ofst == telemFxngenC2ofst_0);
174 REQUIRE(tf.m_C2phse == telemFxngenC2phse_0);
175 REQUIRE(tf.m_C2wvtp == telemFxngenC2wvtp_0);
176 REQUIRE(tf.m_C1sync == telemFxngenC1sync_0);
177 REQUIRE(tf.m_C2sync == telemFxngenC2sync_0);
178 REQUIRE(tf.m_C1wdth == telemFxngenC1wdth_0);
179 REQUIRE(tf.m_C2wdth == telemFxngenC2wdth_0);
180 REQUIRE(tf.m_verify);
181 }
182 }
183}
184
185
bool verify(const typename MagAOX::logger::telem_fxngen::messageT &msg)
CTelemFxngen_0(uint8_t C1outp_, double C1freq_, double C1vpp_, double C1ofst_, double C1phse_, uint8_t C1wvtp_, uint8_t C2outp_, double C2freq_, double C2vpp_, double C2ofst_, double C2phse_, uint8_t C2wvtp_, uint8_t C1sync_, uint8_t C2sync_, double C1wdth_, double C2wdth_)
int8_t logPrioT
The type of the log priority code.
Definition logDefs.hpp:21
std::shared_ptr< char > bufferPtrT
The log entry buffer smart pointer.
Definition logHeader.hpp:58
const MagAOX::logger::Telem_fxngen_fb * GetTelem_fxngen_fb(const void *buf)
static constexpr logPrioT LOG_DEFAULT
Used to denote "use the default level for this log type".
static flatlogs::msgLenT length(const fbMessage &msg)
Get the length of the message.
The type of the input message.
static bool verify(flatlogs::bufferPtrT &logBuff, flatlogs::msgLenT len)
A fixed-width timespec structure.
Definition timespecX.hpp:35
const double telemFxngenC1wdth_0
const uint8_t telemFxngenC2outp_0
SCENARIO("Create telem_fxngen 0", "[a log item]")
const uint8_t telemFxngenC2wvtp_0
const uint8_t telemFxngenC1outp_0
const uint8_t telemFxngenC1wvtp_0
const double telemFxngenC1vpp_0
const double telemFxngenC1phse_0
const double telemFxngenC2phse_0
const double telemFxngenC1ofst_0
const uint8_t telemFxngenC1sync_0
const double telemFxngenC2freq_0
const double telemFxngenC1freq_0
const double telemFxngenC2ofst_0
const uint8_t telemFxngenC2sync_0
const double telemFxngenC2vpp_0
const double telemFxngenC2wdth_0