RTEMS 6.3
Loading...
Searching...
No Matches
RTEMS Test Framework Implementation

Implementation details. More...

Topics

 Gcov Support
 This group contains the gocv support.

Files

file  cpukit/libtest/t-test-busy-tick.c
 This source file contains the implementation of T_get_one_clock_tick_busy().
file  cpukit/libtest/t-test-busy.c
 This source file contains the implementation of T_busy().
file  cpukit/libtest/t-test-checks-eno.c
 This source file contains the implementation of T_strerror(), T_check_eno(), and T_check_eno_success().
file  cpukit/libtest/t-test-checks-psx.c
 This source file contains the implementation of T_check_psx_error() and T_check_psx_success().
file  cpukit/libtest/t-test-checks.c
 This source file contains the implementation of various RTEMS Test Framework check functions.
file  cpukit/libtest/t-test-hash-sha256.c
 This source file contains the implementation of T_report_hash_sha256_update() and T_report_hash_sha256().
file  cpukit/libtest/t-test-interrupt.c
 This source file contains the implementation of T_interrupt_test().
file  cpukit/libtest/t-test-rtems-context.c
 This source file contains the implementation of T_check_task_context().
file  cpukit/libtest/t-test-rtems-fds.c
 This source file contains the implementation of T_check_file_descriptors().
file  cpukit/libtest/t-test-rtems-heap.c
 This source file contains the implementation of T_check_heap().
file  cpukit/libtest/t-test-rtems-measure.c
 This source file contains the implementation of T_measure_runtime().
file  cpukit/libtest/t-test-rtems-memory.c
 This source file contains the implementation of T_memory_allocate(), T_memory_deallocate(), and T_memory_action().
file  cpukit/libtest/t-test-rtems-objs.c
 This source file contains the implementation of the RTEMS objects test support.
file  cpukit/libtest/t-test-rtems-posix-keys.c
 This source file contains the implementation of T_check_posix_keys().
file  cpukit/libtest/t-test-rtems.c
 This source file contains the implementation of T_putchar_default(), T_check_rsc(), and T_check_rsc_success().
file  cpukit/libtest/t-test-scheduler.c
 This source file contains the implementation of the scheduler test support API.
file  cpukit/libtest/t-test-thread-switch.c
 This source file contains the implementation of the thread switch recorder.
file  cpukit/libtest/t-test-time.c
 This source file contains the implementation of the time and ticks test support.
file  cpukit/libtest/t-test.c
 This source file contains the core implementation of RTEMS Test Framework.
file  cpukit/libtest/testbeginend.c
 This source file contains the implementation of rtems_test_begin() and rtems_test_end().
file  cpukit/libtest/testexit.c
 This source file contains the implementation of rtems_test_exit().
file  cpukit/libtest/testgcovbspreset.c
 This source file contains the implementation of a wrapper for bsp_reset() which dumps the gcov information using rtems_test_gcov_dump_info() before the real bsp_reset() is called.
file  cpukit/libtest/testgcovdumpinfo.c
 This source file contains the implementation of rtems_test_gcov_dump_info().
file  cpukit/libtest/testprinter.c
 This source file contains the definition of rtems_test_printer and the implementation of rtems_test_printf().

Data Structures

struct  T_case_context
struct  T_check_context
struct  T_check_context_msg

Macros

