1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#include <stdio.h>
#include <string.h>
#include "lily-test.h"
#include "tests.h"
// basic assertion
lily_test wrap_assert_msg(int statement, const char *message)
{
// if you move the location of this line, BE SURE TO UPDATE THE
// TEST BELOW so that it expects the correct line!
lily_assert_msg(statement, 1, message, NULL);
return LILY_SUCCESS;
}
const char* basic_assertion()
{
lily_test result = wrap_assert_msg(1, "should succeed");
if (result.error != 0)
return "assert_msg() incorrectly returned non-zero error on true statement!";
result = wrap_assert_msg(0, "should fail");
if (result.error == 0)
return "assert_msg() incorrectly returned zero error on false statement!";
if (strcmp(result.message, "should fail") != 0)
return "assert_msg() returned with incorrect message!";
if (strcmp(result.location, "tests/assertions.c:12") != 0)
return "assert_msg() returned with incorrect location!";
return 0;
}
// assert equal
lily_test wrap_assert_equal(int x, int y)
{
lily_assert_equal(x, y);
return LILY_SUCCESS;
}
const char* assert_equal()
{
lily_test result = wrap_assert_equal(15, 15);
if (result.error != LILY_NO_ERROR)
return "lily_assert_equal incorrectly returned an error on equal inputs!";
result = wrap_assert_equal(14, 15);
if (result.error != LILY_NULL_DATA)
return "lily_assert_equal returned an incorrect error on non-equal inputs!";
if (strcmp(result.message, "x is not equal to y") != 0)
return "lily_assert_equal returned incorrect message for non-equal inputs!";
return 0;
}
|