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. " 
   73#define TC_PASS_STR "PASS" 
   76#define TC_FAIL_STR "FAIL" 
   79#define TC_SKIP_STR "SKIP" 
   82#define TC_FLAKY_STR "FLAKY" 
  117#define TC_ERROR(fmt, ...)                               \ 
  119                PRINT_DATA(FMT_ERROR, "FAIL", __func__, __LINE__); \ 
  120                PRINT_DATA(fmt, ##__VA_ARGS__);                  \ 
 
  133#ifdef CONFIG_ZTEST_NEW_API 
  134#if defined(CONFIG_ZTEST_VERBOSE_OUTPUT) 
  135#define TC_PRINT(fmt, ...) PRINT_DATA(fmt, ##__VA_ARGS__) 
  137#define TC_PRINT(fmt, ...) print_nothing(fmt, ##__VA_ARGS__) 
  140#define TC_PRINT(fmt, ...) PRINT_DATA(fmt, ##__VA_ARGS__) 
  144#ifndef TC_SUMMARY_PRINT 
  145#define TC_SUMMARY_PRINT(fmt, ...) PRINT_DATA(fmt, ##__VA_ARGS__) 
  148#ifndef TC_START_PRINT 
  149#ifdef CONFIG_ZTEST_NEW_API 
  150#if defined(CONFIG_ZTEST_VERBOSE_OUTPUT) 
  151#define TC_START_PRINT(name) PRINT_DATA("START - %s\n", name); 
  153#define TC_START_PRINT(name) print_nothing(name) 
  156#define TC_START_PRINT(name) PRINT_DATA("START - %s\n", name); 
  161#define TC_START(name)                                                  \ 
  163                TC_START_PRINT(name);                   \ 
 
  168#define TC_END(result, fmt, ...) PRINT_DATA(fmt, ##__VA_ARGS__) 
  172#ifdef CONFIG_ZTEST_NEW_API 
  173#if defined(CONFIG_ZTEST_VERBOSE_OUTPUT) 
  174#define TC_END_PRINT(result, fmt, ...) PRINT_DATA(fmt, ##__VA_ARGS__); PRINT_LINE 
  176#define TC_END_PRINT(result, fmt, ...) print_nothing(fmt) 
  179#define TC_END_PRINT(result, fmt, ...) PRINT_DATA(fmt, ##__VA_ARGS__); PRINT_LINE 
  184#ifndef Z_TC_END_RESULT 
  185#define Z_TC_END_RESULT(result, func)                                           \ 
  187                TC_END_PRINT(result, " %s - %s in %u.%03u seconds\n",           \ 
  188                        TC_RESULT_TO_STR(result), func, tc_spend_time/1000,     \ 
  189                        tc_spend_time%1000);                                    \ 
  194#define TC_END_RESULT(result)                           \ 
  195        Z_TC_END_RESULT((result), __func__) 
 
  198#ifndef TC_END_RESULT_CUSTOM 
  199#define TC_END_RESULT_CUSTOM(result, func)                           \ 
  200        Z_TC_END_RESULT((result), func) 
 
  203#ifndef TC_SUITE_PRINT 
  204#define TC_SUITE_PRINT(fmt, ...) PRINT_DATA(fmt, ##__VA_ARGS__) 
  207#ifndef TC_SUITE_START 
  208#define TC_SUITE_START(name)                                    \ 
  210                TC_SUITE_PRINT("Running TESTSUITE %s\n", name); \ 
 
  216#define TC_SUITE_END(name, result)                              \ 
  218                if (result != TC_FAIL) {                                \ 
  219                        TC_SUITE_PRINT("TESTSUITE %s succeeded\n", name);       \ 
  221                        TC_SUITE_PRINT("TESTSUITE %s failed.\n", name); \ 
 
  226#if defined(CONFIG_ARCH_POSIX) 
  228#define TC_END_POST(result) do { \ 
  230        posix_exit(result); \ 
  233#define TC_END_POST(result) 
  237#define TC_END_REPORT(result)                               \ 
  242                       "PROJECT EXECUTION %s\n",               \ 
  243                       (result) == TC_PASS ? "SUCCESSFUL" : "FAILED");  \ 
  244                TC_END_POST(result);                                    \ 
 
  248#if defined(CONFIG_SHELL) 
  249#define TC_CMD_DEFINE(name)                                             \ 
  250        static int cmd_##name(const struct shell *sh, size_t argc,      \ 
  253                TC_START(__func__);                                     \ 
  255                TC_END_RESULT(TC_PASS);                                 \ 
  258#define TC_CMD_ITEM(name)       cmd_##name 
  260#define TC_CMD_DEFINE(name)                             \ 
  261        int cmd_##name(int argc, char *argv[])          \ 
  263                TC_START(__func__);                     \ 
  265                TC_END_RESULT(TC_PASS);                 \ 
 
  268#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:1816
 
#define k_cyc_to_ms_ceil32(t)
Convert hardware cycles to milliseconds.
Definition time_units.h:943
 
__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:124
 
static void get_start_time_cyc(void)
Definition tc_util.h:104
 
#define TC_FLAKY_STR
Definition tc_util.h:82
 
#define TC_SKIP_STR
Definition tc_util.h:79
 
#define TC_PASS_STR
Definition tc_util.h:73
 
static uint32_t tc_spend_time
Definition tc_util.h:102
 
static const char * TC_RESULT_TO_STR(int result)
Definition tc_util.h:85
 
static void get_test_duration_ms(void)
Definition tc_util.h:109
 
#define TC_SKIP
Definition tc_util.h:69
 
#define TC_FLAKY
Definition tc_util.h:70
 
#define TC_FAIL_STR
Definition tc_util.h:76
 
static uint32_t tc_start_time
Definition tc_util.h:101
 
#define TC_PASS
Definition tc_util.h:67