#define T_NO_RETURN   _Noreturn
#define T_CHECK_STOP   1U
#define T_CHECK_QUIET   2U
#define T_CHECK_FMT   4U
#define T_CHECK_STEP_FLAG   8U
#define T_CHECK_STEP_TO_FLAGS(step)
#define T_CHECK_STEP_FROM_FLAGS(flags)
#define T_CHECK_STEP(step)
#define T_VA_ARGS_FIRST(...)
#define T_VA_ARGS_FIRST_SELECT(first, ...)
#define T_VA_ARGS_MORE(...)
#define T_VA_ARGS_XEXPAND(kind, ...)
#define T_VA_ARGS_EXPAND(kind, ...)
#define T_VA_ARGS_EXPAND_0U(first)
#define T_VA_ARGS_EXPAND_4U(first, ...)
#define T_VA_ARGS_KIND(...)
#define T_VA_ARGS_SELECT(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, ...)
#define T_flags_true(flags, ...)
#define T_flags_eq(flags, a, ...)
#define T_flags_ne(flags, a, ...)
#define T_flags_eq_ptr(a, e, flags, sa, se)
#define T_flags_ne_ptr(a, e, flags, sa, se)
#define T_flags_null(a, flags, sa)
#define T_flags_not_null(a, flags, sa)
#define T_flags_eq_mem(a, e, n, flags, sa, se, sn)
#define T_flags_ne_mem(a, e, n, flags, sa, se, sn)
#define T_flags_eq_str(a, e, flags)
#define T_flags_ne_str(a, e, flags)
#define T_flags_eq_nstr(a, e, n, flags)
#define T_flags_ne_nstr(a, e, n, flags)
#define T_flags_eq_char(a, e, flags)
#define T_flags_ne_char(a, e, flags)
#define T_flags_eq_int(a, e, flags)
#define T_flags_ne_int(a, e, flags)
#define T_flags_ge_int(a, e, flags)
#define T_flags_gt_int(a, e, flags)
#define T_flags_le_int(a, e, flags)
#define T_flags_lt_int(a, e, flags)
#define T_flags_eq_uint(a, e, flags)
#define T_flags_ne_uint(a, e, flags)
#define T_flags_ge_uint(a, e, flags)
#define T_flags_gt_uint(a, e, flags)
#define T_flags_le_uint(a, e, flags)
#define T_flags_lt_uint(a, e, flags)
#define T_flags_eq_long(a, e, flags)
#define T_flags_ne_long(a, e, flags)
#define T_flags_ge_long(a, e, flags)
#define T_flags_gt_long(a, e, flags)
#define T_flags_le_long(a, e, flags)
#define T_flags_lt_long(a, e, flags)
#define T_flags_eq_ulong(a, e, flags)
#define T_flags_ne_ulong(a, e, flags)
#define T_flags_ge_ulong(a, e, flags)
#define T_flags_gt_ulong(a, e, flags)
#define T_flags_le_ulong(a, e, flags)
#define T_flags_lt_ulong(a, e, flags)
#define T_flags_eq_ll(a, e, flags)
#define T_flags_ne_ll(a, e, flags)
#define T_flags_ge_ll(a, e, flags)
#define T_flags_gt_ll(a, e, flags)
#define T_flags_le_ll(a, e, flags)
#define T_flags_lt_ll(a, e, flags)
#define T_flags_eq_ull(a, e, flags)
#define T_flags_ne_ull(a, e, flags)
#define T_flags_ge_ull(a, e, flags)
#define T_flags_gt_ull(a, e, flags)
#define T_flags_le_ull(a, e, flags)
#define T_flags_lt_ull(a, e, flags)
#define T_flags_eno(a, e, flags)
#define T_flags_eno_success(a, flags)
#define T_flags_psx_error(a, eno, flags)
#define T_flags_psx_success(a, flags)

Typedefs

typedef struct T_case_context T_case_context

Functions

