API
 
Loading...
Searching...
No Matches
user_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/user_log.hpp"
5#include "../types/generated/user_log_generated.h"
6#include "../types/flatbuffer_log.hpp"
7
8/*
9 * GENERATED TEST FILE for types/user_log.hpp
10 * generated by generateTemplateCatch2Tests.py
11 */
12
13const std::string userLogEmail_0 = "txpdzcge1i"; // dummy email
14const std::string userLogMessage_0 = "hjizg1gkmb"; // dummy message
15
16
17/** Class to encapsulate user_log flatbuffer data using
18 ** => types/user_log.hpp
19 ** => types/generated/user_log_generated.h
20 **/
22{
23public:
24 // Saved input parameter value; unused
25 std::string m_saveUlEmail;
26 std::string m_saveUlMessage;
27
28 // Parameters retrieved from flatbuffer
29 std::string m_email;
30 std::string m_message;
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 CUserLog_0(std::string email_, std::string message_) {
40 // Save input parameters
41 m_saveUlEmail = email_;
42 m_saveUlMessage = message_;
43
44 // Create the flatbuffer messageT using the input parameters
45 auto ul = MagAOX::logger::user_log::messageT(email_, message_);
46
47 // Retrieve flatbuffer pointer (if not an empty_log type) and length
48 void* buffPtr = ul.builder.GetBufferPointer();
50
51 // Retrieve the flatbuffer parameters for Catch2 comparison below
52 m_email = std::string(MagAOX::logger::GetUser_log_fb(buffPtr)->email()->c_str());
53 m_message = std::string(MagAOX::logger::GetUser_log_fb(buffPtr)->message()->c_str());
54
55 // Run the user_log verifier
56 m_verify = verify(ul);
57 }
58
59 // Run the flatbuffer Verifier for this log type
60 // - requires bufferPtrT (shared_ptr<char*>) to full log entry
61 // comprising log header plus flatbuffer log message
62 bool verify(const typename MagAOX::logger::user_log::messageT& msg) {
63
64 // Timestamp, prioriy (use nominal value here)
65 flatlogs::timespecX tsx{0,0};
67
68 // Create full log: log header(*); log message (+)
69 // * Log level (priority)
70 // * Event code (implicit in <MagAOX::logger::type>)
71 // * Timestamp
72 // * Message size (variable length; 1, 2, or 8 bytes)
73 // + Message (variable length)
74
75 // N.G. allocates space and writes pointer value to logBuffer
76 flatlogs::bufferPtrT logBuffer;
77 flatlogs::logHeader::createLog<MagAOX::logger::user_log>(logBuffer
78 , tsx, msg
79 , prio);
80 // Run full log through flatbuffer Verifier
81 return MagAOX::logger::user_log::verify(logBuffer,L);
82 }
83};
84
85SCENARIO( "Create user_log 0", "[a log item]")
86{
87 GIVEN("a user_log log code")
88 {
89 WHEN("random values for fields")
90 {
91 // Create flatbuffer
93 // Compare flatbuffer parameters
94 REQUIRE(ul.m_email == userLogEmail_0);
95 REQUIRE(ul.m_message == userLogMessage_0);
96 REQUIRE(ul.m_verify);
97 }
98 }
99}
100
101
bool verify(const typename MagAOX::logger::user_log::messageT &msg)
CUserLog_0(std::string email_, std::string message_)
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::User_log_fb * GetUser_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.
The type of the message.
Definition user_log.hpp:35
static bool verify(flatlogs::bufferPtrT &logBuff, flatlogs::msgLenT len)
Definition user_log.hpp:48
A fixed-width timespec structure.
Definition timespecX.hpp:35
const std::string userLogEmail_0
SCENARIO("Create user_log 0", "[a log item]")
const std::string userLogMessage_0