summaryrefslogtreecommitdiff
path: root/lily-test.c
diff options
context:
space:
mode:
Diffstat (limited to 'lily-test.c')
-rw-r--r--lily-test.c120
1 files changed, 120 insertions, 0 deletions
diff --git a/lily-test.c b/lily-test.c
index 69bd0ce..9b54021 100644
--- a/lily-test.c
+++ b/lily-test.c
@@ -54,3 +54,123 @@ void lily_assert_msg(bool statement, const char *location,
// _lily_assert_msg may long jump, so it takes calls va_end(args) for you
_lily_assert_msg(statement, location, format_string, args);
}
+
+
+void _lily_assert_true(const char *statement, bool value, const char *location)
+{
+ lily_assert_msg(value, location,
+ "%s is not true",
+ statement);
+}
+
+
+void _lily_assert_false(const char *statement, bool value, const char *location)
+{
+ lily_assert_msg(value, location,
+ "%s is not false",
+ statement);
+}
+
+
+void _lily_assert_not_null(const char *name, void *ptr, const char *location)
+{
+ lily_assert_msg(ptr != NULL, location,
+ "%s is NULL",
+ name);
+}
+
+
+void _lily_assert_null(const char *name, void *ptr, const char *location)
+{
+ lily_assert_msg(ptr == NULL, location,
+ "%s (%p) is not NULL",
+ name, ptr);
+}
+
+
+void _lily_assert_ptr_equal(const char *name_a, const char *name_b,
+ void *a, void *b, const char *location)
+{
+ lily_assert_msg(a == b, location,
+ "%s (%p) is not equal to %s (%p)",
+ name_a, a, name_b, b);
+}
+
+
+void _lily_assert_ptr_not_equal(const char *name_a, const char *name_b,
+ void *a, void *b, const char *location)
+{
+ lily_assert_msg(a != b, location,
+ "%s (%p) is equal to %s",
+ name_a, a, name_b);
+}
+
+
+void _lily_assert_int_equal(const char *name_a, const char *name_b,
+ intmax_t a, intmax_t b, const char *location)
+{
+ lily_assert_msg(a == b, location,
+ "%s (%d) is not equal to %s (%d)",
+ name_a, a, name_b, b);
+}
+
+
+void _lily_assert_int_not_equal(const char *name_a, const char *name_b,
+ intmax_t a, intmax_t b, const char *location)
+{
+ lily_assert_msg(a != b, location,
+ "%s (%d) is equal to %s",
+ name_a, a, name_b);
+}
+
+
+void _lily_assert_float_equal(const char *name_a, const char *name_b,
+ double a, double b, double epsilon, const char *location)
+{
+ lily_assert_msg(abs(a - b) <= epsilon,
+ "%s (%f) is not equal to %s (%f) (epsilon: %f)",
+ name_a, a, name_b, b, epsilon);
+}
+
+
+void _lily_assert_float_not_equal(const char *name_a, const char *name_b,
+ double a, double b, double epsilon, const char *location)
+{
+ lily_assert_msg(abs(a - b) > epsilon,
+ "%s (%f) is equal to %s (%f) (epsilon: %f)",
+ name_a, a, name_b, b, epsilon);
+}
+
+
+void _lily_assert_string_equal(const char *name_a, const char *name_b,
+ char *a, char *b, const char *location)
+{
+ lily_assert_msg(strcmp(a, b) == 0,
+ "%s ('%s') is not equal to %s ('%s')",
+ name_a, a, name_b, b);
+}
+
+
+void _lily_assert_string_not_equal(const char *name_a, const char *name_b,
+ char *a, char *b, const char *location)
+{
+ lily_assert_msg(strcmp(a, b) != 0,
+ "%s ('%s') is equal to %s",
+ name_a, a, name_b);
+}
+
+
+void _lily_assert_memory_equal(const char *name_a, const char *name_b,
+ void *a, void *b, size_t size, const char *location)
+{
+ lily_assert_msg(memcmp(a, b, size) == 0,
+ "%s and %s contain different data", name_a, name_b);
+}
+
+
+void _lily_assert_memory_not_equal(const char *name_a, const char *name_b,
+ void *a, void *b, size_t size, const char *location)
+{
+ lily_assert_msg(memcmp(a, b, size) == 0,
+ "%s contains the same data s %s", name_a, name_b);
+}