void T_case_register (T_case_context *)
void T_check (const T_check_context *, bool,...)
void T_check_eq_ptr (const T_check_context_msg *, uintptr_t, uintptr_t)
void T_check_ne_ptr (const T_check_context_msg *, uintptr_t, uintptr_t)
void T_check_null (const T_check_context_msg *, uintptr_t)
void T_check_not_null (const T_check_context_msg *, uintptr_t)
void T_check_eq_mem (const T_check_context_msg *, const void *, const void *, size_t)
void T_check_ne_mem (const T_check_context_msg *, const void *, const void *, size_t)
void T_check_eq_str (const T_check_context *, const char *, const char *)
void T_check_ne_str (const T_check_context *, const char *, const char *)
void T_check_eq_nstr (const T_check_context *, const char *, const char *, size_t)
void T_check_ne_nstr (const T_check_context *, const char *, const char *, size_t)
void T_check_eq_char (const T_check_context *, char, char)
void T_check_ne_char (const T_check_context *, char, char)
void T_check_eq_int (const T_check_context *, int, int)
void T_check_ne_int (const T_check_context *, int, int)
void T_check_ge_int (const T_check_context *, int, int)
void T_check_gt_int (const T_check_context *, int, int)
void T_check_le_int (const T_check_context *, int, int)
void T_check_lt_int (const T_check_context *, int, int)
void T_check_eq_uint (const T_check_context *, unsigned int, unsigned int)
void T_check_ne_uint (const T_check_context *, unsigned int, unsigned int)
void T_check_ge_uint (const T_check_context *, unsigned int, unsigned int)
void T_check_gt_uint (const T_check_context *, unsigned int, unsigned int)
void T_check_le_uint (const T_check_context *, unsigned int, unsigned int)
void T_check_lt_uint (const T_check_context *, unsigned int, unsigned int)
void T_check_eq_long (const T_check_context *, long, long)
void T_check_ne_long (const T_check_context *, long, long)
void T_check_ge_long (const T_check_context *, long, long)
void T_check_gt_long (const T_check_context *, long, long)
void T_check_le_long (const T_check_context *, long, long)
void T_check_lt_long (const T_check_context *, long, long)
void T_check_eq_ulong (const T_check_context *, unsigned long, unsigned long)
void T_check_ne_ulong (const T_check_context *, unsigned long, unsigned long)
void T_check_ge_ulong (const T_check_context *, unsigned long, unsigned long)
void T_check_gt_ulong (const T_check_context *, unsigned long, unsigned long)
void T_check_le_ulong (const T_check_context *, unsigned long, unsigned long)
void T_check_lt_ulong (const T_check_context *, unsigned long, unsigned long)
void T_check_eq_ll (const T_check_context *, long long, long long)
void T_check_ne_ll (const T_check_context *, long long, long long)
void T_check_ge_ll (const T_check_context *, long long, long long)
void T_check_gt_ll (const T_check_context *, long long, long long)
void T_check_le_ll (const T_check_context *, long long, long long)
void T_check_lt_ll (const T_check_context *, long long, long long)
void T_check_eq_ull (const T_check_context *, unsigned long long, unsigned long long)
void T_check_ne_ull (const T_check_context *, unsigned long long, unsigned long long)
void T_check_ge_ull (const T_check_context *, unsigned long long, unsigned long long)
void T_check_gt_ull (const T_check_context *, unsigned long long, unsigned long long)
void T_check_le_ull (const T_check_context *, unsigned long long, unsigned long long)
void T_check_lt_ull (const T_check_context *, unsigned long long, unsigned long long)
void T_check_eno (const T_check_context *, int, int)
void T_check_eno_success (const T_check_context *, int)
void T_check_psx_error (const T_check_context *, int, int)
void T_check_psx_success (const T_check_context *, int)
Objects_Maximum T_objects_count (Objects_APIs api, uint16_t cls)
void T_objects_check (Objects_APIs api, uint16_t cls, Objects_Maximum *expected, const char *name)

Variables

const T_check_context T_special

Detailed Description

Implementation details.

Macro Definition Documentation

◆ T_CHECK_STEP

#define T_CHECK_STEP ( step)
Value:
(T_CHECK_STEP_TO_FLAGS(step) | T_CHECK_STEP_FLAG)

◆ T_CHECK_STEP_FROM_FLAGS

#define T_CHECK_STEP_FROM_FLAGS ( flags)
Value:
((flags) >> 8)

◆ T_CHECK_STEP_TO_FLAGS

#define T_CHECK_STEP_TO_FLAGS ( step)
Value:
((unsigned int)(step) << 8)

◆ T_flags_eno

#define T_flags_eno ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_eno(&T_check_instance, a, e); \
}
Definition test.h:152
unsigned e
Definition tlb.h:13

◆ T_flags_eno_success

#define T_flags_eno_success ( a,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_eno_success(&T_check_instance, a); \
}

◆ T_flags_eq

#define T_flags_eq ( flags,
a,
... )
Value:
T_flags_true(flags, \
(a) == (T_VA_ARGS_FIRST(__VA_ARGS__)) T_VA_ARGS_MORE(__VA_ARGS__))

◆ T_flags_eq_char

#define T_flags_eq_char ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_eq_char(&T_check_instance, a, e); \
}

◆ T_flags_eq_int

#define T_flags_eq_int ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_eq_int(&T_check_instance, a, e); \
}

◆ T_flags_eq_ll

#define T_flags_eq_ll ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_eq_ll(&T_check_instance, a, e); \
}

◆ T_flags_eq_long

#define T_flags_eq_long ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_eq_long(&T_check_instance, a, e); \
}

◆ T_flags_eq_mem

#define T_flags_eq_mem ( a,
e,
n,
flags,
sa,
se,
sn )
Value:
{ \
static const T_check_context_msg T_check_instance = { \
{ T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }, \
"memcmp(" sa ", " se ", " sn ") == 0" }; \
T_check_eq_mem(&T_check_instance, a, e, n); \
}
Definition test.h:158

◆ T_flags_eq_nstr

#define T_flags_eq_nstr ( a,
e,
n,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_eq_nstr(&T_check_instance, a, e, n); \
}

