37#ifndef THE_T_TEST_FRAMEWORK_H
38#define THE_T_TEST_FRAMEWORK_H
47#include <rtems/score/cpu.h>
72 void (*setup)(
void *);
74 void (*teardown)(
void *);
75 size_t (*scope)(
void *,
char *, size_t);
76 void *initial_context;
84 unsigned int next_planned_steps;
85 unsigned int next_steps;
86 unsigned int failures;
94#define T_ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0]))
101#define T_FILE_NAME __FILE__
104#if defined(__GNUC__) || __STDC_VERSION__ >= 199409L
105#define T_ZERO_LENGTH_ARRAY
107#define T_ZERO_LENGTH_ARRAY 1
123#define T_NO_RETURN [[ noreturn ]]
125#define T_NO_RETURN _Noreturn
137#define T_CHECK_STOP 1U
139#define T_CHECK_QUIET 2U
142#define T_CHECK_FMT 4U
144#define T_CHECK_STEP_FLAG 8U
146#define T_CHECK_STEP_TO_FLAGS(step) ((unsigned int)(step) << 8)
148#define T_CHECK_STEP_FROM_FLAGS(flags) ((flags) >> 8)
150#define T_CHECK_STEP(step) (T_CHECK_STEP_TO_FLAGS(step) | T_CHECK_STEP_FLAG)
163#define T_VA_ARGS_FIRST(...) T_VA_ARGS_FIRST_SELECT(__VA_ARGS__, throw_away)
164#define T_VA_ARGS_FIRST_SELECT(first, ...) first
172#define T_VA_ARGS_MORE(...) \
173 T_VA_ARGS_XEXPAND(T_VA_ARGS_KIND(__VA_ARGS__), __VA_ARGS__)
174#define T_VA_ARGS_XEXPAND(kind, ...) T_VA_ARGS_EXPAND(kind, __VA_ARGS__)
175#define T_VA_ARGS_EXPAND(kind, ...) T_VA_ARGS_EXPAND_##kind(__VA_ARGS__)
176#define T_VA_ARGS_EXPAND_0U(first)
177#define T_VA_ARGS_EXPAND_4U(first, ...) , __VA_ARGS__
178#define T_VA_ARGS_KIND(...) \
179 T_VA_ARGS_SELECT(__VA_ARGS__, \
180 4U, 4U, 4U, 4U, 4U, 4U, 4U, 4U, 0U, throw_away)
181#define T_VA_ARGS_SELECT(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, ...) a10
187#define T_flags_true(flags, ...) \
189 static const T_check_context T_check_instance = { \
190 T_FILE_NAME, __LINE__, \
191 (flags) | T_VA_ARGS_KIND(__VA_ARGS__) }; \
192 T_check(&T_check_instance, \
193 T_VA_ARGS_FIRST(__VA_ARGS__) T_VA_ARGS_MORE(__VA_ARGS__)); \
196#define T_flags_eq(flags, a, ...) \
197 T_flags_true(flags, \
198 (a) == (T_VA_ARGS_FIRST(__VA_ARGS__)) T_VA_ARGS_MORE(__VA_ARGS__))
200#define T_flags_ne(flags, a, ...) \
201 T_flags_true(flags, \
202 (a) != (T_VA_ARGS_FIRST(__VA_ARGS__)) T_VA_ARGS_MORE(__VA_ARGS__))
206#define T_flags_eq_ptr(a, e, flags, sa, se) \
208 static const T_check_context_msg T_check_instance = { \
209 { T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }, \
211 T_check_eq_ptr(&T_check_instance, (uintptr_t)a, (uintptr_t)e); \
216#define T_flags_ne_ptr(a, e, flags, sa, se) \
218 static const T_check_context_msg T_check_instance = { \
219 { T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }, \
221 T_check_ne_ptr(&T_check_instance, (uintptr_t)a, (uintptr_t)e); \
226#define T_flags_null(a, flags, sa) \
228 static const T_check_context_msg T_check_instance = { \
229 { T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }, sa }; \
230 T_check_null(&T_check_instance, (uintptr_t)a); \
235#define T_flags_not_null(a, flags, sa) \
237 static const T_check_context_msg T_check_instance = { \
238 { T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }, sa }; \
239 T_check_not_null(&T_check_instance, (uintptr_t)a); \
245#define T_flags_eq_mem(a, e, n, flags, sa, se, sn) \
247 static const T_check_context_msg T_check_instance = { \
248 { T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }, \
249 "memcmp(" sa ", " se ", " sn ") == 0" }; \
250 T_check_eq_mem(&T_check_instance, a, e, n); \
256#define T_flags_ne_mem(a, e, n, flags, sa, se, sn) \
258 static const T_check_context_msg T_check_instance = { \
259 { T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }, \
260 "memcmp(" sa ", " se ", " sn ") != 0" }; \
261 T_check_ne_mem(&T_check_instance, a, e, n); \
264void T_check_eq_str(
const T_check_context *,
const char *,
const char *);
266#define T_flags_eq_str(a, e, flags) \
268 static const T_check_context T_check_instance = { \
269 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
270 T_check_eq_str(&T_check_instance, a, e); \
273void T_check_ne_str(
const T_check_context *,
const char *,
const char *);
275#define T_flags_ne_str(a, e, flags) \
277 static const T_check_context T_check_instance = { \
278 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
279 T_check_ne_str(&T_check_instance, a, e); \
282void T_check_eq_nstr(
const T_check_context *,
const char *,
const char *,
285#define T_flags_eq_nstr(a, e, n, flags) \
287 static const T_check_context T_check_instance = { \
288 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
289 T_check_eq_nstr(&T_check_instance, a, e, n); \
292void T_check_ne_nstr(
const T_check_context *,
const char *,
const char *,
295#define T_flags_ne_nstr(a, e, n, flags) \
297 static const T_check_context T_check_instance = { \
298 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
299 T_check_ne_nstr(&T_check_instance, a, e, n); \
304#define T_flags_eq_char(a, e, flags) \
306 static const T_check_context T_check_instance = { \
307 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
308 T_check_eq_char(&T_check_instance, a, e); \
313#define T_flags_ne_char(a, e, flags) \
315 static const T_check_context T_check_instance = { \
316 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
317 T_check_ne_char(&T_check_instance, a, e); \
322#define T_flags_eq_int(a, e, flags) \
324 static const T_check_context T_check_instance = { \
325 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
326 T_check_eq_int(&T_check_instance, a, e); \
331#define T_flags_ne_int(a, e, flags) \
333 static const T_check_context T_check_instance = { \
334 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
335 T_check_ne_int(&T_check_instance, a, e); \
340#define T_flags_ge_int(a, e, flags) \
342 static const T_check_context T_check_instance = { \
343 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
344 T_check_ge_int(&T_check_instance, a, e); \
349#define T_flags_gt_int(a, e, flags) \
351 static const T_check_context T_check_instance = { \
352 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
353 T_check_gt_int(&T_check_instance, a, e); \
358#define T_flags_le_int(a, e, flags) \
360 static const T_check_context T_check_instance = { \
361 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
362 T_check_le_int(&T_check_instance, a, e); \
367#define T_flags_lt_int(a, e, flags) \
369 static const T_check_context T_check_instance = { \
370 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
371 T_check_lt_int(&T_check_instance, a, e); \
374void T_check_eq_uint(
const T_check_context *,
unsigned int,
unsigned int);
376#define T_flags_eq_uint(a, e, flags) \
378 static const T_check_context T_check_instance = { \
379 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
380 T_check_eq_uint(&T_check_instance, a, e); \
383void T_check_ne_uint(
const T_check_context *,
unsigned int,
unsigned int);
385#define T_flags_ne_uint(a, e, flags) \
387 static const T_check_context T_check_instance = { \
388 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
389 T_check_ne_uint(&T_check_instance, a, e); \
392void T_check_ge_uint(
const T_check_context *,
unsigned int,
unsigned int);
394#define T_flags_ge_uint(a, e, flags) \
396 static const T_check_context T_check_instance = { \
397 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
398 T_check_ge_uint(&T_check_instance, a, e); \
401void T_check_gt_uint(
const T_check_context *,
unsigned int,
unsigned int);
403#define T_flags_gt_uint(a, e, flags) \
405 static const T_check_context T_check_instance = { \
406 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
407 T_check_gt_uint(&T_check_instance, a, e); \
410void T_check_le_uint(
const T_check_context *,
unsigned int,
unsigned int);
412#define T_flags_le_uint(a, e, flags) \
414 static const T_check_context T_check_instance = { \
415 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
416 T_check_le_uint(&T_check_instance, a, e); \
419void T_check_lt_uint(
const T_check_context *,
unsigned int,
unsigned int);
421#define T_flags_lt_uint(a, e, flags) \
423 static const T_check_context T_check_instance = { \
424 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
425 T_check_lt_uint(&T_check_instance, a, e); \
430#define T_flags_eq_long(a, e, flags) \
432 static const T_check_context T_check_instance = { \
433 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
434 T_check_eq_long(&T_check_instance, a, e); \
439#define T_flags_ne_long(a, e, flags) \
441 static const T_check_context T_check_instance = { \
442 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
443 T_check_ne_long(&T_check_instance, a, e); \
448#define T_flags_ge_long(a, e, flags) \
450 static const T_check_context T_check_instance = { \
451 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
452 T_check_ge_long(&T_check_instance, a, e); \
457#define T_flags_gt_long(a, e, flags) \
459 static const T_check_context T_check_instance = { \
460 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
461 T_check_gt_long(&T_check_instance, a, e); \
466#define T_flags_le_long(a, e, flags) \
468 static const T_check_context T_check_instance = { \
469 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
470 T_check_le_long(&T_check_instance, a, e); \
475#define T_flags_lt_long(a, e, flags) \
477 static const T_check_context T_check_instance = { \
478 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
479 T_check_lt_long(&T_check_instance, a, e); \
482void T_check_eq_ulong(
const T_check_context *,
unsigned long,
unsigned long);
484#define T_flags_eq_ulong(a, e, flags) \
486 static const T_check_context T_check_instance = { \
487 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
488 T_check_eq_ulong(&T_check_instance, a, e); \
491void T_check_ne_ulong(
const T_check_context *,
unsigned long,
unsigned long);
493#define T_flags_ne_ulong(a, e, flags) \
495 static const T_check_context T_check_instance = { \
496 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
497 T_check_ne_ulong(&T_check_instance, a, e); \
500void T_check_ge_ulong(
const T_check_context *,
unsigned long,
unsigned long);
502#define T_flags_ge_ulong(a, e, flags) \
504 static const T_check_context T_check_instance = { \
505 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
506 T_check_ge_ulong(&T_check_instance, a, e); \
509void T_check_gt_ulong(
const T_check_context *,
unsigned long,
unsigned long);
511#define T_flags_gt_ulong(a, e, flags) \
513 static const T_check_context T_check_instance = { \
514 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
515 T_check_gt_ulong(&T_check_instance, a, e); \
518void T_check_le_ulong(
const T_check_context *,
unsigned long,
unsigned long);
520#define T_flags_le_ulong(a, e, flags) \
522 static const T_check_context T_check_instance = { \
523 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
524 T_check_le_ulong(&T_check_instance, a, e); \
527void T_check_lt_ulong(
const T_check_context *,
unsigned long,
unsigned long);
529#define T_flags_lt_ulong(a, e, flags) \
531 static const T_check_context T_check_instance = { \
532 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
533 T_check_lt_ulong(&T_check_instance, a, e); \
538#define T_flags_eq_ll(a, e, flags) \
540 static const T_check_context T_check_instance = { \
541 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
542 T_check_eq_ll(&T_check_instance, a, e); \
547#define T_flags_ne_ll(a, e, flags) \
549 static const T_check_context T_check_instance = { \
550 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
551 T_check_ne_ll(&T_check_instance, a, e); \
556#define T_flags_ge_ll(a, e, flags) \
558 static const T_check_context T_check_instance = { \
559 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
560 T_check_ge_ll(&T_check_instance, a, e); \
565#define T_flags_gt_ll(a, e, flags) \
567 static const T_check_context T_check_instance = { \
568 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
569 T_check_gt_ll(&T_check_instance, a, e); \
574#define T_flags_le_ll(a, e, flags) \
576 static const T_check_context T_check_instance = { \
577 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
578 T_check_le_ll(&T_check_instance, a, e); \
583#define T_flags_lt_ll(a, e, flags) \
585 static const T_check_context T_check_instance = { \
586 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
587 T_check_lt_ll(&T_check_instance, a, e); \
593#define T_flags_eq_ull(a, e, flags) \
595 static const T_check_context T_check_instance = { \
596 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
597 T_check_eq_ull(&T_check_instance, a, e); \
603#define T_flags_ne_ull(a, e, flags) \
605 static const T_check_context T_check_instance = { \
606 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
607 T_check_ne_ull(&T_check_instance, a, e); \
613#define T_flags_ge_ull(a, e, flags) \
615 static const T_check_context T_check_instance = { \
616 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
617 T_check_ge_ull(&T_check_instance, a, e); \
623#define T_flags_gt_ull(a, e, flags) \
625 static const T_check_context T_check_instance = { \
626 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
627 T_check_gt_ull(&T_check_instance, a, e); \
633#define T_flags_le_ull(a, e, flags) \
635 static const T_check_context T_check_instance = { \
636 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
637 T_check_le_ull(&T_check_instance, a, e); \
643#define T_flags_lt_ull(a, e, flags) \
645 static const T_check_context T_check_instance = { \
646 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
647 T_check_lt_ull(&T_check_instance, a, e); \
652#define T_flags_eno(a, e, flags) \
654 static const T_check_context T_check_instance = { \
655 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
656 T_check_eno(&T_check_instance, a, e); \
661#define T_flags_eno_success(a, flags) \
663 static const T_check_context T_check_instance = { \
664 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
665 T_check_eno_success(&T_check_instance, a); \
670#define T_flags_psx_error(a, eno, flags) \
672 static const T_check_context T_check_instance = { \
673 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
674 T_check_psx_error(&T_check_instance, a, eno); \
679#define T_flags_psx_success(a, flags) \
681 static const T_check_context T_check_instance = { \
682 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
683 T_check_psx_success(&T_check_instance, a); \
688int T_printf(
char const *, ...);
690int T_vprintf(
char const *, va_list);
692int T_puts(
const char *,
size_t);
694int T_snprintf(
char *,
size_t,
const char *, ...);
696void T_log(T_verbosity,
char const *, ...);
698const char *T_case_name(
void);
700T_verbosity T_set_verbosity(T_verbosity);
712#define T_true(...) T_flags_true(0, __VA_ARGS__)
713#define T_assert_true(...) T_flags_true(T_CHECK_STOP, __VA_ARGS__)
714#define T_quiet_true(...) T_flags_true(T_CHECK_QUIET, __VA_ARGS__)
715#define T_step_true(s, ...) T_flags_true(T_CHECK_STEP(s), __VA_ARGS__)
716#define T_step_assert_true(s, ...) \
717 T_flags_true(T_CHECK_STEP(s) | T_CHECK_STOP, __VA_ARGS__)
719#define T_false(...) \
721 !(T_VA_ARGS_FIRST(__VA_ARGS__)) T_VA_ARGS_MORE(__VA_ARGS__))
722#define T_assert_false(...) \
723 T_flags_true(T_CHECK_STOP, \
724 !(T_VA_ARGS_FIRST(__VA_ARGS__)) T_VA_ARGS_MORE(__VA_ARGS__))
725#define T_quiet_false(...) \
726 T_flags_true(T_CHECK_QUIET, \
727 !(T_VA_ARGS_FIRST(__VA_ARGS__)) T_VA_ARGS_MORE(__VA_ARGS__))
728#define T_step_false(s, ...) \
729 T_flags_true(T_CHECK_STEP(s), \
730 !(T_VA_ARGS_FIRST(__VA_ARGS__)) T_VA_ARGS_MORE(__VA_ARGS__))
731#define T_step_assert_false(s, ...) \
732 T_flags_true(T_CHECK_STEP(s) | T_CHECK_STOP, \
733 !(T_VA_ARGS_FIRST(__VA_ARGS__)) T_VA_ARGS_MORE(__VA_ARGS__))
747#define T_eq(a, ...) T_flags_eq(0, a, __VA_ARGS__)
748#define T_assert_eq(a, ...) T_flags_eq(T_CHECK_STOP, a, __VA_ARGS__)
749#define T_quiet_eq(a, ...) T_flags_eq(T_CHECK_QUIET, a, __VA_ARGS__)
750#define T_step_eq(s, a, ...) T_flags_eq(T_CHECK_STEP(s), a, __VA_ARGS__)
751#define T_step_assert_eq(s, a, ...) \
752 T_flags_eq(T_CHECK_STEP(s) | T_CHECK_STOP, a, __VA_ARGS__)
754#define T_ne(a, ...) T_flags_ne(0, a, __VA_ARGS__)
755#define T_assert_ne(a, ...) T_flags_ne(T_CHECK_STOP, a, __VA_ARGS__)
756#define T_quiet_ne(a, ...) T_flags_ne(T_CHECK_QUIET, a, __VA_ARGS__)
757#define T_step_ne(s, a, ...) T_flags_ne(T_CHECK_STEP(s), a, __VA_ARGS__)
758#define T_step_assert_ne(s, a, ...) \
759 T_flags_ne(T_CHECK_STEP(s) | T_CHECK_STOP, a, __VA_ARGS__)
773#define T_eq_ptr(a, e) T_flags_eq_ptr(a, e, 0, #a, #e)
774#define T_assert_eq_ptr(a, e) T_flags_eq_ptr(a, e, T_CHECK_STOP, #a, #e)
775#define T_quiet_eq_ptr(a, e) T_flags_eq_ptr(a, e, T_CHECK_QUIET, #a, #e)
776#define T_step_eq_ptr(s, a, e) T_flags_eq_ptr(a, e, T_CHECK_STEP(s), #a, #e)
777#define T_step_assert_eq_ptr(s, a, e) \
778 T_flags_eq_ptr(a, e, T_CHECK_STEP(s) | T_CHECK_STOP, #a, #e)
780#define T_ne_ptr(a, e) T_flags_ne_ptr(a, e, 0, #a, #e)
781#define T_assert_ne_ptr(a, e) T_flags_ne_ptr(a, e, T_CHECK_STOP, #a, #e)
782#define T_quiet_ne_ptr(a, e) T_flags_ne_ptr(a, e, T_CHECK_QUIET, #a, #e)
783#define T_step_ne_ptr(s, a, e) T_flags_ne_ptr(a, e, T_CHECK_STEP(s), #a, #e)
784#define T_step_assert_ne_ptr(s, a, e) \
785 T_flags_ne_ptr(a, e, T_CHECK_STEP(s) | T_CHECK_STOP, #a, #e)
787#define T_null(a) T_flags_null(a, 0, #a)
788#define T_assert_null(a) T_flags_null(a, T_CHECK_STOP, #a)
789#define T_quiet_null(a) T_flags_null(a, T_CHECK_QUIET, #a)
790#define T_quiet_assert_null(a) \
791 T_flags_null(a, T_CHECK_QUIET | T_CHECK_STOP, #a)
792#define T_step_null(s, a) T_flags_null(a, T_CHECK_STEP(s), #a)
793#define T_step_assert_null(s, a) \
794 T_flags_null(a, T_CHECK_STEP(s) | T_CHECK_STOP, #a)
796#define T_not_null(a) T_flags_not_null(a, 0, #a)
797#define T_assert_not_null(a) T_flags_not_null(a, T_CHECK_STOP, #a)
798#define T_quiet_not_null(a) T_flags_not_null(a, T_CHECK_QUIET, #a)
799#define T_quiet_assert_not_null(a) \
800 T_flags_not_null(a, T_CHECK_QUIET | T_CHECK_STOP, #a)
801#define T_step_not_null(s, a) T_flags_not_null(a, T_CHECK_STEP(s), #a)
802#define T_step_assert_not_null(s, a) \
803 T_flags_not_null(a, T_CHECK_STEP(s) | T_CHECK_STOP, #a)
817#define T_eq_mem(a, e, n) T_flags_eq_mem(a, e, n, 0, #a, #e, #n)
818#define T_assert_eq_mem(a, e, n) \
819 T_flags_eq_mem(a, e, n, T_CHECK_STOP, #a, #e, #n)
820#define T_quiet_eq_mem(a, e, n) \
821 T_flags_eq_mem(a, e, n, T_CHECK_QUIET, #a, #e, #n)
822#define T_step_eq_mem(s, a, e, n) \
823 T_flags_eq_mem(a, e, n, T_CHECK_STEP(s), #a, #e, #n)
824#define T_step_assert_eq_mem(s, a, e, n) \
825 T_flags_eq_mem(a, e, n, T_CHECK_STEP(s) | T_CHECK_STOP, #a, #e, #n)
827#define T_ne_mem(a, e, n) T_flags_ne_mem(a, e, n, 0, #a, #e, #n)
828#define T_assert_ne_mem(a, e, n) \
829 T_flags_ne_mem(a, e, n, T_CHECK_STOP, #a, #e, #n)
830#define T_quiet_ne_mem(a, e, n) \
831 T_flags_ne_mem(a, e, n, T_CHECK_QUIET, #a, #e, #n)
832#define T_step_ne_mem(s, a, e, n) \
833 T_flags_ne_mem(a, e, n, T_CHECK_STEP(s), #a, #e, #n)
834#define T_step_assert_ne_mem(s, a, e, n) \
835 T_flags_ne_mem(a, e, n, T_CHECK_STEP(s) | T_CHECK_STOP, #a, #e, #n)
849#define T_eq_str(a, e) T_flags_eq_str(a, e, 0)
850#define T_assert_eq_str(a, e) T_flags_eq_str(a, e, T_CHECK_STOP)
851#define T_quiet_eq_str(a, e) T_flags_eq_str(a, e, T_CHECK_QUIET)
852#define T_step_eq_str(s, a, e) T_flags_eq_str(a, e, T_CHECK_STEP(s))
853#define T_step_assert_eq_str(s, a, e) \
854 T_flags_eq_str(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
856#define T_ne_str(a, e) T_flags_ne_str(a, e, 0)
857#define T_assert_ne_str(a, e) T_flags_ne_str(a, e, T_CHECK_STOP)
858#define T_quiet_ne_str(a, e) T_flags_ne_str(a, e, T_CHECK_QUIET)
859#define T_step_ne_str(s, a, e) T_flags_ne_str(a, e, T_CHECK_STEP(s))
860#define T_step_assert_ne_str(s, a, e) \
861 T_flags_ne_str(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
863#define T_eq_nstr(a, e, n) T_flags_eq_nstr(a, e, n, 0)
864#define T_assert_eq_nstr(a, e, n) T_flags_eq_nstr(a, e, n, T_CHECK_STOP)
865#define T_quiet_eq_nstr(a, e, n) T_flags_eq_nstr(a, e, n, T_CHECK_QUIET)
866#define T_step_eq_nstr(s, a, e, n) T_flags_eq_nstr(a, e, n, T_CHECK_STEP(s))
867#define T_step_assert_eq_nstr(s, a, e, n) \
868 T_flags_eq_nstr(a, e, n, T_CHECK_STEP(s) | T_CHECK_STOP)
870#define T_ne_nstr(a, e, n) T_flags_ne_nstr(a, e, n, 0)
871#define T_assert_ne_nstr(a, e, n) T_flags_ne_nstr(a, e, n, T_CHECK_STOP)
872#define T_quiet_ne_nstr(a, e, n) T_flags_ne_nstr(a, e, n, T_CHECK_QUIET)
873#define T_step_ne_nstr(s, a, e, n) T_flags_ne_nstr(a, e, n, T_CHECK_STEP(s))
874#define T_step_assert_ne_nstr(s, a, e, n) \
875 T_flags_ne_nstr(a, e, n, T_CHECK_STEP(s) | T_CHECK_STOP)
889#define T_eq_char(a, e) T_flags_eq_char(a, e, 0)
890#define T_assert_eq_char(a, e) T_flags_eq_char(a, e, T_CHECK_STOP)
891#define T_quiet_eq_char(a, e) T_flags_eq_char(a, e, T_CHECK_QUIET)
892#define T_step_eq_char(s, a, e) T_flags_eq_char(a, e, T_CHECK_STEP(s))
893#define T_step_assert_eq_char(s, a, e) \
894 T_flags_eq_char(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
896#define T_ne_char(a, e) T_flags_ne_char(a, e, 0)
897#define T_assert_ne_char(a, e) T_flags_ne_char(a, e, T_CHECK_STOP)
898#define T_quiet_ne_char(a, e) T_flags_ne_char(a, e, T_CHECK_QUIET)
899#define T_step_ne_char(s, a, e) T_flags_ne_char(a, e, T_CHECK_STEP(s))
900#define T_step_assert_ne_char(s, a, e) \
901 T_flags_ne_char(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
915#define T_eq_schar(a, e) T_flags_eq_int(a, e, 0)
916#define T_assert_eq_schar(a, e) T_flags_eq_int(a, e, T_CHECK_STOP)
917#define T_quiet_eq_schar(a, e) T_flags_eq_int(a, e, T_CHECK_QUIET)
918#define T_step_eq_schar(s, a, e) T_flags_eq_int(a, e, T_CHECK_STEP(s))
919#define T_step_assert_eq_schar(s, a, e) \
920 T_flags_eq_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
922#define T_ne_schar(a, e) T_flags_ne_int(a, e, 0)
923#define T_assert_ne_schar(a, e) T_flags_ne_int(a, e, T_CHECK_STOP)
924#define T_quiet_ne_schar(a, e) T_flags_ne_int(a, e, T_CHECK_QUIET)
925#define T_step_ne_schar(s, a, e) T_flags_ne_int(a, e, T_CHECK_STEP(s))
926#define T_step_assert_ne_schar(s, a, e) \
927 T_flags_ne_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
929#define T_ge_schar(a, e) T_flags_ge_int(a, e, 0)
930#define T_assert_ge_schar(a, e) T_flags_ge_int(a, e, T_CHECK_STOP)
931#define T_quiet_ge_schar(a, e) T_flags_ge_int(a, e, T_CHECK_QUIET)
932#define T_step_ge_schar(s, a, e) T_flags_ge_int(a, e, T_CHECK_STEP(s))
933#define T_step_assert_ge_schar(s, a, e) \
934 T_flags_ge_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
936#define T_gt_schar(a, e) T_flags_gt_int(a, e, 0)
937#define T_assert_gt_schar(a, e) T_flags_gt_int(a, e, T_CHECK_STOP)
938#define T_quiet_gt_schar(a, e) T_flags_gt_int(a, e, T_CHECK_QUIET)
939#define T_step_gt_schar(s, a, e) T_flags_gt_int(a, e, T_CHECK_STEP(s))
940#define T_step_assert_gt_schar(s, a, e) \
941 T_flags_gt_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
943#define T_le_schar(a, e) T_flags_le_int(a, e, 0)
944#define T_assert_le_schar(a, e) T_flags_le_int(a, e, T_CHECK_STOP)
945#define T_quiet_le_schar(a, e) T_flags_le_int(a, e, T_CHECK_QUIET)
946#define T_step_le_schar(s, a, e) T_flags_le_int(a, e, T_CHECK_STEP(s))
947#define T_step_assert_le_schar(s, a, e) \
948 T_flags_le_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
950#define T_lt_schar(a, e) T_flags_lt_int(a, e, 0)
951#define T_assert_lt_schar(a, e) T_flags_lt_int(a, e, T_CHECK_STOP)
952#define T_quiet_lt_schar(a, e) T_flags_lt_int(a, e, T_CHECK_QUIET)
953#define T_step_lt_schar(s, a, e) T_flags_lt_int(a, e, T_CHECK_STEP(s))
954#define T_step_assert_lt_schar(s, a, e) \
955 T_flags_lt_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
969#define T_eq_uchar(a, e) T_flags_eq_uint(a, e, 0)
970#define T_assert_eq_uchar(a, e) T_flags_eq_uint(a, e, T_CHECK_STOP)
971#define T_quiet_eq_uchar(a, e) T_flags_eq_uint(a, e, T_CHECK_QUIET)
972#define T_step_eq_uchar(s, a, e) T_flags_eq_uint(a, e, T_CHECK_STEP(s))
973#define T_step_assert_eq_uchar(s, a, e) \
974 T_flags_eq_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
976#define T_ne_uchar(a, e) T_flags_ne_uint(a, e, 0)
977#define T_assert_ne_uchar(a, e) T_flags_ne_uint(a, e, T_CHECK_STOP)
978#define T_quiet_ne_uchar(a, e) T_flags_ne_uint(a, e, T_CHECK_QUIET)
979#define T_step_ne_uchar(s, a, e) T_flags_ne_uint(a, e, T_CHECK_STEP(s))
980#define T_step_assert_ne_uchar(s, a, e) \
981 T_flags_ne_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
983#define T_ge_uchar(a, e) T_flags_ge_uint(a, e, 0)
984#define T_assert_ge_uchar(a, e) T_flags_ge_uint(a, e, T_CHECK_STOP)
985#define T_quiet_ge_uchar(a, e) T_flags_ge_uint(a, e, T_CHECK_QUIET)
986#define T_step_ge_uchar(s, a, e) T_flags_ge_uint(a, e, T_CHECK_STEP(s))
987#define T_step_assert_ge_uchar(s, a, e) \
988 T_flags_ge_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
990#define T_gt_uchar(a, e) T_flags_gt_uint(a, e, 0)
991#define T_assert_gt_uchar(a, e) T_flags_gt_uint(a, e, T_CHECK_STOP)
992#define T_quiet_gt_uchar(a, e) T_flags_gt_uint(a, e, T_CHECK_QUIET)
993#define T_step_gt_uchar(s, a, e) T_flags_gt_uint(a, e, T_CHECK_STEP(s))
994#define T_step_assert_gt_uchar(s, a, e) \
995 T_flags_gt_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
997#define T_le_uchar(a, e) T_flags_le_uint(a, e, 0)
998#define T_assert_le_uchar(a, e) T_flags_le_uint(a, e, T_CHECK_STOP)
999#define T_quiet_le_uchar(a, e) T_flags_le_uint(a, e, T_CHECK_QUIET)
1000#define T_step_le_uchar(s, a, e) T_flags_le_uint(a, e, T_CHECK_STEP(s))
1001#define T_step_assert_le_uchar(s, a, e) \
1002 T_flags_le_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1004#define T_lt_uchar(a, e) T_flags_lt_uint(a, e, 0)
1005#define T_assert_lt_uchar(a, e) T_flags_lt_uint(a, e, T_CHECK_STOP)
1006#define T_quiet_lt_uchar(a, e) T_flags_lt_uint(a, e, T_CHECK_QUIET)
1007#define T_step_lt_uchar(s, a, e) T_flags_lt_uint(a, e, T_CHECK_STEP(s))
1008#define T_step_assert_lt_uchar(s, a, e) \
1009 T_flags_lt_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1023#define T_eq_short(a, e) T_flags_eq_int(a, e, 0)
1024#define T_assert_eq_short(a, e) T_flags_eq_int(a, e, T_CHECK_STOP)
1025#define T_quiet_eq_short(a, e) T_flags_eq_int(a, e, T_CHECK_QUIET)
1026#define T_step_eq_short(s, a, e) T_flags_eq_int(a, e, T_CHECK_STEP(s))
1027#define T_step_assert_eq_short(s, a, e) \
1028 T_flags_eq_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1030#define T_ne_short(a, e) T_flags_ne_int(a, e, 0)
1031#define T_assert_ne_short(a, e) T_flags_ne_int(a, e, T_CHECK_STOP)
1032#define T_quiet_ne_short(a, e) T_flags_ne_int(a, e, T_CHECK_QUIET)
1033#define T_step_ne_short(s, a, e) T_flags_ne_int(a, e, T_CHECK_STEP(s))
1034#define T_step_assert_ne_short(s, a, e) \
1035 T_flags_ne_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1037#define T_ge_short(a, e) T_flags_ge_int(a, e, 0)
1038#define T_assert_ge_short(a, e) T_flags_ge_int(a, e, T_CHECK_STOP)
1039#define T_quiet_ge_short(a, e) T_flags_ge_int(a, e, T_CHECK_QUIET)
1040#define T_step_ge_short(s, a, e) T_flags_ge_int(a, e, T_CHECK_STEP(s))
1041#define T_step_assert_ge_short(s, a, e) \
1042 T_flags_ge_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1044#define T_gt_short(a, e) T_flags_gt_int(a, e, 0)
1045#define T_assert_gt_short(a, e) T_flags_gt_int(a, e, T_CHECK_STOP)
1046#define T_quiet_gt_short(a, e) T_flags_gt_int(a, e, T_CHECK_QUIET)
1047#define T_step_gt_short(s, a, e) T_flags_gt_int(a, e, T_CHECK_STEP(s))
1048#define T_step_assert_gt_short(s, a, e) \
1049 T_flags_gt_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1051#define T_le_short(a, e) T_flags_le_int(a, e, 0)
1052#define T_assert_le_short(a, e) T_flags_le_int(a, e, T_CHECK_STOP)
1053#define T_quiet_le_short(a, e) T_flags_le_int(a, e, T_CHECK_QUIET)
1054#define T_step_le_short(s, a, e) T_flags_le_int(a, e, T_CHECK_STEP(s))
1055#define T_step_assert_le_short(s, a, e) \
1056 T_flags_le_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1058#define T_lt_short(a, e) T_flags_lt_int(a, e, 0)
1059#define T_assert_lt_short(a, e) T_flags_lt_int(a, e, T_CHECK_STOP)
1060#define T_quiet_lt_short(a, e) T_flags_lt_int(a, e, T_CHECK_QUIET)
1061#define T_step_lt_short(s, a, e) T_flags_lt_int(a, e, T_CHECK_STEP(s))
1062#define T_step_assert_lt_short(s, a, e) \
1063 T_flags_lt_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1077#define T_eq_ushort(a, e) T_flags_eq_uint(a, e, 0)
1078#define T_assert_eq_ushort(a, e) T_flags_eq_uint(a, e, T_CHECK_STOP)
1079#define T_quiet_eq_ushort(a, e) T_flags_eq_uint(a, e, T_CHECK_QUIET)
1080#define T_step_eq_ushort(s, a, e) T_flags_eq_uint(a, e, T_CHECK_STEP(s))
1081#define T_step_assert_eq_ushort(s, a, e) \
1082 T_flags_eq_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1084#define T_ne_ushort(a, e) T_flags_ne_uint(a, e, 0)
1085#define T_assert_ne_ushort(a, e) T_flags_ne_uint(a, e, T_CHECK_STOP)
1086#define T_quiet_ne_ushort(a, e) T_flags_ne_uint(a, e, T_CHECK_QUIET)
1087#define T_step_ne_ushort(s, a, e) T_flags_ne_uint(a, e, T_CHECK_STEP(s))
1088#define T_step_assert_ne_ushort(s, a, e) \
1089 T_flags_ne_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1091#define T_ge_ushort(a, e) T_flags_ge_uint(a, e, 0)
1092#define T_assert_ge_ushort(a, e) T_flags_ge_uint(a, e, T_CHECK_STOP)
1093#define T_quiet_ge_ushort(a, e) T_flags_ge_uint(a, e, T_CHECK_QUIET)
1094#define T_step_ge_ushort(s, a, e) T_flags_ge_uint(a, e, T_CHECK_STEP(s))
1095#define T_step_assert_ge_ushort(s, a, e) \
1096 T_flags_ge_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1098#define T_gt_ushort(a, e) T_flags_gt_uint(a, e, 0)
1099#define T_assert_gt_ushort(a, e) T_flags_gt_uint(a, e, T_CHECK_STOP)
1100#define T_quiet_gt_ushort(a, e) T_flags_gt_uint(a, e, T_CHECK_QUIET)
1101#define T_step_gt_ushort(s, a, e) T_flags_gt_uint(a, e, T_CHECK_STEP(s))
1102#define T_step_assert_gt_ushort(s, a, e) \
1103 T_flags_gt_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1105#define T_le_ushort(a, e) T_flags_le_uint(a, e, 0)
1106#define T_assert_le_ushort(a, e) T_flags_le_uint(a, e, T_CHECK_STOP)
1107#define T_quiet_le_ushort(a, e) T_flags_le_uint(a, e, T_CHECK_QUIET)
1108#define T_step_le_ushort(s, a, e) T_flags_le_uint(a, e, T_CHECK_STEP(s))
1109#define T_step_assert_le_ushort(s, a, e) \
1110 T_flags_le_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1112#define T_lt_ushort(a, e) T_flags_lt_uint(a, e, 0)
1113#define T_assert_lt_ushort(a, e) T_flags_lt_uint(a, e, T_CHECK_STOP)
1114#define T_quiet_lt_ushort(a, e) T_flags_lt_uint(a, e, T_CHECK_QUIET)
1115#define T_step_lt_ushort(s, a, e) T_flags_lt_uint(a, e, T_CHECK_STEP(s))
1116#define T_step_assert_lt_ushort(s, a, e) \
1117 T_flags_lt_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1131#define T_eq_int(a, e) T_flags_eq_int(a, e, 0)
1132#define T_assert_eq_int(a, e) T_flags_eq_int(a, e, T_CHECK_STOP)
1133#define T_quiet_eq_int(a, e) T_flags_eq_int(a, e, T_CHECK_QUIET)
1134#define T_step_eq_int(s, a, e) T_flags_eq_int(a, e, T_CHECK_STEP(s))
1135#define T_step_assert_eq_int(s, a, e) \
1136 T_flags_eq_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1138#define T_ne_int(a, e) T_flags_ne_int(a, e, 0)
1139#define T_assert_ne_int(a, e) T_flags_ne_int(a, e, T_CHECK_STOP)
1140#define T_quiet_ne_int(a, e) T_flags_ne_int(a, e, T_CHECK_QUIET)
1141#define T_step_ne_int(s, a, e) T_flags_ne_int(a, e, T_CHECK_STEP(s))
1142#define T_step_assert_ne_int(s, a, e) \
1143 T_flags_ne_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1145#define T_ge_int(a, e) T_flags_ge_int(a, e, 0)
1146#define T_assert_ge_int(a, e) T_flags_ge_int(a, e, T_CHECK_STOP)
1147#define T_quiet_ge_int(a, e) T_flags_ge_int(a, e, T_CHECK_QUIET)
1148#define T_step_ge_int(s, a, e) T_flags_ge_int(a, e, T_CHECK_STEP(s))
1149#define T_step_assert_ge_int(s, a, e) \
1150 T_flags_ge_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1152#define T_gt_int(a, e) T_flags_gt_int(a, e, 0)
1153#define T_assert_gt_int(a, e) T_flags_gt_int(a, e, T_CHECK_STOP)
1154#define T_quiet_gt_int(a, e) T_flags_gt_int(a, e, T_CHECK_QUIET)
1155#define T_step_gt_int(s, a, e) T_flags_gt_int(a, e, T_CHECK_STEP(s))
1156#define T_step_assert_gt_int(s, a, e) \
1157 T_flags_gt_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1159#define T_le_int(a, e) T_flags_le_int(a, e, 0)
1160#define T_assert_le_int(a, e) T_flags_le_int(a, e, T_CHECK_STOP)
1161#define T_quiet_le_int(a, e) T_flags_le_int(a, e, T_CHECK_QUIET)
1162#define T_step_le_int(s, a, e) T_flags_le_int(a, e, T_CHECK_STEP(s))
1163#define T_step_assert_le_int(s, a, e) \
1164 T_flags_le_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1166#define T_lt_int(a, e) T_flags_lt_int(a, e, 0)
1167#define T_assert_lt_int(a, e) T_flags_lt_int(a, e, T_CHECK_STOP)
1168#define T_quiet_lt_int(a, e) T_flags_lt_int(a, e, T_CHECK_QUIET)
1169#define T_step_lt_int(s, a, e) T_flags_lt_int(a, e, T_CHECK_STEP(s))
1170#define T_step_assert_lt_int(s, a, e) \
1171 T_flags_lt_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1185#define T_eq_uint(a, e) T_flags_eq_uint(a, e, 0)
1186#define T_assert_eq_uint(a, e) T_flags_eq_uint(a, e, T_CHECK_STOP)
1187#define T_quiet_eq_uint(a, e) T_flags_eq_uint(a, e, T_CHECK_QUIET)
1188#define T_step_eq_uint(s, a, e) T_flags_eq_uint(a, e, T_CHECK_STEP(s))
1189#define T_step_assert_eq_uint(s, a, e) \
1190 T_flags_eq_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1192#define T_ne_uint(a, e) T_flags_ne_uint(a, e, 0)
1193#define T_assert_ne_uint(a, e) T_flags_ne_uint(a, e, T_CHECK_STOP)
1194#define T_quiet_ne_uint(a, e) T_flags_ne_uint(a, e, T_CHECK_QUIET)
1195#define T_step_ne_uint(s, a, e) T_flags_ne_uint(a, e, T_CHECK_STEP(s))
1196#define T_step_assert_ne_uint(s, a, e) \
1197 T_flags_ne_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1199#define T_ge_uint(a, e) T_flags_ge_uint(a, e, 0)
1200#define T_assert_ge_uint(a, e) T_flags_ge_uint(a, e, T_CHECK_STOP)
1201#define T_quiet_ge_uint(a, e) T_flags_ge_uint(a, e, T_CHECK_QUIET)
1202#define T_step_ge_uint(s, a, e) T_flags_ge_uint(a, e, T_CHECK_STEP(s))
1203#define T_step_assert_ge_uint(s, a, e) \
1204 T_flags_ge_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1206#define T_gt_uint(a, e) T_flags_gt_uint(a, e, 0)
1207#define T_assert_gt_uint(a, e) T_flags_gt_uint(a, e, T_CHECK_STOP)
1208#define T_quiet_gt_uint(a, e) T_flags_gt_uint(a, e, T_CHECK_QUIET)
1209#define T_step_gt_uint(s, a, e) T_flags_gt_uint(a, e, T_CHECK_STEP(s))
1210#define T_step_assert_gt_uint(s, a, e) \
1211 T_flags_gt_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1213#define T_le_uint(a, e) T_flags_le_uint(a, e, 0)
1214#define T_assert_le_uint(a, e) T_flags_le_uint(a, e, T_CHECK_STOP)
1215#define T_quiet_le_uint(a, e) T_flags_le_uint(a, e, T_CHECK_QUIET)
1216#define T_step_le_uint(s, a, e) T_flags_le_uint(a, e, T_CHECK_STEP(s))
1217#define T_step_assert_le_uint(s, a, e) \
1218 T_flags_le_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1220#define T_lt_uint(a, e) T_flags_lt_uint(a, e, 0)
1221#define T_assert_lt_uint(a, e) T_flags_lt_uint(a, e, T_CHECK_STOP)
1222#define T_quiet_lt_uint(a, e) T_flags_lt_uint(a, e, T_CHECK_QUIET)
1223#define T_step_lt_uint(s, a, e) T_flags_lt_uint(a, e, T_CHECK_STEP(s))
1224#define T_step_assert_lt_uint(s, a, e) \
1225 T_flags_lt_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1239#define T_eq_long(a, e) T_flags_eq_long(a, e, 0)
1240#define T_assert_eq_long(a, e) T_flags_eq_long(a, e, T_CHECK_STOP)
1241#define T_quiet_eq_long(a, e) T_flags_eq_long(a, e, T_CHECK_QUIET)
1242#define T_step_eq_long(s, a, e) T_flags_eq_long(a, e, T_CHECK_STEP(s))
1243#define T_step_assert_eq_long(s, a, e) \
1244 T_flags_eq_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1246#define T_ne_long(a, e) T_flags_ne_long(a, e, 0)
1247#define T_assert_ne_long(a, e) T_flags_ne_long(a, e, T_CHECK_STOP)
1248#define T_quiet_ne_long(a, e) T_flags_ne_long(a, e, T_CHECK_QUIET)
1249#define T_step_ne_long(s, a, e) T_flags_ne_long(a, e, T_CHECK_STEP(s))
1250#define T_step_assert_ne_long(s, a, e) \
1251 T_flags_ne_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1253#define T_ge_long(a, e) T_flags_ge_long(a, e, 0)
1254#define T_assert_ge_long(a, e) T_flags_ge_long(a, e, T_CHECK_STOP)
1255#define T_quiet_ge_long(a, e) T_flags_ge_long(a, e, T_CHECK_QUIET)
1256#define T_step_ge_long(s, a, e) T_flags_ge_long(a, e, T_CHECK_STEP(s))
1257#define T_step_assert_ge_long(s, a, e) \
1258 T_flags_ge_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1260#define T_gt_long(a, e) T_flags_gt_long(a, e, 0)
1261#define T_assert_gt_long(a, e) T_flags_gt_long(a, e, T_CHECK_STOP)
1262#define T_quiet_gt_long(a, e) T_flags_gt_long(a, e, T_CHECK_QUIET)
1263#define T_step_gt_long(s, a, e) T_flags_gt_long(a, e, T_CHECK_STEP(s))
1264#define T_step_assert_gt_long(s, a, e) \
1265 T_flags_gt_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1267#define T_le_long(a, e) T_flags_le_long(a, e, 0)
1268#define T_assert_le_long(a, e) T_flags_le_long(a, e, T_CHECK_STOP)
1269#define T_quiet_le_long(a, e) T_flags_le_long(a, e, T_CHECK_QUIET)
1270#define T_step_le_long(s, a, e) T_flags_le_long(a, e, T_CHECK_STEP(s))
1271#define T_step_assert_le_long(s, a, e) \
1272 T_flags_le_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1274#define T_lt_long(a, e) T_flags_lt_long(a, e, 0)
1275#define T_assert_lt_long(a, e) T_flags_lt_long(a, e, T_CHECK_STOP)
1276#define T_quiet_lt_long(a, e) T_flags_lt_long(a, e, T_CHECK_QUIET)
1277#define T_step_lt_long(s, a, e) T_flags_lt_long(a, e, T_CHECK_STEP(s))
1278#define T_step_assert_lt_long(s, a, e) \
1279 T_flags_lt_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1293#define T_eq_ulong(a, e) T_flags_eq_ulong(a, e, 0)
1294#define T_assert_eq_ulong(a, e) T_flags_eq_ulong(a, e, T_CHECK_STOP)
1295#define T_quiet_eq_ulong(a, e) T_flags_eq_ulong(a, e, T_CHECK_QUIET)
1296#define T_step_eq_ulong(s, a, e) T_flags_eq_ulong(a, e, T_CHECK_STEP(s))
1297#define T_step_assert_eq_ulong(s, a, e) \
1298 T_flags_eq_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1300#define T_ne_ulong(a, e) T_flags_ne_ulong(a, e, 0)
1301#define T_assert_ne_ulong(a, e) T_flags_ne_ulong(a, e, T_CHECK_STOP)
1302#define T_quiet_ne_ulong(a, e) T_flags_ne_ulong(a, e, T_CHECK_QUIET)
1303#define T_step_ne_ulong(s, a, e) T_flags_ne_ulong(a, e, T_CHECK_STEP(s))
1304#define T_step_assert_ne_ulong(s, a, e) \
1305 T_flags_ne_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1307#define T_ge_ulong(a, e) T_flags_ge_ulong(a, e, 0)
1308#define T_assert_ge_ulong(a, e) T_flags_ge_ulong(a, e, T_CHECK_STOP)
1309#define T_quiet_ge_ulong(a, e) T_flags_ge_ulong(a, e, T_CHECK_QUIET)
1310#define T_step_ge_ulong(s, a, e) T_flags_ge_ulong(a, e, T_CHECK_STEP(s))
1311#define T_step_assert_ge_ulong(s, a, e) \
1312 T_flags_ge_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1314#define T_gt_ulong(a, e) T_flags_gt_ulong(a, e, 0)
1315#define T_assert_gt_ulong(a, e) T_flags_gt_ulong(a, e, T_CHECK_STOP)
1316#define T_quiet_gt_ulong(a, e) T_flags_gt_ulong(a, e, T_CHECK_QUIET)
1317#define T_step_gt_ulong(s, a, e) T_flags_gt_ulong(a, e, T_CHECK_STEP(s))
1318#define T_step_assert_gt_ulong(s, a, e) \
1319 T_flags_gt_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1321#define T_le_ulong(a, e) T_flags_le_ulong(a, e, 0)
1322#define T_assert_le_ulong(a, e) T_flags_le_ulong(a, e, T_CHECK_STOP)
1323#define T_quiet_le_ulong(a, e) T_flags_le_ulong(a, e, T_CHECK_QUIET)
1324#define T_step_le_ulong(s, a, e) T_flags_le_ulong(a, e, T_CHECK_STEP(s))
1325#define T_step_assert_le_ulong(s, a, e) \
1326 T_flags_le_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1328#define T_lt_ulong(a, e) T_flags_lt_ulong(a, e, 0)
1329#define T_assert_lt_ulong(a, e) T_flags_lt_ulong(a, e, T_CHECK_STOP)
1330#define T_quiet_lt_ulong(a, e) T_flags_lt_ulong(a, e, T_CHECK_QUIET)
1331#define T_step_lt_ulong(s, a, e) T_flags_lt_ulong(a, e, T_CHECK_STEP(s))
1332#define T_step_assert_lt_ulong(s, a, e) \
1333 T_flags_lt_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1347#define T_eq_ll(a, e) T_flags_eq_ll(a, e, 0)
1348#define T_assert_eq_ll(a, e) T_flags_eq_ll(a, e, T_CHECK_STOP)
1349#define T_quiet_eq_ll(a, e) T_flags_eq_ll(a, e, T_CHECK_QUIET)
1350#define T_step_eq_ll(s, a, e) T_flags_eq_ll(a, e, T_CHECK_STEP(s))
1351#define T_step_assert_eq_ll(s, a, e) \
1352 T_flags_eq_ll(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1354#define T_ne_ll(a, e) T_flags_ne_ll(a, e, 0)
1355#define T_assert_ne_ll(a, e) T_flags_ne_ll(a, e, T_CHECK_STOP)
1356#define T_quiet_ne_ll(a, e) T_flags_ne_ll(a, e, T_CHECK_QUIET)
1357#define T_step_ne_ll(s, a, e) T_flags_ne_ll(a, e, T_CHECK_STEP(s))
1358#define T_step_assert_ne_ll(s, a, e) \
1359 T_flags_ne_ll(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1361#define T_ge_ll(a, e) T_flags_ge_ll(a, e, 0)
1362#define T_assert_ge_ll(a, e) T_flags_ge_ll(a, e, T_CHECK_STOP)
1363#define T_quiet_ge_ll(a, e) T_flags_ge_ll(a, e, T_CHECK_QUIET)
1364#define T_step_ge_ll(s, a, e) T_flags_ge_ll(a, e, T_CHECK_STEP(s))
1365#define T_step_assert_ge_ll(s, a, e) \
1366 T_flags_ge_ll(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1368#define T_gt_ll(a, e) T_flags_gt_ll(a, e, 0)
1369#define T_assert_gt_ll(a, e) T_flags_gt_ll(a, e, T_CHECK_STOP)
1370#define T_quiet_gt_ll(a, e) T_flags_gt_ll(a, e, T_CHECK_QUIET)
1371#define T_step_gt_ll(s, a, e) T_flags_gt_ll(a, e, T_CHECK_STEP(s))
1372#define T_step_assert_gt_ll(s, a, e) \
1373 T_flags_gt_ll(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1375#define T_le_ll(a, e) T_flags_le_ll(a, e, 0)
1376#define T_assert_le_ll(a, e) T_flags_le_ll(a, e, T_CHECK_STOP)
1377#define T_quiet_le_ll(a, e) T_flags_le_ll(a, e, T_CHECK_QUIET)
1378#define T_step_le_ll(s, a, e) T_flags_le_ll(a, e, T_CHECK_STEP(s))
1379#define T_step_assert_le_ll(s, a, e) \
1380 T_flags_le_ll(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1382#define T_lt_ll(a, e) T_flags_lt_ll(a, e, 0)
1383#define T_assert_lt_ll(a, e) T_flags_lt_ll(a, e, T_CHECK_STOP)
1384#define T_quiet_lt_ll(a, e) T_flags_lt_ll(a, e, T_CHECK_QUIET)
1385#define T_step_lt_ll(s, a, e) T_flags_lt_ll(a, e, T_CHECK_STEP(s))
1386#define T_step_assert_lt_ll(s, a, e) \
1387 T_flags_lt_ll(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1401#define T_eq_ull(a, e) T_flags_eq_ull(a, e, 0)
1402#define T_assert_eq_ull(a, e) T_flags_eq_ull(a, e, T_CHECK_STOP)
1403#define T_quiet_eq_ull(a, e) T_flags_eq_ull(a, e, T_CHECK_QUIET)
1404#define T_step_eq_ull(s, a, e) T_flags_eq_ull(a, e, T_CHECK_STEP(s))
1405#define T_step_assert_eq_ull(s, a, e) \
1406 T_flags_eq_ull(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1408#define T_ne_ull(a, e) T_flags_ne_ull(a, e, 0)
1409#define T_assert_ne_ull(a, e) T_flags_ne_ull(a, e, T_CHECK_STOP)
1410#define T_quiet_ne_ull(a, e) T_flags_ne_ull(a, e, T_CHECK_QUIET)
1411#define T_step_ne_ull(s, a, e) T_flags_ne_ull(a, e, T_CHECK_STEP(s))
1412#define T_step_assert_ne_ull(s, a, e) \
1413 T_flags_ne_ull(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1415#define T_ge_ull(a, e) T_flags_ge_ull(a, e, 0)
1416#define T_assert_ge_ull(a, e) T_flags_ge_ull(a, e, T_CHECK_STOP)
1417#define T_quiet_ge_ull(a, e) T_flags_ge_ull(a, e, T_CHECK_QUIET)
1418#define T_step_ge_ull(s, a, e) T_flags_ge_ull(a, e, T_CHECK_STEP(s))
1419#define T_step_assert_ge_ull(s, a, e) \
1420 T_flags_ge_ull(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1422#define T_gt_ull(a, e) T_flags_gt_ull(a, e, 0)
1423#define T_assert_gt_ull(a, e) T_flags_gt_ull(a, e, T_CHECK_STOP)
1424#define T_quiet_gt_ull(a, e) T_flags_gt_ull(a, e, T_CHECK_QUIET)
1425#define T_step_gt_ull(s, a, e) T_flags_gt_ull(a, e, T_CHECK_STEP(s))
1426#define T_step_assert_gt_ull(s, a, e) \
1427 T_flags_gt_ull(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1429#define T_le_ull(a, e) T_flags_le_ull(a, e, 0)
1430#define T_assert_le_ull(a, e) T_flags_le_ull(a, e, T_CHECK_STOP)
1431#define T_quiet_le_ull(a, e) T_flags_le_ull(a, e, T_CHECK_QUIET)
1432#define T_step_le_ull(s, a, e) T_flags_le_ull(a, e, T_CHECK_STEP(s))
1433#define T_step_assert_le_ull(s, a, e) \
1434 T_flags_le_ull(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1436#define T_lt_ull(a, e) T_flags_lt_ull(a, e, 0)
1437#define T_assert_lt_ull(a, e) T_flags_lt_ull(a, e, T_CHECK_STOP)
1438#define T_quiet_lt_ull(a, e) T_flags_lt_ull(a, e, T_CHECK_QUIET)
1439#define T_step_lt_ull(s, a, e) T_flags_lt_ull(a, e, T_CHECK_STEP(s))
1440#define T_step_assert_lt_ull(s, a, e) \
1441 T_flags_lt_ull(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1455#define T_eq_i8(a, e) T_flags_eq_int(a, e, 0)
1456#define T_assert_eq_i8(a, e) T_flags_eq_int(a, e, T_CHECK_STOP)
1457#define T_quiet_eq_i8(a, e) T_flags_eq_int(a, e, T_CHECK_QUIET)
1458#define T_step_eq_i8(s, a, e) T_flags_eq_int(a, e, T_CHECK_STEP(s))
1459#define T_step_assert_eq_i8(s, a, e) \
1460 T_flags_eq_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1462#define T_ne_i8(a, e) T_flags_ne_int(a, e, 0)
1463#define T_assert_ne_i8(a, e) T_flags_ne_int(a, e, T_CHECK_STOP)
1464#define T_quiet_ne_i8(a, e) T_flags_ne_int(a, e, T_CHECK_QUIET)
1465#define T_step_ne_i8(s, a, e) T_flags_ne_int(a, e, T_CHECK_STEP(s))
1466#define T_step_assert_ne_i8(s, a, e) \
1467 T_flags_ne_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1469#define T_ge_i8(a, e) T_flags_ge_int(a, e, 0)
1470#define T_assert_ge_i8(a, e) T_flags_ge_int(a, e, T_CHECK_STOP)
1471#define T_quiet_ge_i8(a, e) T_flags_ge_int(a, e, T_CHECK_QUIET)
1472#define T_step_ge_i8(s, a, e) T_flags_ge_int(a, e, T_CHECK_STEP(s))
1473#define T_step_assert_ge_i8(s, a, e) \
1474 T_flags_ge_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1476#define T_gt_i8(a, e) T_flags_gt_int(a, e, 0)
1477#define T_assert_gt_i8(a, e) T_flags_gt_int(a, e, T_CHECK_STOP)
1478#define T_quiet_gt_i8(a, e) T_flags_gt_int(a, e, T_CHECK_QUIET)
1479#define T_step_gt_i8(s, a, e) T_flags_gt_int(a, e, T_CHECK_STEP(s))
1480#define T_step_assert_gt_i8(s, a, e) \
1481 T_flags_gt_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1483#define T_le_i8(a, e) T_flags_le_int(a, e, 0)
1484#define T_assert_le_i8(a, e) T_flags_le_int(a, e, T_CHECK_STOP)
1485#define T_quiet_le_i8(a, e) T_flags_le_int(a, e, T_CHECK_QUIET)
1486#define T_step_le_i8(s, a, e) T_flags_le_int(a, e, T_CHECK_STEP(s))
1487#define T_step_assert_le_i8(s, a, e) \
1488 T_flags_le_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1490#define T_lt_i8(a, e) T_flags_lt_int(a, e, 0)
1491#define T_assert_lt_i8(a, e) T_flags_lt_int(a, e, T_CHECK_STOP)
1492#define T_quiet_lt_i8(a, e) T_flags_lt_int(a, e, T_CHECK_QUIET)
1493#define T_step_lt_i8(s, a, e) T_flags_lt_int(a, e, T_CHECK_STEP(s))
1494#define T_step_assert_lt_i8(s, a, e) \
1495 T_flags_lt_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1509#define T_eq_u8(a, e) T_flags_eq_uint(a, e, 0)
1510#define T_assert_eq_u8(a, e) T_flags_eq_uint(a, e, T_CHECK_STOP)
1511#define T_quiet_eq_u8(a, e) T_flags_eq_uint(a, e, T_CHECK_QUIET)
1512#define T_step_eq_u8(s, a, e) T_flags_eq_uint(a, e, T_CHECK_STEP(s))
1513#define T_step_assert_eq_u8(s, a, e) \
1514 T_flags_eq_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1516#define T_ne_u8(a, e) T_flags_ne_uint(a, e, 0)
1517#define T_assert_ne_u8(a, e) T_flags_ne_uint(a, e, T_CHECK_STOP)
1518#define T_quiet_ne_u8(a, e) T_flags_ne_uint(a, e, T_CHECK_QUIET)
1519#define T_step_ne_u8(s, a, e) T_flags_ne_uint(a, e, T_CHECK_STEP(s))
1520#define T_step_assert_ne_u8(s, a, e) \
1521 T_flags_ne_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1523#define T_ge_u8(a, e) T_flags_ge_uint(a, e, 0)
1524#define T_assert_ge_u8(a, e) T_flags_ge_uint(a, e, T_CHECK_STOP)
1525#define T_quiet_ge_u8(a, e) T_flags_ge_uint(a, e, T_CHECK_QUIET)
1526#define T_step_ge_u8(s, a, e) T_flags_ge_uint(a, e, T_CHECK_STEP(s))
1527#define T_step_assert_ge_u8(s, a, e) \
1528 T_flags_ge_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1530#define T_gt_u8(a, e) T_flags_gt_uint(a, e, 0)
1531#define T_assert_gt_u8(a, e) T_flags_gt_uint(a, e, T_CHECK_STOP)
1532#define T_quiet_gt_u8(a, e) T_flags_gt_uint(a, e, T_CHECK_QUIET)
1533#define T_step_gt_u8(s, a, e) T_flags_gt_uint(a, e, T_CHECK_STEP(s))
1534#define T_step_assert_gt_u8(s, a, e) \
1535 T_flags_gt_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1537#define T_le_u8(a, e) T_flags_le_uint(a, e, 0)
1538#define T_assert_le_u8(a, e) T_flags_le_uint(a, e, T_CHECK_STOP)
1539#define T_quiet_le_u8(a, e) T_flags_le_uint(a, e, T_CHECK_QUIET)
1540#define T_step_le_u8(s, a, e) T_flags_le_uint(a, e, T_CHECK_STEP(s))
1541#define T_step_assert_le_u8(s, a, e) \
1542 T_flags_le_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1544#define T_lt_u8(a, e) T_flags_lt_uint(a, e, 0)
1545#define T_assert_lt_u8(a, e) T_flags_lt_uint(a, e, T_CHECK_STOP)
1546#define T_quiet_lt_u8(a, e) T_flags_lt_uint(a, e, T_CHECK_QUIET)
1547#define T_step_lt_u8(s, a, e) T_flags_lt_uint(a, e, T_CHECK_STEP(s))
1548#define T_step_assert_lt_u8(s, a, e) \
1549 T_flags_lt_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1563#define T_eq_i16(a, e) T_flags_eq_int(a, e, 0)
1564#define T_assert_eq_i16(a, e) T_flags_eq_int(a, e, T_CHECK_STOP)
1565#define T_quiet_eq_i16(a, e) T_flags_eq_int(a, e, T_CHECK_QUIET)
1566#define T_step_eq_i16(s, a, e) T_flags_eq_int(a, e, T_CHECK_STEP(s))
1567#define T_step_assert_eq_i16(s, a, e) \
1568 T_flags_eq_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1570#define T_ne_i16(a, e) T_flags_ne_int(a, e, 0)
1571#define T_assert_ne_i16(a, e) T_flags_ne_int(a, e, T_CHECK_STOP)
1572#define T_quiet_ne_i16(a, e) T_flags_ne_int(a, e, T_CHECK_QUIET)
1573#define T_step_ne_i16(s, a, e) T_flags_ne_int(a, e, T_CHECK_STEP(s))
1574#define T_step_assert_ne_i16(s, a, e) \
1575 T_flags_ne_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1577#define T_ge_i16(a, e) T_flags_ge_int(a, e, 0)
1578#define T_assert_ge_i16(a, e) T_flags_ge_int(a, e, T_CHECK_STOP)
1579#define T_quiet_ge_i16(a, e) T_flags_ge_int(a, e, T_CHECK_QUIET)
1580#define T_step_ge_i16(s, a, e) T_flags_ge_int(a, e, T_CHECK_STEP(s))
1581#define T_step_assert_ge_i16(s, a, e) \
1582 T_flags_ge_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1584#define T_gt_i16(a, e) T_flags_gt_int(a, e, 0)
1585#define T_assert_gt_i16(a, e) T_flags_gt_int(a, e, T_CHECK_STOP)
1586#define T_quiet_gt_i16(a, e) T_flags_gt_int(a, e, T_CHECK_QUIET)
1587#define T_step_gt_i16(s, a, e) T_flags_gt_int(a, e, T_CHECK_STEP(s))
1588#define T_step_assert_gt_i16(s, a, e) \
1589 T_flags_gt_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1591#define T_le_i16(a, e) T_flags_le_int(a, e, 0)
1592#define T_assert_le_i16(a, e) T_flags_le_int(a, e, T_CHECK_STOP)
1593#define T_quiet_le_i16(a, e) T_flags_le_int(a, e, T_CHECK_QUIET)
1594#define T_step_le_i16(s, a, e) T_flags_le_int(a, e, T_CHECK_STEP(s))
1595#define T_step_assert_le_i16(s, a, e) \
1596 T_flags_le_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1598#define T_lt_i16(a, e) T_flags_lt_int(a, e, 0)
1599#define T_assert_lt_i16(a, e) T_flags_lt_int(a, e, T_CHECK_STOP)
1600#define T_quiet_lt_i16(a, e) T_flags_lt_int(a, e, T_CHECK_QUIET)
1601#define T_step_lt_i16(s, a, e) T_flags_lt_int(a, e, T_CHECK_STEP(s))
1602#define T_step_assert_lt_i16(s, a, e) \
1603 T_flags_lt_int(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1617#define T_eq_u16(a, e) T_flags_eq_uint(a, e, 0)
1618#define T_assert_eq_u16(a, e) T_flags_eq_uint(a, e, T_CHECK_STOP)
1619#define T_quiet_eq_u16(a, e) T_flags_eq_uint(a, e, T_CHECK_QUIET)
1620#define T_step_eq_u16(s, a, e) T_flags_eq_uint(a, e, T_CHECK_STEP(s))
1621#define T_step_assert_eq_u16(s, a, e) \
1622 T_flags_eq_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1624#define T_ne_u16(a, e) T_flags_ne_uint(a, e, 0)
1625#define T_assert_ne_u16(a, e) T_flags_ne_uint(a, e, T_CHECK_STOP)
1626#define T_quiet_ne_u16(a, e) T_flags_ne_uint(a, e, T_CHECK_QUIET)
1627#define T_step_ne_u16(s, a, e) T_flags_ne_uint(a, e, T_CHECK_STEP(s))
1628#define T_step_assert_ne_u16(s, a, e) \
1629 T_flags_ne_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1631#define T_ge_u16(a, e) T_flags_ge_uint(a, e, 0)
1632#define T_assert_ge_u16(a, e) T_flags_ge_uint(a, e, T_CHECK_STOP)
1633#define T_quiet_ge_u16(a, e) T_flags_ge_uint(a, e, T_CHECK_QUIET)
1634#define T_step_ge_u16(s, a, e) T_flags_ge_uint(a, e, T_CHECK_STEP(s))
1635#define T_step_assert_ge_u16(s, a, e) \
1636 T_flags_ge_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1638#define T_gt_u16(a, e) T_flags_gt_uint(a, e, 0)
1639#define T_assert_gt_u16(a, e) T_flags_gt_uint(a, e, T_CHECK_STOP)
1640#define T_quiet_gt_u16(a, e) T_flags_gt_uint(a, e, T_CHECK_QUIET)
1641#define T_step_gt_u16(s, a, e) T_flags_gt_uint(a, e, T_CHECK_STEP(s))
1642#define T_step_assert_gt_u16(s, a, e) \
1643 T_flags_gt_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1645#define T_le_u16(a, e) T_flags_le_uint(a, e, 0)
1646#define T_assert_le_u16(a, e) T_flags_le_uint(a, e, T_CHECK_STOP)
1647#define T_quiet_le_u16(a, e) T_flags_le_uint(a, e, T_CHECK_QUIET)
1648#define T_step_le_u16(s, a, e) T_flags_le_uint(a, e, T_CHECK_STEP(s))
1649#define T_step_assert_le_u16(s, a, e) \
1650 T_flags_le_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1652#define T_lt_u16(a, e) T_flags_lt_uint(a, e, 0)
1653#define T_assert_lt_u16(a, e) T_flags_lt_uint(a, e, T_CHECK_STOP)
1654#define T_quiet_lt_u16(a, e) T_flags_lt_uint(a, e, T_CHECK_QUIET)
1655#define T_step_lt_u16(s, a, e) T_flags_lt_uint(a, e, T_CHECK_STEP(s))
1656#define T_step_assert_lt_u16(s, a, e) \
1657 T_flags_lt_uint(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1671#define T_eq_i32(a, e) T_flags_eq_long(a, e, 0)
1672#define T_assert_eq_i32(a, e) T_flags_eq_long(a, e, T_CHECK_STOP)
1673#define T_quiet_eq_i32(a, e) T_flags_eq_long(a, e, T_CHECK_QUIET)
1674#define T_step_eq_i32(s, a, e) T_flags_eq_long(a, e, T_CHECK_STEP(s))
1675#define T_step_assert_eq_i32(s, a, e) \
1676 T_flags_eq_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1678#define T_ne_i32(a, e) T_flags_ne_long(a, e, 0)
1679#define T_assert_ne_i32(a, e) T_flags_ne_long(a, e, T_CHECK_STOP)
1680#define T_quiet_ne_i32(a, e) T_flags_ne_long(a, e, T_CHECK_QUIET)
1681#define T_step_ne_i32(s, a, e) T_flags_ne_long(a, e, T_CHECK_STEP(s))
1682#define T_step_assert_ne_i32(s, a, e) \
1683 T_flags_ne_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1685#define T_ge_i32(a, e) T_flags_ge_long(a, e, 0)
1686#define T_assert_ge_i32(a, e) T_flags_ge_long(a, e, T_CHECK_STOP)
1687#define T_quiet_ge_i32(a, e) T_flags_ge_long(a, e, T_CHECK_QUIET)
1688#define T_step_ge_i32(s, a, e) T_flags_ge_long(a, e, T_CHECK_STEP(s))
1689#define T_step_assert_ge_i32(s, a, e) \
1690 T_flags_ge_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1692#define T_gt_i32(a, e) T_flags_gt_long(a, e, 0)
1693#define T_assert_gt_i32(a, e) T_flags_gt_long(a, e, T_CHECK_STOP)
1694#define T_quiet_gt_i32(a, e) T_flags_gt_long(a, e, T_CHECK_QUIET)
1695#define T_step_gt_i32(s, a, e) T_flags_gt_long(a, e, T_CHECK_STEP(s))
1696#define T_step_assert_gt_i32(s, a, e) \
1697 T_flags_gt_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1699#define T_le_i32(a, e) T_flags_le_long(a, e, 0)
1700#define T_assert_le_i32(a, e) T_flags_le_long(a, e, T_CHECK_STOP)
1701#define T_quiet_le_i32(a, e) T_flags_le_long(a, e, T_CHECK_QUIET)
1702#define T_step_le_i32(s, a, e) T_flags_le_long(a, e, T_CHECK_STEP(s))
1703#define T_step_assert_le_i32(s, a, e) \
1704 T_flags_le_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1706#define T_lt_i32(a, e) T_flags_lt_long(a, e, 0)
1707#define T_assert_lt_i32(a, e) T_flags_lt_long(a, e, T_CHECK_STOP)
1708#define T_quiet_lt_i32(a, e) T_flags_lt_long(a, e, T_CHECK_QUIET)
1709#define T_step_lt_i32(s, a, e) T_flags_lt_long(a, e, T_CHECK_STEP(s))
1710#define T_step_assert_lt_i32(s, a, e) \
1711 T_flags_lt_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1725#define T_eq_u32(a, e) T_flags_eq_ulong(a, e, 0)
1726#define T_assert_eq_u32(a, e) T_flags_eq_ulong(a, e, T_CHECK_STOP)
1727#define T_quiet_eq_u32(a, e) T_flags_eq_ulong(a, e, T_CHECK_QUIET)
1728#define T_step_eq_u32(s, a, e) T_flags_eq_ulong(a, e, T_CHECK_STEP(s))
1729#define T_step_assert_eq_u32(s, a, e) \
1730 T_flags_eq_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1732#define T_ne_u32(a, e) T_flags_ne_ulong(a, e, 0)
1733#define T_assert_ne_u32(a, e) T_flags_ne_ulong(a, e, T_CHECK_STOP)
1734#define T_quiet_ne_u32(a, e) T_flags_ne_ulong(a, e, T_CHECK_QUIET)
1735#define T_step_ne_u32(s, a, e) T_flags_ne_ulong(a, e, T_CHECK_STEP(s))
1736#define T_step_assert_ne_u32(s, a, e) \
1737 T_flags_ne_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1739#define T_ge_u32(a, e) T_flags_ge_ulong(a, e, 0)
1740#define T_assert_ge_u32(a, e) T_flags_ge_ulong(a, e, T_CHECK_STOP)
1741#define T_quiet_ge_u32(a, e) T_flags_ge_ulong(a, e, T_CHECK_QUIET)
1742#define T_step_ge_u32(s, a, e) T_flags_ge_ulong(a, e, T_CHECK_STEP(s))
1743#define T_step_assert_ge_u32(s, a, e) \
1744 T_flags_ge_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1746#define T_gt_u32(a, e) T_flags_gt_ulong(a, e, 0)
1747#define T_assert_gt_u32(a, e) T_flags_gt_ulong(a, e, T_CHECK_STOP)
1748#define T_quiet_gt_u32(a, e) T_flags_gt_ulong(a, e, T_CHECK_QUIET)
1749#define T_step_gt_u32(s, a, e) T_flags_gt_ulong(a, e, T_CHECK_STEP(s))
1750#define T_step_assert_gt_u32(s, a, e) \
1751 T_flags_gt_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1753#define T_le_u32(a, e) T_flags_le_ulong(a, e, 0)
1754#define T_assert_le_u32(a, e) T_flags_le_ulong(a, e, T_CHECK_STOP)
1755#define T_quiet_le_u32(a, e) T_flags_le_ulong(a, e, T_CHECK_QUIET)
1756#define T_step_le_u32(s, a, e) T_flags_le_ulong(a, e, T_CHECK_STEP(s))
1757#define T_step_assert_le_u32(s, a, e) \
1758 T_flags_le_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1760#define T_lt_u32(a, e) T_flags_lt_ulong(a, e, 0)
1761#define T_assert_lt_u32(a, e) T_flags_lt_ulong(a, e, T_CHECK_STOP)
1762#define T_quiet_lt_u32(a, e) T_flags_lt_ulong(a, e, T_CHECK_QUIET)
1763#define T_step_lt_u32(s, a, e) T_flags_lt_ulong(a, e, T_CHECK_STEP(s))
1764#define T_step_assert_lt_u32(s, a, e) \
1765 T_flags_lt_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1779#define T_eq_i64(a, e) T_flags_eq_ll(a, e, 0)
1780#define T_assert_eq_i64(a, e) T_flags_eq_ll(a, e, T_CHECK_STOP)
1781#define T_quiet_eq_i64(a, e) T_flags_eq_ll(a, e, T_CHECK_QUIET)
1782#define T_step_eq_i64(s, a, e) T_flags_eq_ll(a, e, T_CHECK_STEP(s))
1783#define T_step_assert_eq_i64(s, a, e) \
1784 T_flags_eq_ll(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1786#define T_ne_i64(a, e) T_flags_ne_ll(a, e, 0)
1787#define T_assert_ne_i64(a, e) T_flags_ne_ll(a, e, T_CHECK_STOP)
1788#define T_quiet_ne_i64(a, e) T_flags_ne_ll(a, e, T_CHECK_QUIET)
1789#define T_step_ne_i64(s, a, e) T_flags_ne_ll(a, e, T_CHECK_STEP(s))
1790#define T_step_assert_ne_i64(s, a, e) \
1791 T_flags_ne_ll(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1793#define T_ge_i64(a, e) T_flags_ge_ll(a, e, 0)
1794#define T_assert_ge_i64(a, e) T_flags_ge_ll(a, e, T_CHECK_STOP)
1795#define T_quiet_ge_i64(a, e) T_flags_ge_ll(a, e, T_CHECK_QUIET)
1796#define T_step_ge_i64(s, a, e) T_flags_ge_ll(a, e, T_CHECK_STEP(s))
1797#define T_step_assert_ge_i64(s, a, e) \
1798 T_flags_ge_ll(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1800#define T_gt_i64(a, e) T_flags_gt_ll(a, e, 0)
1801#define T_assert_gt_i64(a, e) T_flags_gt_ll(a, e, T_CHECK_STOP)
1802#define T_quiet_gt_i64(a, e) T_flags_gt_ll(a, e, T_CHECK_QUIET)
1803#define T_step_gt_i64(s, a, e) T_flags_gt_ll(a, e, T_CHECK_STEP(s))
1804#define T_step_assert_gt_i64(s, a, e) \
1805 T_flags_gt_ll(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1807#define T_le_i64(a, e) T_flags_le_ll(a, e, 0)
1808#define T_assert_le_i64(a, e) T_flags_le_ll(a, e, T_CHECK_STOP)
1809#define T_quiet_le_i64(a, e) T_flags_le_ll(a, e, T_CHECK_QUIET)
1810#define T_step_le_i64(s, a, e) T_flags_le_ll(a, e, T_CHECK_STEP(s))
1811#define T_step_assert_le_i64(s, a, e) \
1812 T_flags_le_ll(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1814#define T_lt_i64(a, e) T_flags_lt_ll(a, e, 0)
1815#define T_assert_lt_i64(a, e) T_flags_lt_ll(a, e, T_CHECK_STOP)
1816#define T_quiet_lt_i64(a, e) T_flags_lt_ll(a, e, T_CHECK_QUIET)
1817#define T_step_lt_i64(s, a, e) T_flags_lt_ll(a, e, T_CHECK_STEP(s))
1818#define T_step_assert_lt_i64(s, a, e) \
1819 T_flags_lt_ll(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1833#define T_eq_u64(a, e) T_flags_eq_ull(a, e, 0)
1834#define T_assert_eq_u64(a, e) T_flags_eq_ull(a, e, T_CHECK_STOP)
1835#define T_quiet_eq_u64(a, e) T_flags_eq_ull(a, e, T_CHECK_QUIET)
1836#define T_step_eq_u64(s, a, e) T_flags_eq_ull(a, e, T_CHECK_STEP(s))
1837#define T_step_assert_eq_u64(s, a, e) \
1838 T_flags_eq_ull(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1840#define T_ne_u64(a, e) T_flags_ne_ull(a, e, 0)
1841#define T_assert_ne_u64(a, e) T_flags_ne_ull(a, e, T_CHECK_STOP)
1842#define T_quiet_ne_u64(a, e) T_flags_ne_ull(a, e, T_CHECK_QUIET)
1843#define T_step_ne_u64(s, a, e) T_flags_ne_ull(a, e, T_CHECK_STEP(s))
1844#define T_step_assert_ne_u64(s, a, e) \
1845 T_flags_ne_ull(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1847#define T_ge_u64(a, e) T_flags_ge_ull(a, e, 0)
1848#define T_assert_ge_u64(a, e) T_flags_ge_ull(a, e, T_CHECK_STOP)
1849#define T_quiet_ge_u64(a, e) T_flags_ge_ull(a, e, T_CHECK_QUIET)
1850#define T_step_ge_u64(s, a, e) T_flags_ge_ull(a, e, T_CHECK_STEP(s))
1851#define T_step_assert_ge_u64(s, a, e) \
1852 T_flags_ge_ull(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1854#define T_gt_u64(a, e) T_flags_gt_ull(a, e, 0)
1855#define T_assert_gt_u64(a, e) T_flags_gt_ull(a, e, T_CHECK_STOP)
1856#define T_quiet_gt_u64(a, e) T_flags_gt_ull(a, e, T_CHECK_QUIET)
1857#define T_step_gt_u64(s, a, e) T_flags_gt_ull(a, e, T_CHECK_STEP(s))
1858#define T_step_assert_gt_u64(s, a, e) \
1859 T_flags_gt_ull(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1861#define T_le_u64(a, e) T_flags_le_ull(a, e, 0)
1862#define T_assert_le_u64(a, e) T_flags_le_ull(a, e, T_CHECK_STOP)
1863#define T_quiet_le_u64(a, e) T_flags_le_ull(a, e, T_CHECK_QUIET)
1864#define T_step_le_u64(s, a, e) T_flags_le_ull(a, e, T_CHECK_STEP(s))
1865#define T_step_assert_le_u64(s, a, e) \
1866 T_flags_le_ull(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1868#define T_lt_u64(a, e) T_flags_lt_ull(a, e, 0)
1869#define T_assert_lt_u64(a, e) T_flags_lt_ull(a, e, T_CHECK_STOP)
1870#define T_quiet_lt_u64(a, e) T_flags_lt_ull(a, e, T_CHECK_QUIET)
1871#define T_step_lt_u64(s, a, e) T_flags_lt_ull(a, e, T_CHECK_STEP(s))
1872#define T_step_assert_lt_u64(s, a, e) \
1873 T_flags_lt_ull(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1887#define T_eq_iptr(a, e) T_flags_eq_long(a, e, 0)
1888#define T_assert_eq_iptr(a, e) T_flags_eq_long(a, e, T_CHECK_STOP)
1889#define T_quiet_eq_iptr(a, e) T_flags_eq_long(a, e, T_CHECK_QUIET)
1890#define T_step_eq_iptr(s, a, e) T_flags_eq_long(a, e, T_CHECK_STEP(s))
1891#define T_step_assert_eq_iptr(s, a, e) \
1892 T_flags_eq_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1894#define T_ne_iptr(a, e) T_flags_ne_long(a, e, 0)
1895#define T_assert_ne_iptr(a, e) T_flags_ne_long(a, e, T_CHECK_STOP)
1896#define T_quiet_ne_iptr(a, e) T_flags_ne_long(a, e, T_CHECK_QUIET)
1897#define T_step_ne_iptr(s, a, e) T_flags_ne_long(a, e, T_CHECK_STEP(s))
1898#define T_step_assert_ne_iptr(s, a, e) \
1899 T_flags_ne_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1901#define T_ge_iptr(a, e) T_flags_ge_long(a, e, 0)
1902#define T_assert_ge_iptr(a, e) T_flags_ge_long(a, e, T_CHECK_STOP)
1903#define T_quiet_ge_iptr(a, e) T_flags_ge_long(a, e, T_CHECK_QUIET)
1904#define T_step_ge_iptr(s, a, e) T_flags_ge_long(a, e, T_CHECK_STEP(s))
1905#define T_step_assert_ge_iptr(s, a, e) \
1906 T_flags_ge_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1908#define T_gt_iptr(a, e) T_flags_gt_long(a, e, 0)
1909#define T_assert_gt_iptr(a, e) T_flags_gt_long(a, e, T_CHECK_STOP)
1910#define T_quiet_gt_iptr(a, e) T_flags_gt_long(a, e, T_CHECK_QUIET)
1911#define T_step_gt_iptr(s, a, e) T_flags_gt_long(a, e, T_CHECK_STEP(s))
1912#define T_step_assert_gt_iptr(s, a, e) \
1913 T_flags_gt_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1915#define T_le_iptr(a, e) T_flags_le_long(a, e, 0)
1916#define T_assert_le_iptr(a, e) T_flags_le_long(a, e, T_CHECK_STOP)
1917#define T_quiet_le_iptr(a, e) T_flags_le_long(a, e, T_CHECK_QUIET)
1918#define T_step_le_iptr(s, a, e) T_flags_le_long(a, e, T_CHECK_STEP(s))
1919#define T_step_assert_le_iptr(s, a, e) \
1920 T_flags_le_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1922#define T_lt_iptr(a, e) T_flags_lt_long(a, e, 0)
1923#define T_assert_lt_iptr(a, e) T_flags_lt_long(a, e, T_CHECK_STOP)
1924#define T_quiet_lt_iptr(a, e) T_flags_lt_long(a, e, T_CHECK_QUIET)
1925#define T_step_lt_iptr(s, a, e) T_flags_lt_long(a, e, T_CHECK_STEP(s))
1926#define T_step_assert_lt_iptr(s, a, e) \
1927 T_flags_lt_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1941#define T_eq_uptr(a, e) T_flags_eq_ulong(a, e, 0)
1942#define T_assert_eq_uptr(a, e) T_flags_eq_ulong(a, e, T_CHECK_STOP)
1943#define T_quiet_eq_uptr(a, e) T_flags_eq_ulong(a, e, T_CHECK_QUIET)
1944#define T_step_eq_uptr(s, a, e) T_flags_eq_ulong(a, e, T_CHECK_STEP(s))
1945#define T_step_assert_eq_uptr(s, a, e) \
1946 T_flags_eq_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1948#define T_ne_uptr(a, e) T_flags_ne_ulong(a, e, 0)
1949#define T_assert_ne_uptr(a, e) T_flags_ne_ulong(a, e, T_CHECK_STOP)
1950#define T_quiet_ne_uptr(a, e) T_flags_ne_ulong(a, e, T_CHECK_QUIET)
1951#define T_step_ne_uptr(s, a, e) T_flags_ne_ulong(a, e, T_CHECK_STEP(s))
1952#define T_step_assert_ne_uptr(s, a, e) \
1953 T_flags_ne_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1955#define T_ge_uptr(a, e) T_flags_ge_ulong(a, e, 0)
1956#define T_assert_ge_uptr(a, e) T_flags_ge_ulong(a, e, T_CHECK_STOP)
1957#define T_quiet_ge_uptr(a, e) T_flags_ge_ulong(a, e, T_CHECK_QUIET)
1958#define T_step_ge_uptr(s, a, e) T_flags_ge_ulong(a, e, T_CHECK_STEP(s))
1959#define T_step_assert_ge_uptr(s, a, e) \
1960 T_flags_ge_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1962#define T_gt_uptr(a, e) T_flags_gt_ulong(a, e, 0)
1963#define T_assert_gt_uptr(a, e) T_flags_gt_ulong(a, e, T_CHECK_STOP)
1964#define T_quiet_gt_uptr(a, e) T_flags_gt_ulong(a, e, T_CHECK_QUIET)
1965#define T_step_gt_uptr(s, a, e) T_flags_gt_ulong(a, e, T_CHECK_STEP(s))
1966#define T_step_assert_gt_uptr(s, a, e) \
1967 T_flags_gt_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1969#define T_le_uptr(a, e) T_flags_le_ulong(a, e, 0)
1970#define T_assert_le_uptr(a, e) T_flags_le_ulong(a, e, T_CHECK_STOP)
1971#define T_quiet_le_uptr(a, e) T_flags_le_ulong(a, e, T_CHECK_QUIET)
1972#define T_step_le_uptr(s, a, e) T_flags_le_ulong(a, e, T_CHECK_STEP(s))
1973#define T_step_assert_le_uptr(s, a, e) \
1974 T_flags_le_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1976#define T_lt_uptr(a, e) T_flags_lt_ulong(a, e, 0)
1977#define T_assert_lt_uptr(a, e) T_flags_lt_ulong(a, e, T_CHECK_STOP)
1978#define T_quiet_lt_uptr(a, e) T_flags_lt_ulong(a, e, T_CHECK_QUIET)
1979#define T_step_lt_uptr(s, a, e) T_flags_lt_ulong(a, e, T_CHECK_STEP(s))
1980#define T_step_assert_lt_uptr(s, a, e) \
1981 T_flags_lt_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
1995#define T_eq_ssz(a, e) T_flags_eq_long(a, e, 0)
1996#define T_assert_eq_ssz(a, e) T_flags_eq_long(a, e, T_CHECK_STOP)
1997#define T_quiet_eq_ssz(a, e) T_flags_eq_long(a, e, T_CHECK_QUIET)
1998#define T_step_eq_ssz(s, a, e) T_flags_eq_long(a, e, T_CHECK_STEP(s))
1999#define T_step_assert_eq_ssz(s, a, e) \
2000 T_flags_eq_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
2002#define T_ne_ssz(a, e) T_flags_ne_long(a, e, 0)
2003#define T_assert_ne_ssz(a, e) T_flags_ne_long(a, e, T_CHECK_STOP)
2004#define T_quiet_ne_ssz(a, e) T_flags_ne_long(a, e, T_CHECK_QUIET)
2005#define T_step_ne_ssz(s, a, e) T_flags_ne_long(a, e, T_CHECK_STEP(s))
2006#define T_step_assert_ne_ssz(s, a, e) \
2007 T_flags_ne_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
2009#define T_ge_ssz(a, e) T_flags_ge_long(a, e, 0)
2010#define T_assert_ge_ssz(a, e) T_flags_ge_long(a, e, T_CHECK_STOP)
2011#define T_quiet_ge_ssz(a, e) T_flags_ge_long(a, e, T_CHECK_QUIET)
2012#define T_step_ge_ssz(s, a, e) T_flags_ge_long(a, e, T_CHECK_STEP(s))
2013#define T_step_assert_ge_ssz(s, a, e) \
2014 T_flags_ge_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
2016#define T_gt_ssz(a, e) T_flags_gt_long(a, e, 0)
2017#define T_assert_gt_ssz(a, e) T_flags_gt_long(a, e, T_CHECK_STOP)
2018#define T_quiet_gt_ssz(a, e) T_flags_gt_long(a, e, T_CHECK_QUIET)
2019#define T_step_gt_ssz(s, a, e) T_flags_gt_long(a, e, T_CHECK_STEP(s))
2020#define T_step_assert_gt_ssz(s, a, e) \
2021 T_flags_gt_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
2023#define T_le_ssz(a, e) T_flags_le_long(a, e, 0)
2024#define T_assert_le_ssz(a, e) T_flags_le_long(a, e, T_CHECK_STOP)
2025#define T_quiet_le_ssz(a, e) T_flags_le_long(a, e, T_CHECK_QUIET)
2026#define T_step_le_ssz(s, a, e) T_flags_le_long(a, e, T_CHECK_STEP(s))
2027#define T_step_assert_le_ssz(s, a, e) \
2028 T_flags_le_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
2030#define T_lt_ssz(a, e) T_flags_lt_long(a, e, 0)
2031#define T_assert_lt_ssz(a, e) T_flags_lt_long(a, e, T_CHECK_STOP)
2032#define T_quiet_lt_ssz(a, e) T_flags_lt_long(a, e, T_CHECK_QUIET)
2033#define T_step_lt_ssz(s, a, e) T_flags_lt_long(a, e, T_CHECK_STEP(s))
2034#define T_step_assert_lt_ssz(s, a, e) \
2035 T_flags_lt_long(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
2049#define T_eq_sz(a, e) T_flags_eq_ulong(a, e, 0)
2050#define T_assert_eq_sz(a, e) T_flags_eq_ulong(a, e, T_CHECK_STOP)
2051#define T_quiet_eq_sz(a, e) T_flags_eq_ulong(a, e, T_CHECK_QUIET)
2052#define T_step_eq_sz(s, a, e) T_flags_eq_ulong(a, e, T_CHECK_STEP(s))
2053#define T_step_assert_eq_sz(s, a, e) \
2054 T_flags_eq_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
2056#define T_ne_sz(a, e) T_flags_ne_ulong(a, e, 0)
2057#define T_assert_ne_sz(a, e) T_flags_ne_ulong(a, e, T_CHECK_STOP)
2058#define T_quiet_ne_sz(a, e) T_flags_ne_ulong(a, e, T_CHECK_QUIET)
2059#define T_step_ne_sz(s, a, e) T_flags_ne_ulong(a, e, T_CHECK_STEP(s))
2060#define T_step_assert_ne_sz(s, a, e) \
2061 T_flags_ne_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
2063#define T_ge_sz(a, e) T_flags_ge_ulong(a, e, 0)
2064#define T_assert_ge_sz(a, e) T_flags_ge_ulong(a, e, T_CHECK_STOP)
2065#define T_quiet_ge_sz(a, e) T_flags_ge_ulong(a, e, T_CHECK_QUIET)
2066#define T_step_ge_sz(s, a, e) T_flags_ge_ulong(a, e, T_CHECK_STEP(s))
2067#define T_step_assert_ge_sz(s, a, e) \
2068 T_flags_ge_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
2070#define T_gt_sz(a, e) T_flags_gt_ulong(a, e, 0)
2071#define T_assert_gt_sz(a, e) T_flags_gt_ulong(a, e, T_CHECK_STOP)
2072#define T_quiet_gt_sz(a, e) T_flags_gt_ulong(a, e, T_CHECK_QUIET)
2073#define T_step_gt_sz(s, a, e) T_flags_gt_ulong(a, e, T_CHECK_STEP(s))
2074#define T_step_assert_gt_sz(s, a, e) \
2075 T_flags_gt_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
2077#define T_le_sz(a, e) T_flags_le_ulong(a, e, 0)
2078#define T_assert_le_sz(a, e) T_flags_le_ulong(a, e, T_CHECK_STOP)
2079#define T_quiet_le_sz(a, e) T_flags_le_ulong(a, e, T_CHECK_QUIET)
2080#define T_step_le_sz(s, a, e) T_flags_le_ulong(a, e, T_CHECK_STEP(s))
2081#define T_step_assert_le_sz(s, a, e) \
2082 T_flags_le_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
2084#define T_lt_sz(a, e) T_flags_lt_ulong(a, e, 0)
2085#define T_assert_lt_sz(a, e) T_flags_lt_ulong(a, e, T_CHECK_STOP)
2086#define T_quiet_lt_sz(a, e) T_flags_lt_ulong(a, e, T_CHECK_QUIET)
2087#define T_step_lt_sz(s, a, e) T_flags_lt_ulong(a, e, T_CHECK_STEP(s))
2088#define T_step_assert_lt_sz(s, a, e) \
2089 T_flags_lt_ulong(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
2103const char *T_strerror(
int);
2105#define T_eno(a, e) T_flags_eno(a, e, 0)
2106#define T_assert_eno(a, e) T_flags_eno(a, e, T_CHECK_STOP)
2107#define T_quiet_eno(a, e) T_flags_eno(a, e, T_CHECK_QUIET)
2108#define T_step_eno(s, a, e) T_flags_eno(a, e, T_CHECK_STEP(s))
2109#define T_step_assert_eno(s, a, e) \
2110 T_flags_eno(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
2112#define T_eno_success(a) T_flags_eno_success(a, 0)
2113#define T_assert_eno_success(a) T_flags_eno_success(a, T_CHECK_STOP)
2114#define T_quiet_eno_success(a) T_flags_eno_success(a, T_CHECK_QUIET)
2115#define T_step_eno_success(s, a) T_flags_eno_success(a, T_CHECK_STEP(s))
2116#define T_step_assert_eno_success(s, a) \
2117 T_flags_eno_success(a, T_CHECK_STEP(s) | T_CHECK_STOP)
2119#define T_psx_error(a, eno) T_flags_psx_error(a, eno, 0)
2120#define T_assert_psx_error(a, eno) T_flags_psx_error(a, eno, T_CHECK_STOP)
2121#define T_quiet_psx_error(a, eno) T_flags_psx_error(a, eno, T_CHECK_QUIET)
2122#define T_step_psx_error(s, a, eno) T_flags_psx_error(a, eno, T_CHECK_STEP(s))
2123#define T_step_assert_psx_error(s, a, eno) \
2124 T_flags_psx_error(a, eno, T_CHECK_STEP(s) | T_CHECK_STOP)
2126#define T_psx_success(a) T_flags_psx_success(a, 0)
2127#define T_assert_psx_success(a) T_flags_psx_success(a, T_CHECK_STOP)
2128#define T_quiet_psx_success(a) T_flags_psx_success(a, T_CHECK_QUIET)
2129#define T_step_psx_success(s, a) T_flags_psx_success(a, T_CHECK_STEP(s))
2130#define T_step_assert_psx_success(s, a) \
2131 T_flags_psx_success(a, T_CHECK_STEP(s) | T_CHECK_STOP)
2138#define T_flags_rsc(a, e, flags) \
2140 static const T_check_context T_check_instance = { \
2141 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
2142 T_check_rsc(&T_check_instance, a, e); \
2147#define T_flags_rsc_success(a, flags) \
2149 static const T_check_context T_check_instance = { \
2150 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
2151 T_check_rsc_success(&T_check_instance, a); \
2164#define T_rsc(a, e) T_flags_rsc(a, e, 0)
2165#define T_assert_rsc(a, e) T_flags_rsc(a, e, T_CHECK_STOP)
2166#define T_quiet_rsc(a, e) T_flags_rsc(a, e, T_CHECK_QUIET)
2167#define T_step_rsc(s, a, e) T_flags_rsc(a, e, T_CHECK_STEP(s))
2168#define T_step_assert_rsc(s, a, e) \
2169 T_flags_rsc(a, e, T_CHECK_STEP(s) | T_CHECK_STOP)
2171#define T_rsc_success(a) T_flags_rsc_success(a, 0)
2172#define T_assert_rsc_success(a) T_flags_rsc_success(a, T_CHECK_STOP)
2173#define T_quiet_rsc_success(a) T_flags_rsc_success(a, T_CHECK_QUIET)
2174#define T_step_rsc_success(s, a) T_flags_rsc_success(a, T_CHECK_STEP(s))
2175#define T_step_assert_rsc_success(s, a) \
2176 T_flags_rsc_success(a, T_CHECK_STEP(s) | T_CHECK_STOP)
2181void T_plan(
unsigned int);
2187void T_pop_plan(
void);
2191#define T_flags_step(a, flags) \
2193 static const T_check_context T_check_instance = { \
2194 T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
2195 T_check_step(&T_check_instance, a); \
2198#define T_step(e) T_flags_step(e, 0)
2199#define T_step_assert(e) T_flags_step(e, T_CHECK_STOP)
2212typedef CPU_Counter_ticks T_ticks;
2214typedef unsigned long T_ticks;
2217typedef uint64_t T_time;
2220typedef char T_time_string[24];
2222const char *T_time_to_string_ns(T_time, T_time_string);
2224const char *T_time_to_string_us(T_time, T_time_string);
2226const char *T_time_to_string_ms(T_time, T_time_string);
2228const char *T_time_to_string_s(T_time, T_time_string);
2230const char *T_ticks_to_string_ns(T_ticks, T_time_string);
2232const char *T_ticks_to_string_us(T_ticks, T_time_string);
2234const char *T_ticks_to_string_ms(T_ticks, T_time_string);
2236const char *T_ticks_to_string_s(T_ticks, T_time_string);
2238T_time T_ticks_to_time(T_ticks);
2240T_ticks T_time_to_ticks(T_time);
2242T_time T_seconds_and_nanoseconds_to_time(uint32_t, uint32_t);
2244void T_time_to_seconds_and_nanoseconds(T_time, uint32_t *, uint32_t *);
2249static inline T_ticks
2255T_ticks T_tick(
void);
2258T_time T_now_clock(
void);
2260T_time T_now_dummy(
void);
2262T_time T_now_tick(
void);
2264T_time T_case_begin_time(
void);
2268void *T_malloc(
size_t);
2270void *T_calloc(
size_t,
size_t);
2272void *T_zalloc(
size_t,
void (*)(
void *));
2276void T_register(
void);
2279 T_EVENT_RUN_INITIALIZE_EARLY,
2280 T_EVENT_RUN_INITIALIZE_LATE,
2286 T_EVENT_RUN_FINALIZE_EARLY,
2287 T_EVENT_RUN_FINALIZE_LATE
2290typedef void (*T_action)(T_event,
const char *);
2292typedef void (*T_putchar)(int,
void *);
2300 T_verbosity verbosity;
2301 T_time (*now)(void);
2302 void *(*allocate)(size_t);
2303 void (*deallocate)(
void *);
2304 size_t action_count;
2305 const T_action *actions;
2308void T_putchar_default(
int,
void *);
2312void T_make_runner(
void);
2314bool T_is_runner(
void);
2316void T_run_initialize(
const T_config *);
2318void T_run_all(
void);
2320void T_run_by_name(
const char *);
2322void *T_case_begin(
const char *,
const T_fixture *);
2324void T_case_end(
void);
2326bool T_run_finalize(
void);
2328void T_set_putchar(T_putchar,
void *, T_putchar *,
void **);
2330void *T_fixture_context(
void);
2332void T_set_fixture_context(
void *);
2338void T_pop_fixture(
void);
2340T_NO_RETURN
void T_stop(
void);
2342#define T_unreachable() \
2343 do { T_true(false, "Unreachable"); T_stop(); } while (0)
2365 const char *
const *
const *desc,
2368 const size_t *second_indices
2371size_t T_str_copy(
char *,
const char *,
size_t);
2374#define T_TEST_CASE_FIXTURE(name, fixture) \
2375void T_case_body_##name(void); \
2376T_case_context T_case_instance_##name = { \
2378 T_case_body_##name, \
2382static T_case_context * const T_case_item_##name \
2383__attribute__((__section__(".rtemsroset._T.content.0." #name))) \
2384__attribute__((__used__)) = &T_case_instance_##name; \
2385void T_case_body_##name(void)
2387#define T_TEST_CASE_FIXTURE(name, fixture) \
2388void T_case_body_##name(void); \
2389T_case_context T_case_instance_##name = { \
2391 T_case_body_##name, \
2395__attribute__((__constructor__)) static void \
2396T_case_register_##name(void) \
2398 T_case_register(&T_case_instance_##name); \
2400void T_case_body_##name(void)
2403#define T_TEST_CASE(name) T_TEST_CASE_FIXTURE(name, NULL)
2405void T_busy(uint_fast32_t);
2407uint_fast32_t T_get_one_clock_tick_busy(
void);
2410 T_INTERRUPT_TEST_INITIAL,
2411 T_INTERRUPT_TEST_ACTION,
2412 T_INTERRUPT_TEST_BLOCKED,
2413 T_INTERRUPT_TEST_CONTINUE,
2414 T_INTERRUPT_TEST_DONE,
2415 T_INTERRUPT_TEST_EARLY,
2416 T_INTERRUPT_TEST_INTERRUPT,
2417 T_INTERRUPT_TEST_LATE,
2418 T_INTERRUPT_TEST_TIMEOUT
2419} T_interrupt_test_state;
2422 void (*prepare)(
void *);
2423 void (*action)(
void *);
2424 T_interrupt_test_state (*interrupt)(
void *);
2425 void (*blocked)(
void *);
2426 uint32_t max_iteration_count;
2429T_interrupt_test_state T_interrupt_test_change_state(T_interrupt_test_state,
2430 T_interrupt_test_state);
2432T_interrupt_test_state T_interrupt_test_get_state(
void);
2434void T_interrupt_test_busy_wait_for_interrupt(
void);
2480void T_report_hash_sha256(T_event,
const char *);
2482void T_report_hash_sha256_update(
char c);
2484void T_check_heap(T_event,
const char *);
2487void T_memory_action(T_event,
const char *);
2489void *T_memory_allocate(
size_t);
2491void T_memory_deallocate(
void *);
2493void T_check_task_context(T_event,
const char *);
2495void T_check_file_descriptors(T_event,
const char *);
2497void T_check_rtems_barriers(T_event,
const char *);
2499void T_check_rtems_extensions(T_event,
const char *);
2501void T_check_rtems_message_queues(T_event,
const char *);
2503void T_check_rtems_partitions(T_event,
const char *);
2505void T_check_rtems_periods(T_event,
const char *);
2507void T_check_rtems_regions(T_event,
const char *);
2509void T_check_rtems_semaphores(T_event,
const char *);
2511void T_check_rtems_tasks(T_event,
const char *);
2513void T_check_rtems_timers(T_event,
const char *);
2515void T_check_posix_keys(T_event,
const char *);
2517void T_check_posix_message_queues(T_event,
const char *);
2519void T_check_posix_semaphores(T_event,
const char *);
2521void T_check_posix_shms(T_event,
const char *);
2523void T_check_posix_threads(T_event,
const char *);
2525void T_check_posix_timers(T_event,
const char *);
2528 T_THREAD_TIMER_NO_THREAD,
2529 T_THREAD_TIMER_SCHEDULED,
2530 T_THREAD_TIMER_PENDING,
2531 T_THREAD_TIMER_INACTIVE
2532} T_thread_timer_state;
2534T_thread_timer_state T_get_thread_timer_state(uint32_t);
2578 size_t sample_count;
2584 void (*setup)(
void *);
2585 void (*body)(
void *);
2586 bool (*teardown)(
void *, T_ticks *, uint32_t, uint32_t,
unsigned int);
2590#define T_MEASURE_RUNTIME_ALLOW_CLOCK_ISR 0x1
2592#define T_MEASURE_RUNTIME_REPORT_SAMPLES 0x2
2594#define T_MEASURE_RUNTIME_DISABLE_FULL_CACHE 0x10
2596#define T_MEASURE_RUNTIME_DISABLE_HOT_CACHE 0x20
2598#define T_MEASURE_RUNTIME_DISABLE_DIRTY_CACHE 0x40
2600#define T_MEASURE_RUNTIME_DISABLE_MINOR_LOAD 0x80
2602#define T_MEASURE_RUNTIME_DISABLE_MAX_LOAD 0x100
rtems_status_code
This enumeration provides status codes for directives of the Classic API.
Definition: status.h:85
CPU_Counter_ticks _CPU_Counter_read(void)
Gets the current CPU counter value.
Definition: system-clocks.c:130
This header file provides the status codes of Classic API directives and support functions.
Definition: t-test-rtems-measure.c:55
Definition: b1553brm.c:94
size_t T_get_scope(const char *const *const *desc, char *buf, size_t n, const size_t *second_indices)
Gets the scope for nested fixtures.
Definition: t-test.c:1329