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