◆ T_flags_eq_ptr

#define T_flags_eq_ptr ( a,
e,
flags,
sa,
se )
Value:
{ \
static const T_check_context_msg T_check_instance = { \
{ T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }, \
sa " == " se }; \
T_check_eq_ptr(&T_check_instance, (uintptr_t)a, (uintptr_t)e); \
}

◆ T_flags_eq_str

#define T_flags_eq_str ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_eq_str(&T_check_instance, a, e); \
}

◆ T_flags_eq_uint

#define T_flags_eq_uint ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_eq_uint(&T_check_instance, a, e); \
}

◆ T_flags_eq_ull

#define T_flags_eq_ull ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_eq_ull(&T_check_instance, a, e); \
}

◆ T_flags_eq_ulong

#define T_flags_eq_ulong ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_eq_ulong(&T_check_instance, a, e); \
}

◆ T_flags_ge_int

#define T_flags_ge_int ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_ge_int(&T_check_instance, a, e); \
}

◆ T_flags_ge_ll

#define T_flags_ge_ll ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_ge_ll(&T_check_instance, a, e); \
}

◆ T_flags_ge_long

#define T_flags_ge_long ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_ge_long(&T_check_instance, a, e); \
}

◆ T_flags_ge_uint

#define T_flags_ge_uint ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_ge_uint(&T_check_instance, a, e); \
}

◆ T_flags_ge_ull

#define T_flags_ge_ull ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_ge_ull(&T_check_instance, a, e); \
}

◆ T_flags_ge_ulong

#define T_flags_ge_ulong ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_ge_ulong(&T_check_instance, a, e); \
}

◆ T_flags_gt_int

#define T_flags_gt_int ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_gt_int(&T_check_instance, a, e); \
}

◆ T_flags_gt_ll

#define T_flags_gt_ll ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_gt_ll(&T_check_instance, a, e); \
}

◆ T_flags_gt_long

#define T_flags_gt_long ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_gt_long(&T_check_instance, a, e); \
}

◆ T_flags_gt_uint

#define T_flags_gt_uint ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_gt_uint(&T_check_instance, a, e); \
}

◆ T_flags_gt_ull

#define T_flags_gt_ull ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_gt_ull(&T_check_instance, a, e); \
}

◆ T_flags_gt_ulong

#define T_flags_gt_ulong ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_gt_ulong(&T_check_instance, a, e); \
}

◆ T_flags_le_int

#define T_flags_le_int ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_le_int(&T_check_instance, a, e); \
}

◆ T_flags_le_ll

#define T_flags_le_ll ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_le_ll(&T_check_instance, a, e); \
}

◆ T_flags_le_long

#define T_flags_le_long ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_le_long(&T_check_instance, a, e); \
}

◆ T_flags_le_uint

#define T_flags_le_uint ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_le_uint(&T_check_instance, a, e); \
}

◆ T_flags_le_ull

#define T_flags_le_ull ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_le_ull(&T_check_instance, a, e); \
}

◆ T_flags_le_ulong

#define T_flags_le_ulong ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_le_ulong(&T_check_instance, a, e); \
}

◆ T_flags_lt_int

#define T_flags_lt_int ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_lt_int(&T_check_instance, a, e); \
}

◆ T_flags_lt_ll

#define T_flags_lt_ll ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_lt_ll(&T_check_instance, a, e); \
}

◆ T_flags_lt_long

#define T_flags_lt_long ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_lt_long(&T_check_instance, a, e); \
}

◆ T_flags_lt_uint

#define T_flags_lt_uint ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_lt_uint(&T_check_instance, a, e); \
}

◆ T_flags_lt_ull

#define T_flags_lt_ull ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_lt_ull(&T_check_instance, a, e); \
}

◆ T_flags_lt_ulong

#define T_flags_lt_ulong ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_lt_ulong(&T_check_instance, a, e); \
}

◆ T_flags_ne

#define T_flags_ne ( flags,
a,
... )
Value:
T_flags_true(flags, \
(a) != (T_VA_ARGS_FIRST(__VA_ARGS__)) T_VA_ARGS_MORE(__VA_ARGS__))

◆ T_flags_ne_char

#define T_flags_ne_char ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_ne_char(&T_check_instance, a, e); \
}

◆ T_flags_ne_int

#define T_flags_ne_int ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_ne_int(&T_check_instance, a, e); \
}

◆ T_flags_ne_ll

#define T_flags_ne_ll ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_ne_ll(&T_check_instance, a, e); \
}

