API
 
Loading...
Searching...
No Matches
telem_cooler_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_cooler.hpp"
5#include "../types/generated/telem_cooler_generated.h"
6#include "../types/flatbuffer_log.hpp"
7
8/*
9 * GENERATED TEST FILE for types/telem_cooler.hpp
10 * generated by generateTemplateCatch2Tests.py
11 */
12
13const float telemCoolerLiqTemp_0 = 0.627418; // dummy liqTemp
14const float telemCoolerFlowRate_0 = 0.924786; // dummy flowRate
15const uint8_t telemCoolerPumpLvl_0 = 209; // dummy pumpLvl
16const uint16_t telemCoolerPumpSpd_0 = 16567; // dummy pumpSpd
17const uint8_t telemCoolerFanLvl_0 = 237; // dummy fanLvl
18const uint16_t telemCoolerFanSpd_0 = 54928; // dummy fanSpd
19
20
21/** Class to encapsulate telem_cooler flatbuffer data using
22 ** => types/telem_cooler.hpp
23 ** => types/generated/telem_cooler_generated.h
24 **/
26{
27public:
28 // Saved input parameter value; unused
35
36 // Parameters retrieved from flatbuffer
37 float m_liqTemp;
39 uint8_t m_pumpLvl;
40 uint16_t m_pumpSpd;
41 uint8_t m_fanLvl;
42 uint16_t m_fanSpd;
43
44 // Flatbuffers verifier success/failure
45 bool m_verify{false};
46
47 // flatbuffer data length; used in ::verify
48 int L;
49
50 // Constructor
51 CTelemCooler_0(float liqTemp_, float flowRate_, uint8_t pumpLvl_, uint16_t pumpSpd_, uint8_t fanLvl_, uint16_t fanSpd_) {
52 // Save input parameters
53 m_saveTcLiqTemp = liqTemp_;
54 m_saveTcFlowRate = flowRate_;
55 m_saveTcPumpLvl = pumpLvl_;
56 m_saveTcPumpSpd = pumpSpd_;
57 m_saveTcFanLvl = fanLvl_;
58 m_saveTcFanSpd = fanSpd_;
59
60 // Create the flatbuffer messageT using the input parameters
61 auto tc = MagAOX::logger::telem_cooler::messageT(liqTemp_, flowRate_, pumpLvl_, pumpSpd_, fanLvl_, fanSpd_);
62
63 // Retrieve flatbuffer pointer (if not an empty_log type) and length
64 void* buffPtr = tc.builder.GetBufferPointer();
66
67 // Retrieve the flatbuffer parameters for Catch2 comparison below
68 m_liqTemp = MagAOX::logger::GetTelem_cooler_fb(buffPtr)->liquidTemp();
70 m_pumpLvl = MagAOX::logger::GetTelem_cooler_fb(buffPtr)->pumpLevel();
71 m_pumpSpd = MagAOX::logger::GetTelem_cooler_fb(buffPtr)->pumpSpeed();
72 m_fanLvl = MagAOX::logger::GetTelem_cooler_fb(buffPtr)->fanLevel();
73 m_fanSpd = MagAOX::logger::GetTelem_cooler_fb(buffPtr)->fanSpeed();
74
75 // Run the telem_cooler verifier
76 m_verify = verify(tc);
77 }
78
79 // Run the flatbuffer Verifier for this log type
80 // - requires bufferPtrT (shared_ptr<char*>) to full log entry
81 // comprising log header plus flatbuffer log message
83
84 // Timestamp, prioriy (use nominal value here)
85 flatlogs::timespecX tsx{0,0};
87
88 // Create full log: log header(*); log message (+)
89 // * Log level (priority)
90 // * Event code (implicit in <MagAOX::logger::type>)
91 // * Timestamp
92 // * Message size (variable length; 1, 2, or 8 bytes)
93 // + Message (variable length)
94
95 // N.G. allocates space and writes pointer value to logBuffer
96 flatlogs::bufferPtrT logBuffer;
97 flatlogs::logHeader::createLog<MagAOX::logger::telem_cooler>(logBuffer
98 , tsx, msg
99 , prio);
100 // Run full log through flatbuffer Verifier
101 return MagAOX::logger::telem_cooler::verify(logBuffer,L);
102 }
103};
104
105SCENARIO( "Create telem_cooler 0", "[a log item]")
106{
107 GIVEN("a telem_cooler log code")
108 {
109 WHEN("random values for fields")
110 {
111 // Create flatbuffer
113 // Compare flatbuffer parameters
114 REQUIRE(tc.m_liqTemp == telemCoolerLiqTemp_0);
115 REQUIRE(tc.m_flowRate == telemCoolerFlowRate_0);
116 REQUIRE(tc.m_pumpLvl == telemCoolerPumpLvl_0);
117 REQUIRE(tc.m_pumpSpd == telemCoolerPumpSpd_0);
118 REQUIRE(tc.m_fanLvl == telemCoolerFanLvl_0);
119 REQUIRE(tc.m_fanSpd == telemCoolerFanSpd_0);
120 REQUIRE(tc.m_verify);
121 }
122 }
123}
124
125
bool verify(const typename MagAOX::logger::telem_cooler::messageT &msg)
CTelemCooler_0(float liqTemp_, float flowRate_, uint8_t pumpLvl_, uint16_t pumpSpd_, uint8_t fanLvl_, uint16_t fanSpd_)
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_cooler_fb * GetTelem_cooler_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
SCENARIO("Create telem_cooler 0", "[a log item]")
const uint8_t telemCoolerFanLvl_0
const float telemCoolerLiqTemp_0
const uint8_t telemCoolerPumpLvl_0
const float telemCoolerFlowRate_0
const uint16_t telemCoolerFanSpd_0
const uint16_t telemCoolerPumpSpd_0