Wrote a log wrapper "jtest::log". Made test results log to "test_results.log" file. Did some cleanup while I was at it too.

This commit is contained in:
2024-06-28 10:55:16 -04:00
parent b57cc68b6f
commit 4ea05e09b7
3 changed files with 23 additions and 16 deletions

View File

@@ -32,7 +32,7 @@ CPMAddPackage(
CPMAddPackage(
NAME jlog
URL https://git.redacted.cc/josh/jlog/archive/Prerelease-9.zip
URL https://git.redacted.cc/josh/jlog/archive/Prerelease-10.zip
)

View File

@@ -23,6 +23,8 @@ namespace jtest {
bool passed;
};
/// jlog log wrapper for jtest
void log(std::vector<jlog::token> tokens);
/// Generates and returns a sequence of logger tokens pre-formatted to the test data.
std::vector<jlog::token> log_test_format(const std::string& testname, const std::string& file, int line, bool passed);

View File

@@ -10,12 +10,23 @@ namespace jtest {
int passedtests;
int failedtests;
void log(std::vector<jlog::token> tokens)
{
jlog::set_default_logfile("test_results.log");
std::vector<jlog::token> wtokens;
auto head = jlog::token{.colorCode = jlog::ansi_escape_codes::FG_WHITE, .content ="JTEST"};
wtokens.push_back(head);
wtokens.insert(wtokens.end(), tokens.begin(), tokens.end());
jlog::log(wtokens);
}
std::vector<jlog::token> log_test_format(const std::string &testname, const std::string &file, int line,
bool passed) {
std::vector<jlog::token> wtokens;
auto head = jlog::token{.colorCode = jlog::ansi_escape_codes::FG_WHITE, .content ="JTEST"};
auto filedata = jlog::token{.content = std::format("{}:{}", file, line)};
std::vector<jlog::token> teststate;
@@ -31,7 +42,6 @@ namespace jtest {
auto raninfo = jlog::token{.content = std::format("{}/{}", rantests, testlist.size())};
wtokens.push_back(head);
wtokens.push_back(filedata);
wtokens.insert(wtokens.end(), teststate.begin(), teststate.end());
wtokens.push_back(raninfo);
@@ -40,16 +50,11 @@ namespace jtest {
}
std::vector<jlog::token> log_test_tracking_format() {
auto head = jlog::token{.colorCode = jlog::ansi_escape_codes::FG_WHITE, .content = "JTEST"};
auto tracking = jlog::token{.content = std::format("Tests Ran: [{}/{}] Failed: [{}/{}] Passed: [{}/{}]",
rantests,
testlist.size(),
failedtests,
rantests,
passedtests,
rantests),
.delimiter = ""};
return {head, tracking};
auto ran = jlog::token{.content = std::format("Tests Ran: [{}/{}]", rantests, testlist.size()), .delimiter = ""};
auto failed = jlog::token{.content = std::format("Failed: [{}/{}]", failedtests, rantests), .delimiter = ""};
auto passed = jlog::token{.content = std::format("Passed: [{}/{}]", passedtests, rantests), .delimiter = ""};
return {ran, failed, passed};
}
void definetest(const std::string &testname, const std::function<void()> &callback, const std::string &file,
@@ -97,7 +102,7 @@ namespace jtest {
if (passed) { passedtests++; }
else { failedtests++; }
jlog::log(log_test_format(testname, file, line, passed));
jtest::log(log_test_format(testname, file, line, passed));
return passed;
@@ -110,7 +115,7 @@ namespace jtest {
td.passed = test(td.testname, td.callback, td.file, td.line);
}
jlog::log(log_test_tracking_format());
jtest::log(log_test_tracking_format());
}
}