API
 
Loading...
Searching...
No Matches
telem_observer_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_observer.hpp"
5#include "../types/generated/telem_observer_generated.h"
6#include "../types/flatbuffer_log.hpp"
7
8/*
9 * GENERATED TEST FILE for types/telem_observer.hpp
10 * generated by generateTemplateCatch2Tests.py
11 */
12
13const std::string telemObserver&email_0 = "6uto2vdc0a"; // dummy &email
14const std::string telemObserver&obsName_0 = "83mw14yhn7"; // dummy &obsName
15const bool telemObserver&observing_0 = 1; // dummy &observing
16const std::string telemObserver&tgtName_0 = "l4wbd2uhyg"; // dummy &tgtName
17const std::string telemObserver&opEmail_0 = "w8bublqf0r"; // dummy &opEmail
18
19
20/** Class to encapsulate telem_observer flatbuffer data using
21 ** => types/telem_observer.hpp
22 ** => types/generated/telem_observer_generated.h
23 **/
25{
26public:
27 // Saved input parameter value; unused
28 std::string m_saveTo&email;
29 std::string m_saveTo&obsName;
30 bool m_saveTo&observing;
31 std::string m_saveTo&tgtName;
32 std::string m_saveTo&opEmail;
33
34 // Parameters retrieved from flatbuffer
35 std::string m_&email;
36 std::string m_&obsName;
37 bool m_&observing;
38 std::string m_&tgtName;
39 std::string m_&opEmail;
40
41 // Flatbuffers verifier success/failure
42 bool m_verify{false};
43
44 // flatbuffer data length; used in ::verify
45 int L;
46
47 // Constructor
48 CTelemObserver_0(std::string &email_, std::string &obsName_, bool &observing_, std::string &tgtName_, std::string &opEmail_) {
49 // Save input parameters
50 m_saveTo&email = &email_;
51 m_saveTo&obsName = &obsName_;
52 m_saveTo&observing = &observing_;
53 m_saveTo&tgtName = &tgtName_;
54 m_saveTo&opEmail = &opEmail_;
55
56 // Create the flatbuffer messageT using the input parameters
57 auto to = MagAOX::logger::telem_observer::messageT(&email_, &obsName_, &observing_, &tgtName_, &opEmail_);
58
59 // Retrieve flatbuffer pointer (if not an empty_log type) and length
60 void* buffPtr = to.builder.GetBufferPointer();
62
63 // Retrieve the flatbuffer parameters for Catch2 comparison below
64 m_&email = std::string(MagAOX::logger::GetTelem_observer_fb(buffPtr)->email()->c_str());
65 m_&obsName = std::string(MagAOX::logger::GetTelem_observer_fb(buffPtr)->obsName()->c_str());
66 m_&observing = MagAOX::logger::GetTelem_observer_fb(buffPtr)->observing();
67 m_&tgtName = std::string(MagAOX::logger::GetTelem_observer_fb(buffPtr)->tgt_name()->c_str());
68 m_&opEmail = std::string(MagAOX::logger::GetTelem_observer_fb(buffPtr)->operator_email()->c_str());
69
70 // Run the telem_observer verifier
71 m_verify = verify(to);
72 }
73
74 // Run the flatbuffer Verifier for this log type
75 // - requires bufferPtrT (shared_ptr<char*>) to full log entry
76 // comprising log header plus flatbuffer log message
78
79 // Timestamp, prioriy (use nominal value here)
80 flatlogs::timespecX tsx{0,0};
82
83 // Create full log: log header(*); log message (+)
84 // * Log level (priority)
85 // * Event code (implicit in <MagAOX::logger::type>)
86 // * Timestamp
87 // * Message size (variable length; 1, 2, or 8 bytes)
88 // + Message (variable length)
89
90 // N.G. allocates space and writes pointer value to logBuffer
91 flatlogs::bufferPtrT logBuffer;
92 flatlogs::logHeader::createLog<MagAOX::logger::telem_observer>(logBuffer
93 , tsx, msg
94 , prio);
95 // Run full log through flatbuffer Verifier
97 }
98};
99
100SCENARIO( "Create telem_observer 0", "[a log item]")
101{
102 GIVEN("a telem_observer log code")
103 {
104 WHEN("random values for fields")
105 {
106 // Create flatbuffer
107 CTelemObserver_0 to = CTelemObserver_0(telemObserver&email_0, telemObserver&obsName_0, telemObserver&observing_0, telemObserver&tgtName_0, telemObserver&opEmail_0);
108 // Compare flatbuffer parameters
109 REQUIRE(to.m_&email == telemObserver&email_0);
110 REQUIRE(to.m_&obsName == telemObserver&obsName_0);
111 REQUIRE(to.m_&observing == telemObserver&observing_0);
112 REQUIRE(to.m_&tgtName == telemObserver&tgtName_0);
113 REQUIRE(to.m_&opEmail == telemObserver&opEmail_0);
114 REQUIRE(to.m_verify);
115 }
116 }
117}
118
119
bool verify(const typename MagAOX::logger::telem_observer::messageT &msg)
CTelemObserver_0(std::string &email_, std::string &obsName_, bool &observing_, std::string &tgtName_, std::string &opEmail_)
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_observer_fb * GetTelem_observer_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 std::string telemObserver & opEmail_0
const std::string telemObserver & tgtName_0
const std::string telemObserver & obsName_0
const std::string telemObserver & email_0
const bool telemObserver & observing_0
SCENARIO("Create telem_observer 0", "[a log item]")