xref: /xnu-12377.61.12/tools/tests/perf_index/fail.h (revision 4d495c6e23c53686cf65f45067f79024cf5dcee8)
1*4d495c6eSApple OSS Distributions #ifndef __FAIL_H_
2*4d495c6eSApple OSS Distributions #define __FAIL_H_
3*4d495c6eSApple OSS Distributions 
4*4d495c6eSApple OSS Distributions #define TOSTRING_HELPER(x) #x
5*4d495c6eSApple OSS Distributions #define TOSTRING(x) TOSTRING_HELPER(x)
6*4d495c6eSApple OSS Distributions 
7*4d495c6eSApple OSS Distributions #define PERFINDEX_FAILURE -1
8*4d495c6eSApple OSS Distributions #define PERFINDEX_SUCCESS 0
9*4d495c6eSApple OSS Distributions 
10*4d495c6eSApple OSS Distributions extern char* error_str;
11*4d495c6eSApple OSS Distributions 
12*4d495c6eSApple OSS Distributions #define FAIL(message) do {\
13*4d495c6eSApple OSS Distributions     error_str = message " at " __FILE__ ": " TOSTRING(__LINE__);\
14*4d495c6eSApple OSS Distributions     return PERFINDEX_FAILURE;\
15*4d495c6eSApple OSS Distributions } while(0)
16*4d495c6eSApple OSS Distributions 
17*4d495c6eSApple OSS Distributions #define VERIFY(condition, fail_message) do {\
18*4d495c6eSApple OSS Distributions     if(!(condition)) FAIL(fail_message);\
19*4d495c6eSApple OSS Distributions } while(0)
20*4d495c6eSApple OSS Distributions 
21*4d495c6eSApple OSS Distributions #endif
22