22 #include "print_util.h"
23 #include "time_keeper.h"
26 #define xstr(a) str(a)
29 #define TEST_ASSERT(TEST_NAME, CONDITION, RESULT_OUT) {\
31 print_util_dbg_print(str(TEST_NAME));\
32 print_util_dbg_print(": passed\n");\
34 print_util_dbg_print(str(TEST_NAME));\
35 print_util_dbg_print(": FAILED!\n");\
40 #define PROFILE(TIME_RESULT, TESTFUNC) {\
41 print_util_get_debug_stream()->flush(print_util_get_debug_stream()->data);\
43 uint32_t __profile_time_start=time_keeper_get_time_ticks();\
45 TIME_RESULT=time_keeper_get_time_ticks()-__profile_time_start);\
46 print_util_dbg_print("Profiling: ");\
47 print_util_dbg_print(str(TESTFUNC)"\t");\
48 print_util_dbg_print_num(TIME_RESULT, 10);\
49 print_util_dbg_print(" microseconds\n");\
50 print_util_get_debug_stream()->flush(print_util_get_debug_stream()->data);\
55 #define PROFILE_10X(TIME_RESULT, TESTFUNC) {\
56 print_util_get_debug_stream()->flush(print_util_get_debug_stream()->data);\
58 uint32_t __profile_time_start=time_keeper_get_time_ticks();\
69 TIME_RESULT=time_keeper_get_time_ticks()-__profile_time_start;\
70 print_util_dbg_print("Profiling (10x): ");\
71 print_util_dbg_print(#TESTFUNC "\t");\
72 print_util_dbg_print_num(TIME_RESULT, 10);\
73 print_util_dbg_print(" microseconds\n");\
74 print_util_get_debug_stream()->flush(print_util_get_debug_stream()->data);\
78 #define PROFILE_100X(TIME_RESULT, TESTFUNC) {\
79 print_util_get_debug_stream()->flush(print_util_get_debug_stream()->data);\
81 uint32_t __profile_time_start=time_keeper_get_time_ticks();\
82 TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC;\
83 TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC;\
84 TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC;\
85 TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC;\
86 TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC;\
87 TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC;\
88 TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC;\
89 TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC;\
90 TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC;\
91 TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC; TESTFUNC;\
92 TIME_RESULT=time_keeper_get_time_ticks()-__profile_time_start;\
93 print_util_dbg_print("Profiling (100x): ");\
94 print_util_dbg_print(#TESTFUNC "\t");\
95 print_util_dbg_print_num(TIME_RESULT, 10);\
96 print_util_dbg_print(" microseconds\n");\
97 print_util_get_debug_stream()->flush(print_util_get_debug_stream()->data);\