blob: 0a2875dbaa5872b82ea83bfddcd6ae0fce53f1b3 (
plain)
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
#include <stdio.h>
#include <string.h>
#include "lily-test.h"
#include "tests.h"
const char *test_LILY_LOCATION()
{
// if you move this line, you MUST update the expected string!
const char *location = LILY_LOCATION;
int diff = strcmp(location, "tests/assertions.c:10");
if (diff != 0)
return "LILY_LOCATION did not resolve correctly!";
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;
}
const char *test_assert_true()
{
int val = setjmp(_lily_globals.env);
if (val != 0)
return "true assertion failed incorrectly!";
lily_assert_true(true);
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;
lily_assert_true(false);
return "false assertion incorrectly succeeded!";
}
else {
if (strcmp(_lily_globals.error_msg, "false is not true") != 0)
return "false assertion produced incorrect error message!";
if (strcmp(_lily_globals.error_location, "tests/assertions.c:64") != 0)
return "false assertion produced incorrect error location!";
}
return 0;
}
|