API
 
Loading...
Searching...
No Matches
text_log_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/text_log.hpp"
5#include "../types/flatbuffer_log.hpp"
6
7/*
8 * GENERATED TEST FILE for types/text_log.hpp
9 * generated by generateTemplateCatch2Tests.py
10 */
11
12const char * textLogMsg_0 = "8mprpohrgi"; // dummy msg
13
14
15/** Class to encapsulate text_log flatbuffer data using
16 ** => types/text_log.hpp
17 ** => types/generated/text_log_generated.h
18 **/
20{
21public:
22 // Saved input parameter value; unused
24
25 // Parameters retrieved from flatbuffer
26 char * m_msg;
27
28 // Flatbuffers verifier success/failure
29 bool m_verify{false};
30
31 // flatbuffer data length; used in ::verify
32 int L;
33
34 // Constructor
35 CTextLog_0(char * msg_) {
36 // Save input parameters
37 m_saveTlMsg = msg_;
38
39 // Create the flatbuffer messageT using the input parameters
41
42 // Retrieve flatbuffer pointer (if not an empty_log type) and length
43 void* buffPtr = tl.builder.GetBufferPointer();
45
46 // Retrieve the flatbuffer parameters for Catch2 comparison below
47 size_t msgStrLen = strlen(MagAOX::logger::GetString_log_fb(buffPtr)->message()->c_str()) + 1;
48 m_msg = (char *) malloc(msgStrLen);
49 strncpy(m_msg, MagAOX::logger::GetString_log_fb(buffPtr)->message()->c_str(), msgStrLen);
50
51 // Run the text_log verifier
52 m_verify = verify(tl);
53 }
54
55 // Run the flatbuffer Verifier for this log type
56 // - requires bufferPtrT (shared_ptr<char*>) to full log entry
57 // comprising log header plus flatbuffer log message
58 bool verify(const typename MagAOX::logger::text_log::messageT& msg) {
59
60 // Timestamp, prioriy (use nominal value here)
61 flatlogs::timespecX tsx{0,0};
63
64 // Create full log: log header(*); log message (+)
65 // * Log level (priority)
66 // * Event code (implicit in <MagAOX::logger::type>)
67 // * Timestamp
68 // * Message size (variable length; 1, 2, or 8 bytes)
69 // + Message (variable length)
70
71 // N.G. allocates space and writes pointer value to logBuffer
72 flatlogs::bufferPtrT logBuffer;
73 flatlogs::logHeader::createLog<MagAOX::logger::text_log>(logBuffer
74 , tsx, msg
75 , prio);
76 // Run full log through flatbuffer Verifier
77 return MagAOX::logger::text_log::verify(logBuffer,L);
78 }
79};
80
81SCENARIO( "Create text_log 0", "[a log item]")
82{
83 GIVEN("a text_log log code")
84 {
85 WHEN("random values for fields")
86 {
87 // Create flatbuffer
88 CTextLog_0 tl = CTextLog_0((char *) textLogMsg_0);
89 // Compare flatbuffer parameters
90 REQUIRE(strcmp(tl.m_msg, textLogMsg_0) == 0);
91 REQUIRE(tl.m_verify);
92 }
93 }
94}
95
96const std::string textLogMsg_1 = "y1p4e1nmdr"; // dummy msg
97
98
99/** Class to encapsulate text_log flatbuffer data using
100 ** => types/text_log.hpp
101 ** => types/generated/text_log_generated.h
102 **/
104{
105public:
106 // Saved input parameter value; unused
107 std::string m_saveTlMsg;
108
109 // Parameters retrieved from flatbuffer
110 std::string m_msg;
111
112 // Flatbuffers verifier success/failure
113 bool m_verify{false};
114
115 // flatbuffer data length; used in ::verify
116 int L;
117
118 // Constructor
119 CTextLog_1(std::string msg_) {
120 // Save input parameters
121 m_saveTlMsg = msg_;
122
123 // Create the flatbuffer messageT using the input parameters
125
126 // Retrieve flatbuffer pointer (if not an empty_log type) and length
127 void* buffPtr = tl.builder.GetBufferPointer();
129
130 // Retrieve the flatbuffer parameters for Catch2 comparison below
131 m_msg = std::string(MagAOX::logger::GetString_log_fb(buffPtr)->message()->c_str());
132
133 // Run the text_log verifier
134 m_verify = verify(tl);
135 }
136
137 // Run the flatbuffer Verifier for this log type
138 // - requires bufferPtrT (shared_ptr<char*>) to full log entry
139 // comprising log header plus flatbuffer log message
140 bool verify(const typename MagAOX::logger::text_log::messageT& msg) {
141
142 // Timestamp, prioriy (use nominal value here)
143 flatlogs::timespecX tsx{0,0};
145
146 // Create full log: log header(*); log message (+)
147 // * Log level (priority)
148 // * Event code (implicit in <MagAOX::logger::type>)
149 // * Timestamp
150 // * Message size (variable length; 1, 2, or 8 bytes)
151 // + Message (variable length)
152
153 // N.G. allocates space and writes pointer value to logBuffer
154 flatlogs::bufferPtrT logBuffer;
155 flatlogs::logHeader::createLog<MagAOX::logger::text_log>(logBuffer
156 , tsx, msg
157 , prio);
158 // Run full log through flatbuffer Verifier
159 return MagAOX::logger::text_log::verify(logBuffer,L);
160 }
161};
162
163SCENARIO( "Create text_log 1", "[a log item]")
164{
165 GIVEN("a text_log log code")
166 {
167 WHEN("random values for fields")
168 {
169 // Create flatbuffer
171 // Compare flatbuffer parameters
172 REQUIRE(tl.m_msg == textLogMsg_1);
173 REQUIRE(tl.m_verify);
174 }
175 }
176}
177
178
bool verify(const typename MagAOX::logger::text_log::messageT &msg)
bool verify(const typename MagAOX::logger::text_log::messageT &msg)
CTextLog_1(std::string msg_)
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::String_log_fb * GetString_log_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 char * textLogMsg_0
SCENARIO("Create text_log 0", "[a log item]")
const std::string textLogMsg_1