68 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef __LIBPERF_INTERNAL_TESTS_H3#define __LIBPERF_INTERNAL_TESTS_H4 5#include <stdio.h>6#include <unistd.h>7 8extern int tests_failed;9extern int tests_verbose;10 11static inline int get_verbose(char **argv, int argc)12{13 int c;14 int verbose = 0;15 16 while ((c = getopt(argc, argv, "v")) != -1) {17 switch (c)18 {19 case 'v':20 verbose = 1;21 break;22 default:23 break;24 }25 }26 optind = 1;27 28 return verbose;29}30 31#define __T_START \32do { \33 tests_verbose = get_verbose(argv, argc); \34 fprintf(stdout, "- running %s...", __FILE__); \35 fflush(NULL); \36 tests_failed = 0; \37} while (0)38 39#define __T_END \40do { \41 if (tests_failed) \42 fprintf(stdout, " FAILED (%d)\n", tests_failed); \43 else \44 fprintf(stdout, "OK\n"); \45} while (0)46 47#define __T(text, cond) \48do { \49 if (!(cond)) { \50 fprintf(stderr, "FAILED %s:%d %s\n", __FILE__, __LINE__, text); \51 tests_failed++; \52 return -1; \53 } \54} while (0)55 56#define __T_VERBOSE(...) \57do { \58 if (tests_verbose) { \59 if (tests_verbose == 1) { \60 fputc('\n', stderr); \61 tests_verbose++; \62 } \63 fprintf(stderr, ##__VA_ARGS__); \64 } \65} while (0)66 67#endif /* __LIBPERF_INTERNAL_TESTS_H */68