General Purpose library for Freestanding C++ and POSIX systems
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

225 lines
5.4 KiB

#include "test_scaffold.h"
#include "gp/containers/array.hpp"
#include "gp/system/logging_segment.hpp"
#include <chrono>
#include <cmath>
#include <fstream>
#include <iomanip>
#include <iostream>
struct logging_test : public test_scaffold {
logging_test() {
name = __FILE__ ":1";
}
virtual int run() {
int res = 0;
const gp::buffer<char> name{"FIRST TEST"};
const gp::buffer<char> text{"FIRST TEST TEXT"};
const gp::buffer<char> new_text{"NEW TEST TEXT"};
static_logging_segment<4> logger;
gp_config::assertion(logger.size() == 0, "new logger not empty");
logger.push_segment(name, text);
gp_config::assertion(logger.size() == 1, "should be 1 after insertion");
logger.set_segment(name, new_text);
gp_config::assertion(logger.size() == 1, "should still be one as key is identical");
return res;
}
};
append_test dummy_rduhk786f(new logging_test{});
struct logging_test2 : public test_scaffold {
logging_test2() {
name = __FILE__ ":2";
}
virtual int run() {
int res = 0;
const gp::buffer<char> name[5]{{"TEST 1"},{"TEST 2"},{"TEST 3"},{"TEST 4"},{"TEST 5"}};
const gp::buffer<char> texts[5] {{"NEW TEST TEXT 1"},{"NEW TEST TEXT 2"},{"NEW TEST TEXT 3"},{"NEW TEST TEXT 4"},{"NEW TEST TEXT 5"}};
static_logging_segment<4> logger;
gp_config::assertion(logger.size() == 0, "new logger not empty");
for(auto i : {0,1,2,3,4}) {
logger.push_segment(name[i], texts[i]);
}
gp_config::assertion(logger.size() <= 4, "Size should be capped at 4");
gp_config::assertion(logger.size() == 4, "Size should be 4");
return res;
}
};
append_test dummy_sghgfg6f(new logging_test2{});
struct logging_test3 : public test_scaffold {
logging_test3() {
name = __FILE__ ":3";
}
virtual int run() {
int res = 0;
const gp::buffer<char> name[5]{{"TEST 1"},{"TEST 2"},{"TEST 3"},{"TEST 4"},{"TEST 5"}};
const gp::buffer<char> texts[5] {{"NEW TEST TEXT 1"},{"NEW TEST TEXT 2"},{"NEW TEST TEXT 3"},{"NEW TEST TEXT 4"},{"NEW TEST TEXT 5"}};
static_logging_segment<4> logger;
gp_config::assertion(logger.size() == 0, "new logger not empty");
for(auto i : {0,1,2,3,4}) {
logger.set_segment(name[i], texts[i]);
log_segment("new element", name[i].begin().data);
}
log_segment("size", std::to_string(logger.size()).c_str());
gp_config::assertion(logger.size() <= 4, "Size should be capped at 4");
gp_config::assertion(logger.size() == 4, "Size should be 4");
return res;
}
};
append_test dummy_dgiudfg6f(new logging_test3{});
struct logging_test4 : public test_scaffold {
logging_test4() {
name = __FILE__ ":4";
}
virtual int run() {
int res = 0;
const gp::buffer<char> name[5]{{"TEST 1"},{"TEST 2"},{"TEST 3"},{"TEST 4"},{"TEST 5"}};
const gp::buffer<char> texts[5] {{"NEW TEST TEXT 1"},{"NEW TEST TEXT 2"},{"NEW TEST TEXT 3"},{"NEW TEST TEXT 4"},{"NEW TEST TEXT 5"}};
static_logging_segment<4> logger;
gp_config::assertion(logger.size() == 0, "new logger not empty");
for(auto i : {0,1,2,3,4}) {
logger.set_segment(name[i], texts[i]);
}
log_segment("size", std::to_string(logger.size()).c_str());
gp_config::assertion(logger.size() <= 4, "Size should be capped at 4");
gp_config::assertion(logger.size() == 4, "Size should be 4");
for(auto i : {0, 1, 2, 3}) {
auto v = logger.get_segment_by_idx(i);
bool same = true;
log_segment("found", std::string(v.name.begin().data, v.name.size()).c_str());
for(size_t it = 0; it < name[0].size(); it++) {
same &= name[0][it] == v.name[it];
}
gp_config::assertion(!same, "Should not contain oldest element");
}
return res;
}
};
append_test dummy_aertm46f(new logging_test4{});
struct logging_test5 : public test_scaffold {
logging_test5() {
name = __FILE__ ":5";
}
virtual int run() {
int res = 0;
const gp::buffer<char> name[5]{{"TEST 1"},{"TEST 2"},{"TEST 3"},{"TEST 4"},{"TEST 5"}};
const gp::buffer<char> texts[5] {{"NEW TEST TEXT 1"},{"NEW TEST TEXT 2"},{"NEW TEST TEXT 3"},{"NEW TEST TEXT 4"},{"NEW TEST TEXT 5"}};
const uint16_t prios[5] {1,1,0,1,1};
static_logging_segment<4> logger;
gp_config::assertion(logger.size() == 0, "new logger not empty");
for(auto i : {0,1,2,3,4}) {
logger.set_segment(name[i], texts[i], prios[i]);
}
log_segment("size", std::to_string(logger.size()).c_str());
gp_config::assertion(logger.size() <= 4, "Size should be capped at 4");
gp_config::assertion(logger.size() == 4, "Size should be 4");
for(auto i : {0, 1, 2, 3}) {
auto v = logger.get_segment_by_idx(i);
log_segment("prio value", std::to_string(v.priority).c_str());
gp_config::assertion(v.priority != 0, "Should not contain low prio element");
}
return res;
}
};
append_test dummy_azefdhi6f(new logging_test5{});
struct logging_test6 : public test_scaffold {
logging_test6() {
name = __FILE__ ":6";
}
virtual int run() {
int res = 0;
const gp::buffer<char> name{"FIRST TEST"};
const gp::buffer<char> text{"FIRST TEST TEXT"};
const gp::buffer<char> new_text{"NEW TEST TEXT"};
static_logging_segment<4> logger;
gp_config::assertion(logger.size() == 0, "new logger not empty");
logger.push_segment(name, text);
gp_config::assertion(logger.size() == 1, "should be 1 after insertion");
logger.set_segment(name, new_text);
gp_config::assertion(logger.size() == 1, "should still be one as key is identical");
logger.clear();
gp_config::assertion(logger.size() == 0, "should be zero after clear");
return res;
}
};
append_test dummy_ra45645sdf(new logging_test6{});