◆ T_flags_ne_long

#define T_flags_ne_long ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_ne_long(&T_check_instance, a, e); \
}

◆ T_flags_ne_mem

#define T_flags_ne_mem ( a,
e,
n,
flags,
sa,
se,
sn )
Value:
{ \
static const T_check_context_msg T_check_instance = { \
{ T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }, \
"memcmp(" sa ", " se ", " sn ") != 0" }; \
T_check_ne_mem(&T_check_instance, a, e, n); \
}

◆ T_flags_ne_nstr

#define T_flags_ne_nstr ( a,
e,
n,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_ne_nstr(&T_check_instance, a, e, n); \
}

◆ T_flags_ne_ptr

#define T_flags_ne_ptr ( a,
e,
flags,
sa,
se )
Value:
{ \
static const T_check_context_msg T_check_instance = { \
{ T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }, \
sa " != " se }; \
T_check_ne_ptr(&T_check_instance, (uintptr_t)a, (uintptr_t)e); \
}

◆ T_flags_ne_str

#define T_flags_ne_str ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_ne_str(&T_check_instance, a, e); \
}

◆ T_flags_ne_uint

#define T_flags_ne_uint ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_ne_uint(&T_check_instance, a, e); \
}

◆ T_flags_ne_ull

#define T_flags_ne_ull ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_ne_ull(&T_check_instance, a, e); \
}

◆ T_flags_ne_ulong

#define T_flags_ne_ulong ( a,
e,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_ne_ulong(&T_check_instance, a, e); \
}

◆ T_flags_not_null

#define T_flags_not_null ( a,
flags,
sa )
Value:
{ \
static const T_check_context_msg T_check_instance = { \
{ T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }, sa }; \
T_check_not_null(&T_check_instance, (uintptr_t)a); \
}

◆ T_flags_null

#define T_flags_null ( a,
flags,
sa )
Value:
{ \
static const T_check_context_msg T_check_instance = { \
{ T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }, sa }; \
T_check_null(&T_check_instance, (uintptr_t)a); \
}

◆ T_flags_psx_error

#define T_flags_psx_error ( a,
eno,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_psx_error(&T_check_instance, a, eno); \
}

◆ T_flags_psx_success

#define T_flags_psx_success ( a,
flags )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, (flags) | T_CHECK_FMT }; \
T_check_psx_success(&T_check_instance, a); \
}

◆ T_flags_true

#define T_flags_true ( flags,
... )
Value:
{ \
static const T_check_context T_check_instance = { \
T_FILE_NAME, __LINE__, \
(flags) | T_VA_ARGS_KIND(__VA_ARGS__) }; \
T_check(&T_check_instance, \
T_VA_ARGS_FIRST(__VA_ARGS__) T_VA_ARGS_MORE(__VA_ARGS__)); \
}

◆ T_VA_ARGS_EXPAND

#define T_VA_ARGS_EXPAND ( kind,
... )
Value:
T_VA_ARGS_EXPAND_##kind(__VA_ARGS__)

◆ T_VA_ARGS_EXPAND_4U

#define T_VA_ARGS_EXPAND_4U ( first,
... )
Value:
, __VA_ARGS__

◆ T_VA_ARGS_FIRST

#define T_VA_ARGS_FIRST ( ...)
Value:
T_VA_ARGS_FIRST_SELECT(__VA_ARGS__, throw_away)

◆ T_VA_ARGS_FIRST_SELECT

#define T_VA_ARGS_FIRST_SELECT ( first,
... )
Value:
first

◆ T_VA_ARGS_KIND

#define T_VA_ARGS_KIND ( ...)
Value:
T_VA_ARGS_SELECT(__VA_ARGS__, \
4U, 4U, 4U, 4U, 4U, 4U, 4U, 4U, 0U, throw_away)

◆ T_VA_ARGS_MORE

#define T_VA_ARGS_MORE ( ...)
Value:
T_VA_ARGS_XEXPAND(T_VA_ARGS_KIND(__VA_ARGS__), __VA_ARGS__)

◆ T_VA_ARGS_SELECT

#define T_VA_ARGS_SELECT ( a1,
a2,
a3,
a4,
a5,
a6,
a7,
a8,
a9,
a10,
... )
Value:
a10

◆ T_VA_ARGS_XEXPAND

#define T_VA_ARGS_XEXPAND ( kind,
... )
Value:
T_VA_ARGS_EXPAND(kind, __VA_ARGS__)