xref: /aosp_15_r20/external/jsmn/test/test.h (revision 420d848fb01a502d3186bd0f49f4e0beb321f5cd)
1*420d848fSAndroid Build Coastguard Worker #ifndef __TEST_H__
2*420d848fSAndroid Build Coastguard Worker #define __TEST_H__
3*420d848fSAndroid Build Coastguard Worker 
4*420d848fSAndroid Build Coastguard Worker static int test_passed = 0;
5*420d848fSAndroid Build Coastguard Worker static int test_failed = 0;
6*420d848fSAndroid Build Coastguard Worker 
7*420d848fSAndroid Build Coastguard Worker /* Terminate current test with error */
8*420d848fSAndroid Build Coastguard Worker #define fail() return __LINE__
9*420d848fSAndroid Build Coastguard Worker 
10*420d848fSAndroid Build Coastguard Worker /* Successful end of the test case */
11*420d848fSAndroid Build Coastguard Worker #define done() return 0
12*420d848fSAndroid Build Coastguard Worker 
13*420d848fSAndroid Build Coastguard Worker /* Check single condition */
14*420d848fSAndroid Build Coastguard Worker #define check(cond)                                                            \
15*420d848fSAndroid Build Coastguard Worker   do {                                                                         \
16*420d848fSAndroid Build Coastguard Worker     if (!(cond))                                                               \
17*420d848fSAndroid Build Coastguard Worker       fail();                                                                  \
18*420d848fSAndroid Build Coastguard Worker   } while (0)
19*420d848fSAndroid Build Coastguard Worker 
20*420d848fSAndroid Build Coastguard Worker /* Test runner */
test(int (* func)(void),const char * name)21*420d848fSAndroid Build Coastguard Worker static void test(int (*func)(void), const char *name) {
22*420d848fSAndroid Build Coastguard Worker   int r = func();
23*420d848fSAndroid Build Coastguard Worker   if (r == 0) {
24*420d848fSAndroid Build Coastguard Worker     test_passed++;
25*420d848fSAndroid Build Coastguard Worker   } else {
26*420d848fSAndroid Build Coastguard Worker     test_failed++;
27*420d848fSAndroid Build Coastguard Worker     printf("FAILED: %s (at line %d)\n", name, r);
28*420d848fSAndroid Build Coastguard Worker   }
29*420d848fSAndroid Build Coastguard Worker }
30*420d848fSAndroid Build Coastguard Worker 
31*420d848fSAndroid Build Coastguard Worker #endif /* __TEST_H__ */
32