blob: 18941274641cf4b87dfaf21b35e86472579e13ff (
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
|
#ifndef LILY_TEST_H
#define LILY_TEST_H
#include <stddef.h>
/* gives a string like 'some/filename:xxx' */
#define STR_IMP(x) #x
#define STR(x) STR_IMP(x)
/* define SOURCE_PATH_SIZE to strip away the
leading parts of the full compilation path */
#ifndef SOURCE_PATH_SIZE
#define LILY_LOCATION "" __FILE__ ":" STR(__LINE__)
#else
#define LILY_LOCATION (("" __FILE__ ":" STR(__LINE__)) + SOURCE_PATH_SIZE)
#endif
struct lily_test_result_t {
int error;
const char *message;
const char *location;
};
typedef struct lily_test_result_t lily_test;
#define LILY_SUCCESS (struct lily_test_result_t){ 0, NULL, NULL }
// assertions
#define lily_assert_msg(statement, message) do { \
if(!(statement)) { \
return (struct lily_test_result_t){1, (message), LILY_LOCATION}; \
} \
} while(0)
#endif
|