From da39940e9a49016a32ba4f206b63f7045158d54c Mon Sep 17 00:00:00 2001 From: sanine Date: Sun, 26 Dec 2021 00:02:04 -0600 Subject: add test for basic assert --- CMakeLists.txt | 1 + lily-test.c | 6 ++++++ lily-test.h | 13 +++++++++++-- tests/assertions.c | 30 ++++++++++++++++++++++++++++++ tests/main.c | 1 + tests/tests.h | 1 + 6 files changed, 50 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e209e55..d36e1b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,7 @@ add_definitions("-DSOURCE_PATH_SIZE=${SOURCE_PATH_SIZE}") include_directories(${CMAKE_SOURCE_DIR}) set (TEST_SRC ${CMAKE_SOURCE_DIR}/tests) add_executable(lily-metatest + ${CMAKE_SOURCE_DIR}/lily-test.c ${TEST_SRC}/main.c ${TEST_SRC}/helpers.c ${TEST_SRC}/assertions.c diff --git a/lily-test.c b/lily-test.c index 3dd0c4b..a3f30a2 100644 --- a/lily-test.c +++ b/lily-test.c @@ -1,2 +1,8 @@ #include "lily-test.h" +struct lily_globals_t _lily_globals; + +void lily_assert_msg(bool statement, const char *location, + const char *format_string, ...) +{ +} diff --git a/lily-test.h b/lily-test.h index c2f1b8b..ee37ed5 100644 --- a/lily-test.h +++ b/lily-test.h @@ -4,6 +4,7 @@ #include #include #include +#include #define STR_IMP(x) #x #define STR(x) STR_IMP(x) @@ -15,7 +16,15 @@ #define LILY_LOCATION ((__FILE__ ":" STR(__LINE__)) + SOURCE_PATH_SIZE) #endif -void lily_assert_printf(bool statement, const char *location, - const char *format_string, ...); +struct lily_globals_t { + jmp_buf env; + char *error_msg; + const char *error_location; +}; + +extern struct lily_globals_t _lily_globals; + +void lily_assert_msg(bool statement, const char *location, + const char *format_string, ...); #endif diff --git a/tests/assertions.c b/tests/assertions.c index 5fb5e8d..baa0045 100644 --- a/tests/assertions.c +++ b/tests/assertions.c @@ -14,3 +14,33 @@ const char *test_LILY_LOCATION() return 0; } + + +const char *test_assert_msg() +{ + int val = setjmp(_lily_globals.env); + if (val != 0) + return "true assertion failed incorrectly!"; + + lily_assert_msg(true, LILY_LOCATION, "should not fail!"); + + int passed_thru = 0; + _lily_globals.error_msg = NULL; + _lily_globals.error_location = ""; + val = setjmp(_lily_globals.env); + + if (passed_thru == 0) { + passed_thru = 1; + // another line that you SHOULD NOT MOVE! + lily_assert_msg(false, LILY_LOCATION, "%s %s!", "should", "fail"); + return "false assertion incorrectly succeeded!"; + } + else { + if (strcmp(_lily_globals.error_msg, "should fail!") != 0) + return "false assertion produced incorrect error message!"; + if (strcmp(_lily_globals.error_location, "tests/assertions.c:35")) + return "false assertion produced incorrect error location!"; + } + + return 0; +} diff --git a/tests/main.c b/tests/main.c index 0659713..dbb813c 100644 --- a/tests/main.c +++ b/tests/main.c @@ -9,6 +9,7 @@ int main() { run_test(test_LILY_LOCATION); + run_test(test_assert_msg); return 0; } diff --git a/tests/tests.h b/tests/tests.h index eab0115..7889445 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -8,5 +8,6 @@ int validate_message(const char* received, const char* expected, // test cases const char* test_LILY_LOCATION(); +const char* test_assert_msg(); #endif -- cgit v1.2.1