API
 
Loading...
Searching...
No Matches
telem_drivetemps_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_drivetemps.hpp"
5#include "../types/generated/telem_drivetemps_generated.h"
6#include "../types/flatbuffer_log.hpp"
7
8/*
9 * GENERATED TEST FILE for types/telem_drivetemps.hpp
10 * generated by generateTemplateCatch2Tests.py
11 */
12
13const std::vector<std::string> telemDrivetempsNames_0 = { "kgk0o5ou19","bmyw4jyqlg","cm3lxg8nki","dpwneegwta","oxud1t62hw","gckzi29cfr","1ti32fjomn","p8swxkqpgw","lm6gmjzsp0","fzd3nje4rb" }; // dummy names
14const std::vector<float> telemDrivetempsTemps_0 = { 0.479551,0.263537,0.550621,0.894875,0.472594,0.638424,0.975409,0.95207,0.799147,0.143039 }; // dummy temps
15
16
17/** Class to encapsulate telem_drivetemps flatbuffer data using
18 ** => types/telem_drivetemps.hpp
19 ** => types/generated/telem_drivetemps_generated.h
20 **/
22{
23public:
24 // Saved input parameter value; unused
25 std::vector<std::string> m_saveTdNames;
26 std::vector<float> m_saveTdTemps;
27
28 // Parameters retrieved from flatbuffer
29 std::vector<std::string> m_names;
30 std::vector<float> m_temps;
31
32 // Flatbuffers verifier success/failure
33 bool m_verify{false};
34
35 // flatbuffer data length; used in ::verify
36 int L;
37
38 // Constructor
39 CTelemDrivetemps_0(std::vector<std::string> names_, std::vector<float> temps_) {
40 // Save input parameters
41 m_saveTdNames = names_;
42 m_saveTdTemps = temps_;
43
44 // Create the flatbuffer messageT using the input parameters
45 auto td = MagAOX::logger::telem_drivetemps::messageT(names_, temps_);
46
47 // Retrieve flatbuffer pointer (if not an empty_log type) and length
48 void* buffPtr = td.builder.GetBufferPointer();
50
51 // Retrieve the flatbuffer parameters for Catch2 comparison below
52 if (MagAOX::logger::GetTelem_drivetemps_fb(buffPtr)->diskName() != nullptr)
53 {
54 for(auto it = MagAOX::logger::GetTelem_drivetemps_fb(buffPtr)->diskName()->begin();
55 it != MagAOX::logger::GetTelem_drivetemps_fb(buffPtr)->diskName()->end();
56 ++it)
57 {
58 m_names.push_back(it->str());
59 }
60 }
61 if (MagAOX::logger::GetTelem_drivetemps_fb(buffPtr)->diskTemp() != nullptr)
62 {
63 for(auto it = MagAOX::logger::GetTelem_drivetemps_fb(buffPtr)->diskTemp()->begin();
64 it != MagAOX::logger::GetTelem_drivetemps_fb(buffPtr)->diskTemp()->end();
65 ++it)
66 {
67 m_temps.push_back(*it);
68 }
69 }
70
71 // Run the telem_drivetemps verifier
72 m_verify = verify(td);
73 }
74
75 // Run the flatbuffer Verifier for this log type
76 // - requires bufferPtrT (shared_ptr<char*>) to full log entry
77 // comprising log header plus flatbuffer log message
79
80 // Timestamp, prioriy (use nominal value here)
81 flatlogs::timespecX tsx{0,0};
83
84 // Create full log: log header(*); log message (+)
85 // * Log level (priority)
86 // * Event code (implicit in <MagAOX::logger::type>)
87 // * Timestamp
88 // * Message size (variable length; 1, 2, or 8 bytes)
89 // + Message (variable length)
90
91 // N.G. allocates space and writes pointer value to logBuffer
92 flatlogs::bufferPtrT logBuffer;
93 flatlogs::logHeader::createLog<MagAOX::logger::telem_drivetemps>(logBuffer
94 , tsx, msg
95 , prio);
96 // Run full log through flatbuffer Verifier
98 }
99};
100
101SCENARIO( "Create telem_drivetemps 0", "[a log item]")
102{
103 GIVEN("a telem_drivetemps log code")
104 {
105 WHEN("random values for fields")
106 {
107 // Create flatbuffer
109 // Compare flatbuffer parameters
110 REQUIRE(td.m_names == telemDrivetempsNames_0);
111 REQUIRE(td.m_temps == telemDrivetempsTemps_0);
112 REQUIRE(td.m_verify);
113 }
114 }
115}
116
117
bool verify(const typename MagAOX::logger::telem_drivetemps::messageT &msg)
std::vector< std::string > m_names
CTelemDrivetemps_0(std::vector< std::string > names_, std::vector< float > temps_)
std::vector< std::string > m_saveTdNames
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_drivetemps_fb * GetTelem_drivetemps_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.
static bool verify(flatlogs::bufferPtrT &logBuff, flatlogs::msgLenT len)
A fixed-width timespec structure.
Definition timespecX.hpp:35
const std::vector< std::string > telemDrivetempsNames_0
const std::vector< float > telemDrivetempsTemps_0
SCENARIO("Create telem_drivetemps 0", "[a log item]")