X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=tests%2Futils%2Ftap.h;h=629c847c9306ad0ce8ff6c7254e711e73fbf4396;hp=39312fcb2e5a4b425b803a2c68c8f782cb4df93d;hb=HEAD;hpb=ed545d364011eed865cc051e7afe8ccf10ac64e9 diff --git a/tests/utils/tap.h b/tests/utils/tap.h index 39312fc..966706f 100644 --- a/tests/utils/tap.h +++ b/tests/utils/tap.h @@ -5,30 +5,10 @@ * Copyright (C) 2017 Jérémie Galarneau */ -/* '## __VA_ARGS__' is a gcc'ism. C99 doesn't allow the token pasting - and requires the caller to add the final comma if they've ommitted - the optional arguments */ -#ifdef __GNUC__ -# define ok(e, test, ...) ((e) ? \ - _gen_result(1, __func__, __FILE__, __LINE__, \ - test, ## __VA_ARGS__) : \ - _gen_result(0, __func__, __FILE__, __LINE__, \ - test, ## __VA_ARGS__)) - -# define ok1(e) ((e) ? \ - _gen_result(1, __func__, __FILE__, __LINE__, "%s", #e) : \ - _gen_result(0, __func__, __FILE__, __LINE__, "%s", #e)) - -# define pass(test, ...) ok(1, test, ## __VA_ARGS__); -# define fail(test, ...) ok(0, test, ## __VA_ARGS__); +#ifdef __cplusplus +extern "C" { +#endif -# define skip_start(test, n, fmt, ...) \ - do { \ - if((test)) { \ - skip(n, fmt, ## __VA_ARGS__); \ - continue; \ - } -#elif __STDC_VERSION__ >= 199901L /* __GNUC__ */ # define ok(e, ...) ((e) ? \ _gen_result(1, __func__, __FILE__, __LINE__, \ __VA_ARGS__) : \ @@ -39,8 +19,8 @@ _gen_result(1, __func__, __FILE__, __LINE__, "%s", #e) : \ _gen_result(0, __func__, __FILE__, __LINE__, "%s", #e)) -# define pass(...) ok(1, __VA_ARGS__); -# define fail(...) ok(0, __VA_ARGS__); +# define pass(...) ok(1, __VA_ARGS__) +# define fail(...) ok(0, __VA_ARGS__) # define skip_start(test, n, ...) \ do { \ @@ -48,9 +28,6 @@ skip(n, __VA_ARGS__); \ continue; \ } -#else /* __STDC_VERSION__ */ -# error "Needs gcc or C99 compiler for variadic macros." -#endif /* __STDC_VERSION__ */ #define skip_end() } while(0); @@ -64,7 +41,7 @@ __attribute__((format(TAP_PRINTF_FORMAT, 5, 6))) unsigned int _gen_result(int, const char *, const char *, unsigned int, const char *, ...); int plan_no_plan(void); -__attribute__((noreturn)) +__attribute__((__noreturn__)) int plan_skip_all(const char *); int plan_tests(unsigned int); @@ -87,3 +64,7 @@ unsigned int rdiag_start(void); __attribute__((format(TAP_PRINTF_FORMAT, 1, 2))) unsigned int rdiag(const char *fmt, ...); unsigned int rdiag_end(void); + +#ifdef __cplusplus +} +#endif