X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;ds=sidebyside;f=tests%2Futils%2Futils.h;h=802743ec1fd32fc3c6c5c420ac058c9181dc132c;hb=cdcf8972424da5cba4c0210d7fdfa2e7123aa748;hp=1385c0dec8e08c129a49b5e6114e5a21c88b3203;hpb=9d16b343fb9e781fc8d8fa3c448a3f382306dd33;p=lttng-tools.git diff --git a/tests/utils/utils.h b/tests/utils/utils.h index 1385c0dec..802743ec1 100644 --- a/tests/utils/utils.h +++ b/tests/utils/utils.h @@ -8,8 +8,44 @@ #ifndef TEST_UTILS_H #define TEST_UTILS_H +#include +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +#if !defined(__GLIBC__) || \ + ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && !defined(_GNU_SOURCE)) + +/* + * Version using XSI strerror_r. + */ +#define PERROR_NO_LOGGER(msg, args...) \ + do { \ + char _perror_buf[200]; \ + strerror_r(errno, _perror_buf, sizeof(_perror_buf)); \ + fprintf(stderr, msg ": %s\n", ##args, _perror_buf); \ + } while (0); +#else +/* + * Version using GNU strerror_r, for linux with appropriate defines. + */ +#define PERROR_NO_LOGGER(msg, args...) \ + do { \ + char *_perror_buf; \ + char _perror_tmp[200]; \ + _perror_buf = strerror_r(errno, _perror_tmp, sizeof(_perror_tmp)); \ + fprintf(stderr, msg ": %s\n", ##args, _perror_buf); \ + } while (0); +#endif + int usleep_safe(useconds_t usec); int create_file(const char *path); int wait_on_file(const char *path); +int64_t elapsed_time_ns(struct timespec *t1, struct timespec *t2); +#if defined(__cplusplus) +} +#endif #endif /* TEST_UTILS_H */