PortAudio 2.0
paqa_macros.h
Go to the documentation of this file.
1
2#ifndef PORTAUDIO_QA_PAQA_MACROS_H
3#define PORTAUDIO_QA_PAQA_MACROS_H
4
5extern int paQaNumPassed;
6extern int paQaNumFailed;
7
8/* You must use this macro exactly once in each test program. */
9#define PAQA_INSTANTIATE_GLOBALS\
10 int paQaNumPassed = 0;\
11 int paQaNumFailed = 0;
12
13/*------------------- Macros ------------------------------*/
14/* Print ERROR if it fails. Tally success or failure. Odd */
15/* do-while wrapper seems to be needed for some compilers. */
16#define CHECK_TRUE(_exp, _on_error) \
17 do \
18 { \
19 if (_exp) {\
20 paQaNumPassed++; \
21 } \
22 else { \
23 printf("ERROR at %s:%d, (%s) not true\n", \
24 __FILE__, __LINE__, #_exp ); \
25 paQaNumFailed++; \
26 _on_error; \
27 } \
28 } while(0)
29
30#define ASSERT_TRUE(_exp) CHECK_TRUE(_exp, goto error)
31#define EXPECT_TRUE(_exp) CHECK_TRUE(_exp, (void)0)
32
33#define CHECK_AB(_a, _b, _op, _opn, _on_error) \
34 do \
35 { \
36 int mA = (int)(_a); \
37 int mB = (int)(_b); \
38 if (mA _op mB) {\
39 paQaNumPassed++; \
40 } \
41 else { \
42 printf("ERROR at %s:%d, (%s) %s (%s), %d %s %d\n", \
43 __FILE__, __LINE__, #_a, #_opn, #_b, mA, #_opn, mB ); \
44 paQaNumFailed++; \
45 _on_error; \
46 } \
47 } while(0)
48
49#define ASSERT_AB(_a, _b, _op, _opn) CHECK_AB(_a, _b, _op, _opn, goto error)
50#define ASSERT_EQ(_a, _b) ASSERT_AB(_a, _b, ==, !=)
51#define ASSERT_NE(_a, _b) ASSERT_AB(_a, _b, !=, ==)
52#define ASSERT_GT(_a, _b) ASSERT_AB(_a, _b, >, <=)
53#define ASSERT_GE(_a, _b) ASSERT_AB(_a, _b, >=, <)
54#define ASSERT_LT(_a, _b) ASSERT_AB(_a, _b, <, >=)
55#define ASSERT_LE(_a, _b) ASSERT_AB(_a, _b, <=, >)
56
57#define EXPECT_AB(_a, _b, _op, _opn) CHECK_AB(_a, _b, _op, _opn, (void)0)
58#define EXPECT_EQ(_a, _b) EXPECT_AB(_a, _b, ==, !=)
59#define EXPECT_NE(_a, _b) EXPECT_AB(_a, _b, !=, ==)
60#define EXPECT_GT(_a, _b) EXPECT_AB(_a, _b, >, <=)
61#define EXPECT_GE(_a, _b) EXPECT_AB(_a, _b, >=, <)
62#define EXPECT_LT(_a, _b) EXPECT_AB(_a, _b, <, >=)
63#define EXPECT_LE(_a, _b) EXPECT_AB(_a, _b, <=, >)
64
65#define HOPEFOR(_exp) \
66 do \
67 { \
68 if ((_exp)) {\
69 paQaNumPassed++; \
70 } \
71 else { \
72 printf("\nERROR - 0x%x - %s for %s\n", result, Pa_GetErrorText(result), #_exp ); \
73 paQaNumFailed++; \
74 } \
75 } while(0)
76
77#define PAQA_PRINT_RESULT \
78 printf("QA Report: %d passed, %d failed.\n", paQaNumPassed, paQaNumFailed )
79
80#define PAQA_EXIT_RESULT \
81 (((paQaNumFailed > 0) || (paQaNumPassed == 0)) ? EXIT_FAILURE : EXIT_SUCCESS)
82
83#endif /* PORTAUDIO_QA_PAQA_MACROS_H */
int paQaNumPassed
int paQaNumFailed