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.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/asl/testing/testing.cpp b/asl/testing/testing.cpp
index 623d87b..a4eecd7 100644
--- a/asl/testing/testing.cpp
+++ b/asl/testing/testing.cpp
@@ -21,21 +21,31 @@ void asl::testing::register_test(Test* test)
static bool g_current_test_fail = false;
-void asl::testing::report_failure(const char* msg, const char* file, int line)
+void asl::testing::report_failure(const char* msg, const asl::source_location& sl)
{
asl::eprint("--------------------------------------------------------------\n");
- asl::eprint("Test assertion failed at {}, line {}:\n", file, line);
+ asl::eprint("Test assertion failed at {}, line {}:\n", sl.file, sl.line);
asl::eprint(" {}\n", msg);
asl::eprint("--------------------------------------------------------------\n");
g_current_test_fail = true;
}
+static void report_assert_failure(const char* msg, const asl::source_location& sl, void*)
+{
+ asl::eprint("------------------------------------------------------------\n");
+ asl::eprint("Assertion failure at {}, line {}:\n", sl.file, sl.line);
+ asl::eprint("{}\n", msg);
+ asl::eprint("------------------------------------------------------------\n");
+}
+
#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[])
{
+ asl::set_assert_failure_handler(report_assert_failure, nullptr);
+
int fail = 0;
int pass = 0;