13#ifndef ZEPHYR_TESTSUITE_ZTEST_TEST_H_ 
   14#define ZEPHYR_TESTSUITE_ZTEST_TEST_H_ 
   21#if defined(CONFIG_USERSPACE) 
   22#define __USERSPACE_FLAGS (K_USER) 
   24#define __USERSPACE_FLAGS (0) 
   57#define __ZTEST_EXPECT(_suite_name, _test_name, expectation)                                       \ 
   58        static const STRUCT_SECTION_ITERABLE(                                                      \ 
   59                ztest_expected_result_entry,                                                       \ 
   60                UTIL_CAT(UTIL_CAT(z_ztest_expected_result_, _suite_name), _test_name)) = {         \ 
   61                        .test_suite_name = STRINGIFY(_suite_name),                                 \ 
   62                        .test_name = STRINGIFY(_test_name),                                        \ 
   63                        .expected_result = expectation,                                            \ 
   79#define ZTEST_EXPECT_FAIL(_suite_name, _test_name)                                                 \ 
   80        __ZTEST_EXPECT(_suite_name, _test_name, ZTEST_EXPECTED_RESULT_FAIL) 
   95#define ZTEST_EXPECT_SKIP(_suite_name, _test_name)                                                 \ 
   96        __ZTEST_EXPECT(_suite_name, _test_name, ZTEST_EXPECTED_RESULT_SKIP) 
  110#define ZTEST_TEST_COUNT (_ztest_unit_test_list_end - _ztest_unit_test_list_start) 
  142typedef void *(*ztest_suite_setup_t)(void);
 
  203#define ZTEST_SUITE_COUNT (_ztest_suite_node_list_end - _ztest_suite_node_list_start) 
  219#define ZTEST_SUITE(SUITE_NAME, PREDICATE, setup_fn, before_fn, after_fn, teardown_fn)             \ 
  220        struct ztest_suite_stats UTIL_CAT(z_ztest_suite_node_stats_, SUITE_NAME);                  \ 
  221        static const STRUCT_SECTION_ITERABLE(ztest_suite_node,                                     \ 
  222                                             UTIL_CAT(z_ztest_test_node_, SUITE_NAME)) = {         \ 
  223                .name = STRINGIFY(SUITE_NAME),                                                     \ 
  224                .setup = (setup_fn),                                                               \ 
  225                .before = (before_fn),                                                             \ 
  226                .after = (after_fn),                                                               \ 
  227                .teardown = (teardown_fn),                                                         \ 
  228                .predicate = PREDICATE,                                                            \ 
  229                .stats = &UTIL_CAT(z_ztest_suite_node_stats_, SUITE_NAME),             \ 
  246int z_impl_ztest_run_test_suites(
const void *
state);
 
  249        return z_impl_ztest_run_test_suites(
state);
 
  254#include <syscalls/ztest_test_new.h> 
  277int z_ztest_run_test_suite(
const char *
name);
 
  290#ifdef CONFIG_USERSPACE 
  291#define ZTEST_DMEM K_APP_DMEM(ztest_mem_partition) 
  292#define ZTEST_BMEM K_APP_BMEM(ztest_mem_partition) 
  293#define ZTEST_SECTION K_APP_DMEM_SECTION(ztest_mem_partition) 
  298#define ZTEST_SECTION .data 
  338#define Z_TEST(suite, fn, t_options, use_fixture)                                                  \ 
  339        struct ztest_unit_test_stats z_ztest_unit_test_stats_##suite##_##fn;                       \ 
  340        static void _##suite##_##fn##_wrapper(void *data);                                         \ 
  341        static void suite##_##fn(                                                                  \ 
  342                COND_CODE_1(use_fixture, (struct suite##_fixture *fixture), (void)));              \ 
  343        static STRUCT_SECTION_ITERABLE(ztest_unit_test, z_ztest_unit_test__##suite##__##fn) = {    \ 
  344                .test_suite_name = STRINGIFY(suite),                                               \ 
  345                .name = STRINGIFY(fn),                                                             \ 
  346                .test = (_##suite##_##fn##_wrapper),                                               \ 
  347                .thread_options = t_options,                                                       \ 
  348                .stats = &z_ztest_unit_test_stats_##suite##_##fn                                   \ 
  350        static void _##suite##_##fn##_wrapper(void *data)                                          \ 
  352                COND_CODE_1(use_fixture, (suite##_##fn((struct suite##_fixture *)data);),          \ 
  353                            (ARG_UNUSED(data); suite##_##fn();))                                   \ 
  355        static inline void suite##_##fn(                                                           \ 
  356                COND_CODE_1(use_fixture, (struct suite##_fixture *fixture), (void))) 
  358#define Z_ZTEST(suite, fn, t_options) Z_TEST(suite, fn, t_options, 0) 
  359#define Z_ZTEST_F(suite, fn, t_options) Z_TEST(suite, fn, t_options, 1) 
  369#define Z_TEST_SKIP_IFDEF(config) COND_CODE_1(config, (ztest_test_skip()), ()) 
  380#define Z_TEST_SKIP_IFNDEF(config) COND_CODE_1(config, (), (ztest_test_skip())) 
  391#define ZTEST(suite, fn) Z_ZTEST(suite, fn, 0) 
  402#define ZTEST_USER(suite, fn) Z_ZTEST(suite, fn, K_USER) 
  413#define ZTEST_F(suite, fn) Z_ZTEST_F(suite, fn, 0) 
  424#define ZTEST_USER_F(suite, fn) Z_ZTEST_F(suite, fn, K_USER) 
  438struct ztest_test_rule {
 
  462#define ZTEST_RULE(name, before_each_fn, after_each_fn)                                            \ 
  463        static STRUCT_SECTION_ITERABLE(ztest_test_rule, z_ztest_test_rule_##name) = {              \ 
  464                .before_each = (before_each_fn),                                                   \ 
  465                .after_each = (after_each_fn),                                                     \ 
  468extern struct ztest_test_rule _ztest_test_rule_list_start[];
 
  469extern struct ztest_test_rule _ztest_test_rule_list_end[];
 
  494#define ztest_run_test_suite(suite) z_ztest_run_test_suite(STRINGIFY(suite)) 
void ztest_test_pass(void)
Pass the currently running test.
 
void ztest_skip_failed_assumption(void)
 
void(* ztest_rule_cb)(const struct ztest_unit_test *test, void *data)
Test rule callback function signature.
Definition: ztest_test_new.h:435
 
void ztest_simple_1cpu_after(void *data)
A 'after' function to use in test suites that just need to stop 1cpu.
 
void ztest_simple_1cpu_before(void *data)
A 'before' function to use in test suites that just need to start 1cpu.
 
void ztest_test_fail(void)
Fail the currently running test.
 
void ztest_test_skip(void)
Skip the current test.
 
state
Definition: parser_state.h:29
 
#define bool
Definition: stdbool.h:13
 
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
 
Memory Partition.
Definition: mem_domain.h:55
 
Structure for architecture specific APIs.
Definition: ztest_test_new.h:500
 
void(* run_all)(const void *state)
Definition: ztest_test_new.h:501
 
bool(* should_suite_run)(const void *state, struct ztest_suite_node *suite)
Definition: ztest_test_new.h:502
 
bool(* should_test_run)(const char *suite, const char *test)
Definition: ztest_test_new.h:503
 
A single expectation entry allowing tests to fail/skip and be considered passing.
Definition: ztest_test_new.h:48
 
const char * test_suite_name
Definition: ztest_test_new.h:49
 
enum ztest_expected_result expected_result
Definition: ztest_test_new.h:51
 
const char * test_name
Definition: ztest_test_new.h:50
 
Definition: ztest_test_deprecated.h:49
 
const ztest_suite_before_t before
Definition: ztest_test_new.h:186
 
const ztest_suite_setup_t setup
Definition: ztest_test_new.h:183
 
struct ztest_suite_stats *const stats
Definition: ztest_test_new.h:198
 
const ztest_suite_after_t after
Definition: ztest_test_new.h:189
 
struct unit_test * suite
Definition: ztest_test_deprecated.h:53
 
const char *const name
Definition: ztest_test_new.h:180
 
const char * name
Definition: ztest_test_deprecated.h:51
 
const ztest_suite_teardown_t teardown
Definition: ztest_test_new.h:192
 
const ztest_suite_predicate_t predicate
Definition: ztest_test_new.h:195
 
Definition: ztest_test_deprecated.h:36
 
uint32_t skip_count
Definition: ztest_test_deprecated.h:40
 
uint32_t fail_count
Definition: ztest_test_deprecated.h:42
 
uint32_t run_count
Definition: ztest_test_deprecated.h:38
 
Definition: ztest_test_new.h:124
 
uint32_t run_count
Definition: ztest_test_new.h:126
 
uint32_t pass_count
Definition: ztest_test_new.h:132
 
uint32_t skip_count
Definition: ztest_test_new.h:128
 
uint32_t duration_worst_ms
Definition: ztest_test_new.h:134
 
uint32_t fail_count
Definition: ztest_test_new.h:130
 
Definition: ztest_test_new.h:98
 
const char * name
Definition: ztest_test_new.h:100
 
struct ztest_unit_test_stats *const stats
Definition: ztest_test_new.h:105
 
void(* test)(void *data)
Definition: ztest_test_new.h:101
 
uint32_t thread_options
Definition: ztest_test_new.h:102
 
const char * test_suite_name
Definition: ztest_test_new.h:99
 
static fdata_t data[2]
Definition: test_fifo_contexts.c:15
 
void *(* ztest_suite_setup_t)(void)
Definition: ztest_test_new.h:142
 
void(* ztest_suite_after_t)(void *fixture)
Definition: ztest_test_new.h:156
 
void ztest_run_all(const void *state)
 
void ztest_verify_all_test_suites_ran(void)
Fails the test if any of the registered tests did not run.
 
struct k_mem_partition ztest_mem_partition
 
void(* ztest_suite_teardown_t)(void *fixture)
Definition: ztest_test_new.h:163
 
int ztest_run_test_suites(const void *state)
 
void(* ztest_suite_before_t)(void *fixture)
Definition: ztest_test_new.h:149
 
bool(* ztest_suite_predicate_t)(const void *global_state)
Definition: ztest_test_new.h:172
 
ztest_expected_result
The expected result of a test.
Definition: ztest_test_new.h:37
 
@ ZTEST_EXPECTED_RESULT_FAIL
Definition: ztest_test_new.h:38
 
@ ZTEST_EXPECTED_RESULT_SKIP
Definition: ztest_test_new.h:39