API
 
Loading...
Searching...
No Matches
git_state_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/git_state.hpp"
5#include "../types/generated/git_state_generated.h"
6#include "../types/flatbuffer_log.hpp"
7
8/*
9 * GENERATED TEST FILE for types/git_state.hpp
10 * generated by generateTemplateCatch2Tests.py
11 */
12
13const std::string gitStateRepoName_0 = "gnzr772wtq"; // dummy repoName
14const std::string gitStateSha1_0 = "qxf911tbbj"; // dummy sha1
15const bool gitStateModified_0 = 1; // dummy modified
16
17
18/** Class to encapsulate git_state flatbuffer data using
19 ** => types/git_state.hpp
20 ** => types/generated/git_state_generated.h
21 **/
23{
24public:
25 // Saved input parameter value; unused
26 std::string m_saveGsRepoName;
27 std::string m_saveGsSha1;
29
30 // Parameters retrieved from flatbuffer
31 std::string m_repoName;
32 std::string m_sha1;
34
35 // Flatbuffers verifier success/failure
36 bool m_verify{false};
37
38 // flatbuffer data length; used in ::verify
39 int L;
40
41 // Constructor
42 CGitState_0(std::string repoName_, std::string sha1_, bool modified_) {
43 // Save input parameters
44 m_saveGsRepoName = repoName_;
45 m_saveGsSha1 = sha1_;
46 m_saveGsModified = modified_;
47
48 // Create the flatbuffer messageT using the input parameters
49 auto gs = MagAOX::logger::git_state::messageT(repoName_, sha1_, modified_);
50
51 // Retrieve flatbuffer pointer (if not an empty_log type) and length
52 void* buffPtr = gs.builder.GetBufferPointer();
54
55 // Retrieve the flatbuffer parameters for Catch2 comparison below
56 m_repoName = std::string(MagAOX::logger::GetGit_state_fb(buffPtr)->repo()->c_str());
57 m_sha1 = std::string(MagAOX::logger::GetGit_state_fb(buffPtr)->sha1()->c_str());
58 m_modified = MagAOX::logger::GetGit_state_fb(buffPtr)->modified();
59
60 // Run the git_state verifier
61 m_verify = verify(gs);
62 }
63
64 // Run the flatbuffer Verifier for this log type
65 // - requires bufferPtrT (shared_ptr<char*>) to full log entry
66 // comprising log header plus flatbuffer log message
67 bool verify(const typename MagAOX::logger::git_state::messageT& msg) {
68
69 // Timestamp, prioriy (use nominal value here)
70 flatlogs::timespecX tsx{0,0};
72
73 // Create full log: log header(*); log message (+)
74 // * Log level (priority)
75 // * Event code (implicit in <MagAOX::logger::type>)
76 // * Timestamp
77 // * Message size (variable length; 1, 2, or 8 bytes)
78 // + Message (variable length)
79
80 // N.G. allocates space and writes pointer value to logBuffer
81 flatlogs::bufferPtrT logBuffer;
82 flatlogs::logHeader::createLog<MagAOX::logger::git_state>(logBuffer
83 , tsx, msg
84 , prio);
85 // Run full log through flatbuffer Verifier
86 return MagAOX::logger::git_state::verify(logBuffer,L);
87 }
88};
89
90SCENARIO( "Create git_state 0", "[a log item]")
91{
92 GIVEN("a git_state log code")
93 {
94 WHEN("random values for fields")
95 {
96 // Create flatbuffer
98 // Compare flatbuffer parameters
99 REQUIRE(gs.m_repoName == gitStateRepoName_0);
100 REQUIRE(gs.m_sha1 == gitStateSha1_0);
101 REQUIRE(gs.m_modified == gitStateModified_0);
102 REQUIRE(gs.m_verify);
103 }
104 }
105}
106
107
CGitState_0(std::string repoName_, std::string sha1_, bool modified_)
bool verify(const typename MagAOX::logger::git_state::messageT &msg)
const std::string gitStateSha1_0
const std::string gitStateRepoName_0
const bool gitStateModified_0
SCENARIO("Create git_state 0", "[a log item]")
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::Git_state_fb * GetGit_state_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.
Definition git_state.hpp:36
static bool verify(flatlogs::bufferPtrT &logBuff, flatlogs::msgLenT len)
Definition git_state.hpp:55
A fixed-width timespec structure.
Definition timespecX.hpp:35