diff options
author | sanine <sanine.not@pm.me> | 2021-12-26 00:02:04 -0600 |
---|---|---|
committer | sanine <sanine.not@pm.me> | 2021-12-26 00:02:04 -0600 |
commit | da39940e9a49016a32ba4f206b63f7045158d54c (patch) | |
tree | 942cb178d1ca8fd99c4028cd1d33f172105482c0 | |
parent | 9c4bd59002109c850dda3ab79febc17f7f0367e9 (diff) |
add test for basic assert
-rw-r--r-- | CMakeLists.txt | 1 | ||||
-rw-r--r-- | lily-test.c | 6 | ||||
-rw-r--r-- | lily-test.h | 13 | ||||
-rw-r--r-- | tests/assertions.c | 30 | ||||
-rw-r--r-- | tests/main.c | 1 | ||||
-rw-r--r-- | 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 <stdbool.h> #include <stddef.h> #include <stdint.h> +#include <setjmp.h> #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 |