diff options
Diffstat (limited to 'tests/assertions.c')
-rw-r--r-- | tests/assertions.c | 37 |
1 files changed, 37 insertions, 0 deletions
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!"; + } +} |