/* SPDX-License-Identifier: GPL-2.0 */ #ifndef __LIBPERF_INTERNAL_TESTS_H #define __LIBPERF_INTERNAL_TESTS_H #include <stdio.h> #include <unistd.h> extern int tests_failed; extern int tests_verbose; static inline int get_verbose(char **argv, int argc) { int c; int verbose = 0; while ((c = getopt(argc, argv, "v")) != -1) { switch (c) { case 'v': verbose = 1; break; default: break; } } optind = 1; return verbose; } #define __T_START \ do { \ tests_verbose = get_verbose(argv, argc); \ fprintf(stdout, "- running %s...", __FILE__); \ fflush(NULL); \ tests_failed = 0; \ } while (0) #define __T_END \ do { \ if (tests_failed) \ fprintf(stdout, " FAILED (%d)\n", tests_failed); \ else \ fprintf(stdout, "OK\n"); \ } while (0) #define __T(text, cond) \ do { \ if (!(cond)) { \ fprintf(stderr, "FAILED %s:%d %s\n", __FILE__, __LINE__, text); \ tests_failed++; \ return -1; \ } \ } while (0) #define __T_VERBOSE(...) \ do { \ if (tests_verbose) { \ if (tests_verbose == 1) { \ fputc('\n', stderr); \ tests_verbose++; \ } \ fprintf(stderr, ##__VA_ARGS__); \ } \ } while (0) #endif /* __LIBPERF_INTERNAL_TESTS_H */