mirror of
https://github.com/mamedev/mame.git
synced 2024-11-16 07:48:32 +01:00
963561c7cb
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.
71 lines
2 KiB
C
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 */
|