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 
5 extern int paQaNumPassed;
6 extern 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