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