9#ifndef ZEPHYR_TESTSUITE_INCLUDE_TC_UTIL_H_ 
   10#define ZEPHYR_TESTSUITE_INCLUDE_TC_UTIL_H_ 
   20#if defined CONFIG_ZTEST_TC_UTIL_USER_OVERRIDE 
   21#include <tc_util_user_override.h> 
   25#define PRINT_DATA(fmt, ...) printk(fmt, ##__VA_ARGS__) 
   28#if defined CONFIG_ARCH_POSIX 
   29#include "posix_board_if.h" 
   47#define TC_STR_HELPER(x) #x 
   48#define TC_STR(x) TC_STR_HELPER(x) 
   50#define TC_PRINT_RUNID PRINT_DATA("RunID: " TC_STR(TC_RUNID) "\n")
 
   52#define TC_PRINT_RUNID do {} while (0) 
   58                "============================================================" \
 
   63#define TASK_STACK_SIZE (1024 * 2) 
   65#define FMT_ERROR "%s - %s@%d. " 
   72#define TC_PASS_STR "PASS" 
   75#define TC_FAIL_STR "FAIL" 
   78#define TC_SKIP_STR "SKIP" 
  111#define TC_ERROR(fmt, ...)                               \ 
  113                PRINT_DATA(FMT_ERROR, "FAIL", __func__, __LINE__); \
 
  114                PRINT_DATA(fmt, ##__VA_ARGS__);                  \
 
  127#ifdef CONFIG_ZTEST_NEW_API 
  128#if defined(CONFIG_ZTEST_VERBOSE_OUTPUT) 
  129#define TC_PRINT(fmt, ...) PRINT_DATA(fmt, ##__VA_ARGS__) 
  131#define TC_PRINT(fmt, ...) print_nothing(fmt, ##__VA_ARGS__) 
  134#define TC_PRINT(fmt, ...) PRINT_DATA(fmt, ##__VA_ARGS__) 
  138#ifndef TC_SUMMARY_PRINT 
  139#define TC_SUMMARY_PRINT(fmt, ...) PRINT_DATA(fmt, ##__VA_ARGS__) 
  142#ifndef TC_START_PRINT 
  143#ifdef CONFIG_ZTEST_NEW_API 
  144#if defined(CONFIG_ZTEST_VERBOSE_OUTPUT) 
  145#define TC_START_PRINT(name) PRINT_DATA("START - %s\n", name);
 
  147#define TC_START_PRINT(name) print_nothing(name) 
  150#define TC_START_PRINT(name) PRINT_DATA("START - %s\n", name);
 
  155#define TC_START(name)                                                  \ 
  157                TC_START_PRINT(name);                   \ 
  162#define TC_END(result, fmt, ...) PRINT_DATA(fmt, ##__VA_ARGS__) 
  166#ifdef CONFIG_ZTEST_NEW_API 
  167#if defined(CONFIG_ZTEST_VERBOSE_OUTPUT) 
  168#define TC_END_PRINT(result, fmt, ...) PRINT_DATA(fmt, ##__VA_ARGS__); PRINT_LINE 
  170#define TC_END_PRINT(result, fmt, ...) print_nothing(fmt) 
  173#define TC_END_PRINT(result, fmt, ...) PRINT_DATA(fmt, ##__VA_ARGS__); PRINT_LINE 
  178#ifndef Z_TC_END_RESULT 
  179#define Z_TC_END_RESULT(result, func)                                           \ 
  181                TC_END_PRINT(result, " %s - %s in %u.%03u seconds\n",           \
 
  182                        TC_RESULT_TO_STR(result), func, tc_spend_time/1000,     \
 
  183                        tc_spend_time%1000);                                    \
 
  188#define TC_END_RESULT(result)                           \ 
  189        Z_TC_END_RESULT((result), __func__) 
  192#ifndef TC_END_RESULT_CUSTOM 
  193#define TC_END_RESULT_CUSTOM(result, func)                           \ 
  194        Z_TC_END_RESULT((result), func) 
  197#ifndef TC_SUITE_PRINT 
  198#define TC_SUITE_PRINT(fmt, ...) PRINT_DATA(fmt, ##__VA_ARGS__) 
  201#ifndef TC_SUITE_START 
  202#define TC_SUITE_START(name)                                    \ 
  204                TC_SUITE_PRINT("Running TESTSUITE %s\n", name); \
 
  210#define TC_SUITE_END(name, result)                              \ 
  212                if (result != TC_FAIL) {                                \ 
  213                        TC_SUITE_PRINT("TESTSUITE %s succeeded\n", name);       \
 
  215                        TC_SUITE_PRINT("TESTSUITE %s failed.\n", name); \
 
  220#if defined(CONFIG_ARCH_POSIX) 
  222#define TC_END_POST(result) do { \ 
  224        posix_exit(result); \ 
  227#define TC_END_POST(result) 
  231#define TC_END_REPORT(result)                               \ 
  236                       "PROJECT EXECUTION %s\n",               \
 
  237                       (result) == TC_PASS ? "SUCCESSFUL" : "FAILED");  \
 
  238                TC_END_POST(result);                                    \
 
  242#if defined(CONFIG_SHELL) 
  243#define TC_CMD_DEFINE(name)                                             \ 
  244        static int cmd_##name(const struct shell *sh, size_t argc,      \ 
  247                TC_START(__func__);                                     \ 
  249                TC_END_RESULT(TC_PASS);                                 \ 
  252#define TC_CMD_ITEM(name)       cmd_##name 
  254#define TC_CMD_DEFINE(name)                             \ 
  255        int cmd_##name(int argc, char *argv[])          \ 
  257                TC_START(__func__);                     \ 
  259                TC_END_RESULT(TC_PASS);                 \ 
  262#define TC_CMD_ITEM(name) {STRINGIFY(name), cmd_##name, "none"}
 
static uint32_t k_cycle_get_32(void)
Read the hardware clock.
Definition: kernel.h:1765
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
#define TC_FAIL
Definition: tc_util.h:68
static void print_nothing(const char *fmt,...)
Definition: tc_util.h:118
static void get_start_time_cyc(void)
Definition: tc_util.h:98
#define TC_SKIP_STR
Definition: tc_util.h:78
#define TC_PASS_STR
Definition: tc_util.h:72
static uint32_t tc_spend_time
Definition: tc_util.h:96
static const char * TC_RESULT_TO_STR(int result)
Definition: tc_util.h:81
static void get_test_duration_ms(void)
Definition: tc_util.h:103
#define TC_SKIP
Definition: tc_util.h:69
#define TC_FAIL_STR
Definition: tc_util.h:75
static uint32_t tc_start_time
Definition: tc_util.h:95
#define TC_PASS
Definition: tc_util.h:67
static uint32_t k_cyc_to_ms_ceil32(uint32_t t)
Convert hardware cycles to milliseconds.
Definition: time_units.h:809