From b8c647c9250b514a5daa11ea731691b19944aa4e Mon Sep 17 00:00:00 2001 From: sanine Date: Fri, 30 Dec 2022 14:03:26 -0600 Subject: add CHECK and REQUIRE comparison assertions --- tests/assertions.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'tests/assertions.c') diff --git a/tests/assertions.c b/tests/assertions.c index 5a32854..39db7bd 100644 --- a/tests/assertions.c +++ b/tests/assertions.c @@ -135,3 +135,40 @@ const char * test_REQUIRE() return "test function did not longjump!"; } } + + +void f_test_REQUIRE_EQ() +{ + REQUIRE_EQ(2, 2, "%d"); + REQUIRE_EQ(2, 4, "%d"); + REQUIRE_EQ(2, 1, "%d"); +} + +const char * test_REQUIRE_EQ() +{ + lily_g.HEAD.next = NULL; + lily_g.TAIL = &(lily_g.HEAD); + lily_g.failed = 0; + int test_failed = setjmp(lily_g.env); + + if (test_failed) { + if (!lily_g.failed) + return "test did not mark itself as failed"; + + if (lily_g.HEAD.next == NULL) + return "test did not generate any messages"; + + if (strcmp(lily_g.HEAD.next->msg, "REQUIRE failed: 2 == 4 (2 == 4)") != 0) + return "test generated incorrect message"; + + if (lily_g.HEAD.next->next != NULL) + return "test generated too many messages"; + + lily_msg_destroy(lily_g.HEAD.next); + return 0; + } + else { + f_test_REQUIRE_EQ(); + return "test function did not longjump!"; + } +} -- cgit v1.2.1