mame/3rdparty/portaudio/qa/paqa_macros.h
invertego 963561c7cb
3rdparty/portaudio: Updated to latest upstream version. (#11604)
Up-to-date with revision 24c8d575e588d557d28f4011becb753421346860.  Resolves issues building with Visual Studio.

Enabled PortAudio when building with Visual Studio and clang-cl.

docs: Removed note about duplicate GUID symbols in PortAudio when built with MSVC.
2023-10-09 01:50:30 +11:00

71 lines
2 KiB
C

#ifndef PORTAUDIO_QA_PAQA_MACROS_H
#define PORTAUDIO_QA_PAQA_MACROS_H
extern int paQaNumPassed;
extern int paQaNumFailed;
/* You must use this macro exactly once in each test program. */
#define PAQA_INSTANTIATE_GLOBALS\
int paQaNumPassed = 0;\
int paQaNumFailed = 0;
/*------------------- Macros ------------------------------*/
/* Print ERROR if it fails. Tally success or failure. Odd */
/* do-while wrapper seems to be needed for some compilers. */
#define ASSERT_TRUE(_exp) \
do \
{ \
if (_exp) {\
paQaNumPassed++; \
} \
else { \
printf("ERROR at %s:%d, (%s) not true\n", \
__FILE__, __LINE__, #_exp ); \
paQaNumFailed++; \
goto error; \
} \
} while(0)
#define ASSERT_AB(_a, _b, _op, _opn) \
do \
{ \
int mA = (int)(_a); \
int mB = (int)(_b); \
if (mA _op mB) {\
paQaNumPassed++; \
} \
else { \
printf("ERROR at %s:%d, (%s) %s (%s), %d %s %d\n", \
__FILE__, __LINE__, #_a, #_opn, #_b, mA, #_opn, mB ); \
paQaNumFailed++; \
goto error; \
} \
} while(0)
#define ASSERT_EQ(_a, _b) ASSERT_AB(_a, _b, ==, !=)
#define ASSERT_NE(_a, _b) ASSERT_AB(_a, _b, !=, ==)
#define ASSERT_GT(_a, _b) ASSERT_AB(_a, _b, >, <=)
#define ASSERT_GE(_a, _b) ASSERT_AB(_a, _b, >=, <)
#define ASSERT_LT(_a, _b) ASSERT_AB(_a, _b, <, >=)
#define ASSERT_LE(_a, _b) ASSERT_AB(_a, _b, <=, >)
#define HOPEFOR(_exp) \
do \
{ \
if ((_exp)) {\
paQaNumPassed++; \
} \
else { \
printf("\nERROR - 0x%x - %s for %s\n", result, Pa_GetErrorText(result), #_exp ); \
paQaNumFailed++; \
} \
} while(0)
#define PAQA_PRINT_RESULT \
printf("QA Report: %d passed, %d failed.\n", paQaNumPassed, paQaNumFailed )
#define PAQA_EXIT_RESULT \
(((paQaNumFailed > 0) || (paQaNumPassed == 0)) ? EXIT_FAILURE : EXIT_SUCCESS)
#endif /* PORTAUDIO_QA_PAQA_MACROS_H */