| /* 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 */ |