MAV'RIC
test_utils.h
1 
19 #ifndef TEST_UTILS_H_
20 #define TEST_UTILS_H_
21 
22 #include "print_util.h"
23 #include "time_keeper.h"
24 #include "delay.h"
25 
26 #define xstr(a) str(a)
27 #define str(a) #a
28 
29 #define TEST_ASSERT(TEST_NAME, CONDITION, RESULT_OUT) {\
30  if (CONDITION) {\
31  print_util_dbg_print(str(TEST_NAME));\
32  print_util_dbg_print(": passed\n");\
33  } else {\
34  print_util_dbg_print(str(TEST_NAME));\
35  print_util_dbg_print(": FAILED!\n");\
36  RESULT_OUT=false;\
37  }\
38 }
39 
40 #define PROFILE(TIME_RESULT, TESTFUNC) {\
41  print_util_get_debug_stream()->flush(print_util_get_debug_stream()->data);\
42  delay_ms(10);\
43  uint32_t __profile_time_start=time_keeper_get_time_ticks();\
44  TESTFUNC;\
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);\
51  delay_ms(10);\
52 }
53 
54 
55 #define PROFILE_10X(TIME_RESULT, TESTFUNC) {\
56  print_util_get_debug_stream()->flush(print_util_get_debug_stream()->data);\
57  delay_ms(10);\
58  uint32_t __profile_time_start=time_keeper_get_time_ticks();\
59  TESTFUNC;\
60  TESTFUNC;\
61  TESTFUNC;\
62  TESTFUNC;\
63  TESTFUNC;\
64  TESTFUNC;\
65  TESTFUNC;\
66  TESTFUNC;\
67  TESTFUNC;\
68  TESTFUNC;\
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);\
75  delay_ms(10);\
76 }
77 
78 #define PROFILE_100X(TIME_RESULT, TESTFUNC) {\
79  print_util_get_debug_stream()->flush(print_util_get_debug_stream()->data);\
80  delay_ms(10);\
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);\
98  delay_ms(10);\
99 }
100 
101 
102 
103 #endif /* TEST_UTILS_H_ */