summaryrefslogtreecommitdiff
path: root/asl/testing/testing.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'asl/testing/testing.cpp')
-rw-r--r--asl/testing/testing.cpp162
1 files changed, 81 insertions, 81 deletions
diff --git a/asl/testing/testing.cpp b/asl/testing/testing.cpp
index aff6a74..1aa0571 100644
--- a/asl/testing/testing.cpp
+++ b/asl/testing/testing.cpp
@@ -1,81 +1,81 @@
-#include "asl/testing/testing.hpp"
-
-#include "asl/print.hpp"
-
-static asl::testing::Test* g_head = nullptr;
-static asl::testing::Test* g_tail = nullptr;
-
-void asl::testing::register_test(Test* test)
-{
- if (g_head == nullptr && g_tail == nullptr)
- {
- g_head = test;
- g_tail = test;
- }
- else
- {
- g_tail->m_next = test;
- test->m_prev = asl::exchange(g_tail, test);
- }
-}
-
-static bool g_current_test_fail = false;
-
-void asl::testing::report_failure(const char* msg, const char* file, int line)
-{
- asl::eprint("--------------------------------------------------------------\n");
- asl::eprint("Test assertion failed at {}, line {}:\n", file, line);
- asl::eprint(" {}\n", msg);
- asl::eprint("--------------------------------------------------------------\n");
- g_current_test_fail = true;
-}
-
-#define RESET "\x1b[0m"
-#define RED(S) "\x1b[0;31m" S RESET
-#define GREEN(S) "\x1b[0;32m" S RESET
-
-int main([[maybe_unused]] int argc, [[maybe_unused]] char* argv[])
-{
- int fail = 0;
- int pass = 0;
-
- asl::testing::Test* failed_head = nullptr;
-
- for (auto* it = g_head; it != nullptr; it = it->m_next)
- {
- asl::eprint(GREEN("[ RUN ]") " {}\n", it->m_case_name);
-
- g_current_test_fail = false;
- it->m_fn();
-
- if (!g_current_test_fail)
- {
- asl::eprint(GREEN("[ OK ]") " {}\n", it->m_case_name);
- pass += 1;
- }
- else
- {
- asl::eprint(RED("[ FAILED ]") " {}\n", it->m_case_name);
- fail += 1;
-
- it->m_next = asl::exchange(failed_head, it);
- }
- }
-
- asl::eprint(GREEN("[----------]") " {} test(s) run\n", fail + pass);
-
- if (fail == 0)
- {
- asl::eprint(GREEN("[ PASSED ]") " Good job!\n");
- }
- else
- {
- asl::eprint(RED("[ FAILED ]") " {} test(s) failed\n", fail);
- for (auto* it = failed_head; it != nullptr; it = it->m_next)
- {
- asl::eprint(RED("[ FAILED ]") " {}\n", it->m_case_name);
- }
- }
-
- return fail;
-}
+#include "asl/testing/testing.hpp"
+
+#include "asl/print.hpp"
+
+static asl::testing::Test* g_head = nullptr;
+static asl::testing::Test* g_tail = nullptr;
+
+void asl::testing::register_test(Test* test)
+{
+ if (g_head == nullptr && g_tail == nullptr)
+ {
+ g_head = test;
+ g_tail = test;
+ }
+ else
+ {
+ g_tail->m_next = test;
+ test->m_prev = asl::exchange(g_tail, test);
+ }
+}
+
+static bool g_current_test_fail = false;
+
+void asl::testing::report_failure(const char* msg, const char* file, int line)
+{
+ asl::eprint("--------------------------------------------------------------\n");
+ asl::eprint("Test assertion failed at {}, line {}:\n", file, line);
+ asl::eprint(" {}\n", msg);
+ asl::eprint("--------------------------------------------------------------\n");
+ g_current_test_fail = true;
+}
+
+#define RESET "\x1b[0m"
+#define RED(S) "\x1b[0;31m" S RESET
+#define GREEN(S) "\x1b[0;32m" S RESET
+
+int main([[maybe_unused]] int argc, [[maybe_unused]] char* argv[])
+{
+ int fail = 0;
+ int pass = 0;
+
+ asl::testing::Test* failed_head = nullptr;
+
+ for (auto* it = g_head; it != nullptr; it = it->m_next)
+ {
+ asl::eprint(GREEN("[ RUN ]") " {}\n", it->m_case_name);
+
+ g_current_test_fail = false;
+ it->m_fn();
+
+ if (!g_current_test_fail)
+ {
+ asl::eprint(GREEN("[ OK ]") " {}\n", it->m_case_name);
+ pass += 1;
+ }
+ else
+ {
+ asl::eprint(RED("[ FAILED ]") " {}\n", it->m_case_name);
+ fail += 1;
+
+ it->m_next = asl::exchange(failed_head, it);
+ }
+ }
+
+ asl::eprint(GREEN("[----------]") " {} test(s) run\n", fail + pass);
+
+ if (fail == 0)
+ {
+ asl::eprint(GREEN("[ PASSED ]") " Good job!\n");
+ }
+ else
+ {
+ asl::eprint(RED("[ FAILED ]") " {} test(s) failed\n", fail);
+ for (auto* it = failed_head; it != nullptr; it = it->m_next)
+ {
+ asl::eprint(RED("[ FAILED ]") " {}\n", it->m_case_name);
+ }
+ }
+
+ return fail;
+}