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