1 #define TEST(NUM,TMODE,VAL) \
2 extern v##NUM##TMODE g_v##NUM##TMODE; \
3 extern TMODE g_##TMODE; \
5 extern void pass_v##NUM##TMODE (v##NUM##TMODE); \
6 extern v##NUM##TMODE return_v##NUM##TMODE (void); \
9 checkp_##NUM##TMODE (TMODE *p) \
12 for (i = 0; i < NUM; i++) \
14 if (p[i] != g_##TMODE + i) \
20 checkg_##NUM##TMODE (void) \
25 u.v = g_v##NUM##TMODE; \
26 checkp_##NUM##TMODE (p); \
30 init_##NUM##TMODE (void) \
35 for (i = 0; i < NUM; i++) \
37 g_v##NUM##TMODE = u.v; \
41 test_v##NUM##TMODE (void) \
47 DEBUG_FPUTS ("v" #NUM #TMODE); \
49 DEBUG_FPUTS (" global variable:"); \
50 init_##NUM##TMODE (); \
51 checkg_##NUM##TMODE (); \
53 DEBUG_FPUTS (" pass global variable:"); \
54 pass_v##NUM##TMODE (g_v##NUM##TMODE); \
56 DEBUG_FPUTS (" pass local variable:"); \
57 v = g_v##NUM##TMODE; \
58 pass_v##NUM##TMODE (v); \
60 DEBUG_FPUTS (" function return:"); \
61 u.v = return_v##NUM##TMODE (); \
62 checkp_##NUM##TMODE (p); \