48 #define C_TEST_TRUE (int)(1==1) 54 #define C_TEST_FALSE (int)(1!=1) 56 #ifndef CTEST_DOC_SKIP 57 void _c_test_ignore();
58 void _c_test_ignore_end();
65 #define C_TEST_BEGIN_IGNORE _c_test_ignore(); 71 #define C_TEST_END_IGNORE _c_test_ignore_end(); 73 #ifndef CTEST_DOC_SKIP 74 #define END_TITLE "\e[0m" 75 #define INITIAL_TITLE "\e[1;3m" 76 #define ERROR_CODE "\e[31;1m" 77 #define SUCCESS_CODE "\e[32;1m" 78 #define WARNING_CODE "\e[33;1m" 79 #define INFO_CODE "\e[34;1m" 81 void write_title(
const char *,
const char *);
82 void write_title_fmt(
const char *,
const char *, ...);
99 #define TITLE_MSG(msg) write_title(msg, INITIAL_TITLE); 115 #define ERROR_MSG(msg) write_title(msg, ERROR_CODE); 131 #define SUCCESS_MSG(msg) write_title(msg, SUCCESS_CODE); 147 #define WARN_MSG(msg) write_title(msg, WARNING_CODE); 163 #define INFO_MSG(msg) write_title(msg, INFO_CODE); 182 #define TITLE_MSG_FMT(...) write_title_fmt(INITIAL_TITLE, __VA_ARGS__); 201 #define ERROR_MSG_FMT(...) write_title_fmt(ERROR_CODE, __VA_ARGS__); 220 #define WARN_MSG_FMT(...) write_title_fmt(WARNING_CODE, __VA_ARGS__); 239 #define INFO_MSG_FMT(...) write_title_fmt(INFO_CODE, __VA_ARGS__); 258 #define SUCCESS_MSG_FMT(...) write_title_fmt(SUCCESS_CODE, __VA_ARGS__); 260 #ifndef CTEST_DOC_SKIP 261 uint64_t *get_va_end_signature();
262 uint64_t *get_vas_end_signature();
264 #define VA_END_SIGNATURE get_va_end_signature() 265 #define VAS_END_SIGNATURE get_vas_end_signature() 267 typedef void (*header_on_cb)(
void *);
268 typedef void (*cb_fn)(
void *);
270 void *set_varg_callback(uint32_t, cb_fn, ...);
272 void assert_true(
int, ...);
273 void assert_false(
int, ...);
274 void assert_equal_int(
int,
int, ...);
275 void assert_not_equal_int(
int,
int, ...);
276 void assert_equal_longint(
long long int,
long long int, ...);
277 void assert_not_equal_longint(
long long int,
long long int, ...);
278 void assert_equal_unsigned_longint(
unsigned long long int,
unsigned long long int, ...);
279 void assert_not_equal_unsigned_longint(
unsigned long long int,
unsigned long long int, ...);
280 void assert_equal_double(
double,
double,
double, ...);
281 void assert_not_equal_double(
double,
double,
double, ...);
282 void assert_equal_byte(
288 void assert_not_equal_byte(
294 void assert_equal_string(
const char *,
const char *, ...);
295 void assert_not_equal_string(
const char *,
const char *, ...);
296 void assert_equal_string_ignore_case(
const char *,
const char *, ...);
297 void assert_not_equal_string_ignore_case(
const char *,
const char *, ...);
298 void assert_null(
void *, ...);
299 void assert_not_null(
void *, ...);
300 void assert_equal_u8(uint8_t, uint8_t, ...);
301 void assert_not_equal_u8(uint8_t, uint8_t, ...);
302 void assert_equal_s8(int8_t, int8_t, ...);
303 void assert_not_equal_s8(int8_t, int8_t, ...);
304 void assert_equal_u16(uint16_t, uint16_t, ...);
305 void assert_not_equal_u16(uint16_t, uint16_t, ...);
306 void assert_equal_s16(int16_t, int16_t, ...);
307 void assert_not_equal_s16(int16_t, int16_t, ...);
308 void assert_equal_u32(uint32_t, uint32_t, ...);
309 void assert_not_equal_u32(uint32_t, uint32_t, ...);
310 void assert_equal_s32(int32_t, int32_t, ...);
311 void assert_not_equal_s32(int32_t, int32_t, ...);
312 void assert_equal_u64(uint64_t, uint64_t, ...);
313 void assert_not_equal_u64(uint64_t, uint64_t, ...);
314 void assert_equal_s64(int64_t, int64_t, ...);
315 void assert_not_equal_s64(int64_t, int64_t, ...);
316 void assert_fail(
void *, ...);
574 #ifndef CTEST_DOC_SKIP 575 void *vargs_setter(
int, ...);
576 void *set_varg(uint32_t,
const char *, ...);
578 #define C_TEST_TYPE_VARGS_MSG (uint32_t)(0x10000000) 579 #define C_TEST_TYPE_VARGS_CALLBACK (uint32_t)(0x20000000|C_TEST_TYPE_VARGS_MSG) 581 #define C_TEST_VARGS_TITLE (uint32_t)(C_TEST_TYPE_VARGS_MSG|0x002E4992) 582 #define C_TEST_VARGS_INFO (uint32_t)(C_TEST_TYPE_VARGS_MSG|0x012E4992) 583 #define C_TEST_VARGS_WARNING (uint32_t)(C_TEST_TYPE_VARGS_MSG|0x022E4992) 584 #define C_TEST_VARGS_ERROR (uint32_t)(C_TEST_TYPE_VARGS_MSG|0x032E4992) 585 #define C_TEST_VARGS_SUCCESS (uint32_t)(C_TEST_TYPE_VARGS_MSG|0x042E4992) 587 #define C_TEST_VARGS_ON_SUCCESS_CALLBACK (uint32_t)(C_TEST_TYPE_VARGS_CALLBACK|0x052E4992) 588 #define C_TEST_VARGS_ON_ERROR_CALLBACK (uint32_t)(C_TEST_TYPE_VARGS_CALLBACK|0x062E4992) 613 #define CTEST_SETTER(...) vargs_setter(-1, __VA_ARGS__, NULL, VA_END_SIGNATURE) 632 #define CTEST_TITLE(...) set_varg(C_TEST_VARGS_TITLE, __VA_ARGS__) 651 #define CTEST_INFO(...) set_varg(C_TEST_VARGS_INFO, __VA_ARGS__) 670 #define CTEST_WARN(...) set_varg(C_TEST_VARGS_WARNING, __VA_ARGS__) 671 #define CTEST_ON_ERROR(...) set_varg(C_TEST_VARGS_ERROR, __VA_ARGS__) 672 #define CTEST_ON_SUCCESS(...) set_varg(C_TEST_VARGS_SUCCESS, __VA_ARGS__) 673 #define CTEST_ON_SUCCESS_CB(...) set_varg_callback(C_TEST_VARGS_ON_SUCCESS_CALLBACK, __VA_ARGS__, NULL, VAS_END_SIGNATURE) 674 #define CTEST_ON_ERROR_CB(...) set_varg_callback(C_TEST_VARGS_ON_ERROR_CALLBACK, __VA_ARGS__, NULL, VAS_END_SIGNATURE) 684 #define C_ASSERT_FALSE(...) assert_false(__VA_ARGS__, VAS_END_SIGNATURE); 694 #define C_ASSERT_TRUE(...) assert_true(__VA_ARGS__, VAS_END_SIGNATURE); 705 #define C_ASSERT_EQUAL_INT(expected, ...) assert_equal_int(expected, __VA_ARGS__, VAS_END_SIGNATURE); 716 #define C_ASSERT_NOT_EQUAL_INT(unexpected, ...) assert_not_equal_int(unexpected, __VA_ARGS__, VAS_END_SIGNATURE); 727 #define C_ASSERT_EQUAL_LONG_INT(expected, ...) assert_equal_longint(expected, __VA_ARGS__, VAS_END_SIGNATURE); 738 #define C_ASSERT_NOT_EQUAL_LONG_INT(expected, ...) assert_not_equal_longint(expected, __VA_ARGS__, VAS_END_SIGNATURE); 749 #define C_ASSERT_EQUAL_UNSIGNED_LONG_INT(expected, ...) assert_equal_unsigned_longint(expected, __VA_ARGS__, VAS_END_SIGNATURE); 760 #define C_ASSERT_NOT_EQUAL_UNSIGNED_LONG_INT(expected, ...) assert_not_equal_unsigned_longint(expected, __VA_ARGS__, VAS_END_SIGNATURE); 772 #define C_ASSERT_EQUAL_DOUBLE(expected, result, ...) assert_equal_double(expected, result, __VA_ARGS__, VAS_END_SIGNATURE); 784 #define C_ASSERT_NOT_EQUAL_DOUBLE(expected, result, ...) assert_not_equal_double(expected, result, __VA_ARGS__, VAS_END_SIGNATURE); 796 #define C_ASSERT_EQUAL_BYTE(expected, result, ...) assert_equal_byte(expected, result, __VA_ARGS__, VAS_END_SIGNATURE); 808 #define C_ASSERT_NOT_EQUAL_BYTE(unexpected, result, ...) assert_not_equal_byte(unexpected, result, __VA_ARGS__, VAS_END_SIGNATURE); 818 #define C_ASSERT_NULL(...) assert_null(__VA_ARGS__, VAS_END_SIGNATURE); 828 #define C_ASSERT_NOT_NULL(...) assert_not_null(__VA_ARGS__, VAS_END_SIGNATURE); 839 #define C_ASSERT_EQUAL_STRING(expected, ...) assert_equal_string(expected, __VA_ARGS__, VAS_END_SIGNATURE); 850 #define C_ASSERT_NOT_EQUAL_STRING(expected, ...) assert_not_equal_string(expected, __VA_ARGS__, VAS_END_SIGNATURE); 861 #define C_ASSERT_EQUAL_STRING_IGNORE_CASE(expected, ...) assert_equal_string_ignore_case(expected, __VA_ARGS__, VAS_END_SIGNATURE); 872 #define C_ASSERT_NOT_EQUAL_STRING_IGNORE_CASE(expected, ...) assert_not_equal_string_ignore_case(expected, __VA_ARGS__, VAS_END_SIGNATURE); 883 #define C_ASSERT_EQUAL_U8(expected, ...) assert_equal_u8(expected, __VA_ARGS__, VAS_END_SIGNATURE); 894 #define C_ASSERT_NOT_EQUAL_U8(expected, ...) assert_not_equal_u8(expected, __VA_ARGS__, VAS_END_SIGNATURE); 905 #define C_ASSERT_EQUAL_S8(expected, ...) assert_equal_s8(expected, __VA_ARGS__, VAS_END_SIGNATURE); 916 #define C_ASSERT_NOT_EQUAL_S8(expected, ...) assert_not_equal_s8(expected, __VA_ARGS__, VAS_END_SIGNATURE); 927 #define C_ASSERT_EQUAL_U16(expected, ...) assert_equal_u16(expected, __VA_ARGS__, VAS_END_SIGNATURE); 938 #define C_ASSERT_NOT_EQUAL_U16(expected, ...) assert_not_equal_u16(expected, __VA_ARGS__, VAS_END_SIGNATURE); 949 #define C_ASSERT_EQUAL_S16(expected, ...) assert_equal_s16(expected, __VA_ARGS__, VAS_END_SIGNATURE); 960 #define C_ASSERT_NOT_EQUAL_S16(expected, ...) assert_not_equal_s16(expected, __VA_ARGS__, VAS_END_SIGNATURE); 971 #define C_ASSERT_EQUAL_U32(expected, ...) assert_equal_u32(expected, __VA_ARGS__, VAS_END_SIGNATURE); 982 #define C_ASSERT_NOT_EQUAL_U32(expected, ...) assert_not_equal_u32(expected, __VA_ARGS__, VAS_END_SIGNATURE); 993 #define C_ASSERT_EQUAL_S32(expected, ...) assert_equal_s32(expected, __VA_ARGS__, VAS_END_SIGNATURE); 1004 #define C_ASSERT_NOT_EQUAL_S32(expected, ...) assert_not_equal_s32(expected, __VA_ARGS__, VAS_END_SIGNATURE); 1015 #define C_ASSERT_EQUAL_U64(expected, ...) assert_equal_u64(expected, __VA_ARGS__, VAS_END_SIGNATURE); 1026 #define C_ASSERT_NOT_EQUAL_U64(expected, ...) assert_not_equal_u64(expected, __VA_ARGS__, VAS_END_SIGNATURE); 1037 #define C_ASSERT_EQUAL_S64(expected, ...) assert_equal_s64(expected, __VA_ARGS__, VAS_END_SIGNATURE); 1048 #define C_ASSERT_NOT_EQUAL_S64(expected, ...) assert_not_equal_s64(expected, __VA_ARGS__, VAS_END_SIGNATURE); 1078 #define C_ASSERT_FAIL(...) assert_fail(__VA_ARGS__, VAS_END_SIGNATURE); 1080 #ifndef CTEST_DOC_SKIP 1084 int load_test_vargs_for_test(
void **, ...);
1085 int load_test_vargs_for_test_v2(
void **, ...);
1086 int free_vargs_for_test(
void *);
1087 char *ctest_setter_has_title(
void *);
1088 char *ctest_setter_has_info(
void *);
1089 char *ctest_setter_has_warn(
void *);
1090 char *ctest_setter_has_onerror(
void *);
1091 char *ctest_setter_has_onsuccess(
void *);
1092 void show_message_text();
void on_add_test(header_on_cb)
Call function callback on adding test event.
void end_tests()
This function is called in every tests.
void on_end_test(header_on_cb)
Call function callback if at the end of all tests (if success)
void rm_begin_test()
Removes callback pointer from global on_begin_test context.
void rm_on_test()
Removes callback pointer from global on_test context.
void rm_on_add_test()
Removes callback pointer from global rm_on_add_test context.
void on_abort(header_on_cb)
Call function callback if any test fails.
void rm_on_end_test()
Removes callback pointer from global rm_on_end_test context.
void rm_on_abort()
Removes callback pointer from global on_abort context.
void on_test(header_on_cb)
Call function callback on each test event.
void on_begin_test(header_on_cb)
Call function callback on each beginning test event.