API
 
Loading...
Searching...
No Matches
telem_pico_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_pico.hpp"
5#include "../types/generated/telem_pico_generated.h"
6#include "../types/flatbuffer_log.hpp"
7
8/*
9 * GENERATED TEST FILE for types/telem_pico.hpp
10 * generated by generateTemplateCatch2Tests.py
11 */
12
13const std::vector<int64_t> telemPicoCounts_0 = { 5952182157957187975,-2907178991690401224,-1549026650734891803,3994450002567788935,-8913663551846302187,1415280264742643350,-7776669412920792847,6905244488415307123,-5069020632706939165,1131173786957693246 }; // dummy counts
14
15
16/** Class to encapsulate telem_pico flatbuffer data using
17 ** => types/telem_pico.hpp
18 ** => types/generated/telem_pico_generated.h
19 **/
21{
22public:
23 // Saved input parameter value; unused
24 std::vector<int64_t> m_saveTpCounts;
25
26 // Parameters retrieved from flatbuffer
27 std::vector<int64_t> m_counts;
28
29 // Flatbuffers verifier success/failure
30 bool m_verify{false};
31
32 // flatbuffer data length; used in ::verify
33 int L;
34
35 // Constructor
36 CTelemPico_0(std::vector<int64_t> counts_) {
37 // Save input parameters
38 m_saveTpCounts = counts_;
39
40 // Create the flatbuffer messageT using the input parameters
41 auto tp = MagAOX::logger::telem_pico::messageT(counts_);
42
43 // Retrieve flatbuffer pointer (if not an empty_log type) and length
44 void* buffPtr = tp.builder.GetBufferPointer();
46
47 // Retrieve the flatbuffer parameters for Catch2 comparison below
48 if (MagAOX::logger::GetTelem_pico_fb(buffPtr)->counts() != nullptr)
49 {
50 for(auto it = MagAOX::logger::GetTelem_pico_fb(buffPtr)->counts()->begin();
51 it != MagAOX::logger::GetTelem_pico_fb(buffPtr)->counts()->end();
52 ++it)
53 {
54 m_counts.push_back(*it);
55 }
56 }
57
58 // Run the telem_pico verifier
59 m_verify = verify(tp);
60 }
61
62 // Run the flatbuffer Verifier for this log type
63 // - requires bufferPtrT (shared_ptr<char*>) to full log entry
64 // comprising log header plus flatbuffer log message
65 bool verify(const typename MagAOX::logger::telem_pico::messageT& msg) {
66
67 // Timestamp, prioriy (use nominal value here)
68 flatlogs::timespecX tsx{0,0};
70
71 // Create full log: log header(*); log message (+)
72 // * Log level (priority)
73 // * Event code (implicit in <MagAOX::logger::type>)
74 // * Timestamp
75 // * Message size (variable length; 1, 2, or 8 bytes)
76 // + Message (variable length)
77
78 // N.G. allocates space and writes pointer value to logBuffer
79 flatlogs::bufferPtrT logBuffer;
80 flatlogs::logHeader::createLog<MagAOX::logger::telem_pico>(logBuffer
81 , tsx, msg
82 , prio);
83 // Run full log through flatbuffer Verifier
84 return MagAOX::logger::telem_pico::verify(logBuffer,L);
85 }
86};
87
88SCENARIO( "Create telem_pico 0", "[a log item]")
89{
90 GIVEN("a telem_pico log code")
91 {
92 WHEN("random values for fields")
93 {
94 // Create flatbuffer
96 // Compare flatbuffer parameters
97 REQUIRE(tp.m_counts == telemPicoCounts_0);
98 REQUIRE(tp.m_verify);
99 }
100 }
101}
102
103
CTelemPico_0(std::vector< int64_t > counts_)
std::vector< int64_t > m_saveTpCounts
bool verify(const typename MagAOX::logger::telem_pico::messageT &msg)
std::vector< int64_t > m_counts
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_pico_fb * GetTelem_pico_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_pico 0", "[a log item]")
const std::vector< int64_t > telemPicoCounts_0