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