Got logging and errors basically all working the way I want

This commit is contained in:
NaifBanana
2026-06-11 04:24:06 -05:00
parent 0f62aecfa3
commit 58121bdf28
10 changed files with 465 additions and 291 deletions
+1 -1
View File
@@ -35,5 +35,5 @@ const ErrorCodeMap TestError::ErrorMessages{
TEST(ErrorTest, Test) {
auto err = TestError(0, TestError(1, TestError(2, TestError(3, TestError(2)))));
ASSERT_STREQ(err.what(), "Hey!\n Trace: How\n Trace: You\n Trace: Doin\n Trace: You\n");
ASSERT_STREQ(err.what().c_str(), "Hey!\n Trace: How\n Trace: You\n Trace: Doin\n Trace: You");
}
+32 -3
View File
@@ -3,14 +3,43 @@
#include "Errors.hpp"
#include "Logger.hpp"
class TestError : public nb::Error<TestError> {
using Base = Error<TestError>;
public:
using Base::Base;
using Base::what;
using Base::code;
using Base::msg;
using Base::trace;
enum Codes : unsigned int {
A, B, C, D
};
static const std::string type;
static const nb::ErrorCodeMap ErrorMessages;
};
const std::string TestError::type="TestError";
const nb::ErrorCodeMap TestError::ErrorMessages{
{TestError::Codes::A, "Hey!"},
{TestError::Codes::B, "How"},
{TestError::Codes::C, "You"},
{TestError::Codes::D, "Doin"}
};
int main() {
nb::logger.log("Whoop!");
try {
THROW(nb::Error, "Hiii!");
} catch (nb::Error<nb::NoneType> e){
nb::logger.log("Winner winner chicken dinner!");
THROW(nb::Error(1));
} catch (nb::Error<> e){
nb::logger.log("nb::Error was thrown!");
}
try {
THROW(std::exception());
} catch (std::exception e){
nb::logger.log("std::exception was thrown!");
}
return 0;
+17 -17
View File
@@ -43,38 +43,38 @@ TEST(UtilsTest, TestFindAndReplace) {
TEST(UtilsTest, TestFindAndReplaceWstr) {
ASSERT_STREQ(
find_and_replace<std::wstring>(L"Jeff", L"e", L"efe").c_str(),
find_and_replace<wchar_t>(L"Jeff", L"e", L"efe").c_str(),
L"Jefeff"
);
std::wstring tmp = find_and_replace<std::wstring>(L"Naif", L"a", L"afa");
std::wstring tmp = find_and_replace<wchar_t>(L"Naif", L"a", L"afa");
ASSERT_STREQ(
find_and_replace<std::wstring>(tmp, L"i", L"ifi").c_str(),
find_and_replace<wchar_t>(tmp, L"i", L"ifi").c_str(),
L"Nafaifif"
);
tmp = find_and_replace<std::wstring>(L"aeiou", L"a", L"afa");
tmp = find_and_replace<std::wstring>(tmp, L"e", L"efe");
tmp = find_and_replace<std::wstring>(tmp, L"i", L"ifi");
tmp = find_and_replace<std::wstring>(tmp, L"o", L"ofo");
tmp = find_and_replace<std::wstring>(tmp, L"u", L"ufu");
tmp = find_and_replace<wchar_t>(L"aeiou", L"a", L"afa");
tmp = find_and_replace<wchar_t>(tmp, L"e", L"efe");
tmp = find_and_replace<wchar_t>(tmp, L"i", L"ifi");
tmp = find_and_replace<wchar_t>(tmp, L"o", L"ofo");
tmp = find_and_replace<wchar_t>(tmp, L"u", L"ufu");
ASSERT_STREQ(
tmp.c_str(),
L"afaefeifiofoufu"
);
tmp = find_and_replace<std::wstring>(tmp, L"afa", L"a");
tmp = find_and_replace<std::wstring>(tmp, L"efe", L"e");
tmp = find_and_replace<std::wstring>(tmp, L"ifi", L"i");
tmp = find_and_replace<std::wstring>(tmp, L"ofo", L"o");
tmp = find_and_replace<std::wstring>(tmp, L"ufu", L"u");
tmp = find_and_replace<wchar_t>(tmp, L"afa", L"a");
tmp = find_and_replace<wchar_t>(tmp, L"efe", L"e");
tmp = find_and_replace<wchar_t>(tmp, L"ifi", L"i");
tmp = find_and_replace<wchar_t>(tmp, L"ofo", L"o");
tmp = find_and_replace<wchar_t>(tmp, L"ufu", L"u");
ASSERT_STREQ(
tmp.c_str(),
L"aeiou"
);
}
TEST(UtilsTest, TestWstrToStr) {
/* TEST(UtilsTest, TestWstrToStr) {
ASSERT_STREQ(
nb::wstr_to_str(L"Hi!").c_str(),
"Hi!"
@@ -91,9 +91,9 @@ TEST(UtilsTest, TestWstrToStr) {
nb::wstr_to_str(L"Naif\ttalks\r\ra\t\nlot").c_str(),
"Naif\ttalks\r\ra\t\nlot"
);
}
} */
TEST(UtilsTest, TestStrToWstr) {
/* TEST(UtilsTest, TestStrToWstr) {
ASSERT_STREQ(
nb::str_to_wstr("Hi!").c_str(),
L"Hi!"
@@ -110,7 +110,7 @@ TEST(UtilsTest, TestStrToWstr) {
nb::str_to_wstr("Naif\ttalks\r\ra\t\nlot").c_str(),
L"Naif\ttalks\r\ra\t\nlot"
);
}
} */
struct A { bool x(); };
struct B { bool y(); };