X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=tests%2Futils%2Futils.h;h=48f937b1b71a9924b33d8201828421fc3a9b122d;hp=e5a5310d9b58754313d0bfd43b36479d241fdf60;hb=d23253aed60c9aaea2adcc689a7fbefc22b43e7b;hpb=0458ed8c7f5c46e1fb56c8cb920ddbbc7adda8a8 diff --git a/tests/utils/utils.h b/tests/utils/utils.h index e5a5310d9..48f937b1b 100644 --- a/tests/utils/utils.h +++ b/tests/utils/utils.h @@ -1,23 +1,39 @@ /* - * Copyright (C) - 2015 Jérémie Galarneau + * Copyright (C) 2015 Jérémie Galarneau * - * This library is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published by the - * Free Software Foundation; version 2.1 of the License. + * SPDX-License-Identifier: LGPL-2.1-only * - * This library is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License - * for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this library; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef TEST_UTILS_H #define TEST_UTILS_H +#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 buf[200]; \ + strerror_r(errno, buf, sizeof(buf)); \ + fprintf(stderr, msg ": %s\n", ##args, buf); \ + } while (0); +#else +/* + * Version using GNU strerror_r, for linux with appropriate defines. + */ +#define PERROR_NO_LOGGER(msg, args...) \ + do { \ + char *buf; \ + char tmp[200]; \ + buf = strerror_r(errno, tmp, sizeof(tmp)); \ + fprintf(stderr, msg ": %s\n", ##args, buf); \ + } while (0); +#endif + int usleep_safe(useconds_t usec); +int create_file(const char *path); +int wait_on_file(const char *path); #endif /* TEST_UTILS_H */