summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2021-12-26 00:02:04 -0600
committersanine <sanine.not@pm.me>2021-12-26 00:02:04 -0600
commitda39940e9a49016a32ba4f206b63f7045158d54c (patch)
tree942cb178d1ca8fd99c4028cd1d33f172105482c0
parent9c4bd59002109c850dda3ab79febc17f7f0367e9 (diff)
add test for basic assert
-rw-r--r--CMakeLists.txt1
-rw-r--r--lily-test.c6
-rw-r--r--lily-test.h13
-rw-r--r--tests/assertions.c30
-rw-r--r--tests/main.c1
-rw-r--r--tests/tests.h1
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