Em Tue, Apr 13, 2021 at 12:16:05PM -0500, Rob Herring escreveu: > Add __T_VERBOSE() so tests can add verbose output. The verbose output is > enabled with the '-v' command line option.
You forgot to show how this is used, I'm trying: # cd tools/lib/perf # sudo make tests So how from the command line one asks for verbose output from the tests? Should be: # sudo make tests V=1 ? The default output, non-verbose, is: [acme@five perf]$ sudo make tests LINK test-cpumap-a LINK test-threadmap-a LINK test-evlist-a LINK test-evsel-a LINK test-cpumap-so LINK test-threadmap-so LINK test-evlist-so LINK test-evsel-so running static: - running test-cpumap.c...OK - running test-threadmap.c...OK - running test-evlist.c...OK - running test-evsel.c...OK running dynamic: - running test-cpumap.c...OK - running test-threadmap.c...OK - running test-evlist.c...OK - running test-evsel.c...OK [acme@five perf]$ Trying a verbose mode: [acme@five perf]$ sudo make tests V=1 make -f /home/acme/git/perf/tools/build/Makefile.build dir=. obj=libperf make -C /home/acme/git/perf/tools/lib/api/ O= libapi.a make -f /home/acme/git/perf/tools/build/Makefile.build dir=./fd obj=libapi make -f /home/acme/git/perf/tools/build/Makefile.build dir=./fs obj=libapi make -C tests gcc -I/home/acme/git/perf/tools/lib/perf/include -I/home/acme/git/perf/tools/include -I/home/acme/git/perf/tools/lib -g -Wall -o test-cpumap-a test-cpumap.c ../libperf.a /home/acme/git/perf/tools/lib/api/libapi.a gcc -I/home/acme/git/perf/tools/lib/perf/include -I/home/acme/git/perf/tools/include -I/home/acme/git/perf/tools/lib -g -Wall -o test-threadmap-a test-threadmap.c ../libperf.a /home/acme/git/perf/tools/lib/api/libapi.a gcc -I/home/acme/git/perf/tools/lib/perf/include -I/home/acme/git/perf/tools/include -I/home/acme/git/perf/tools/lib -g -Wall -o test-evlist-a test-evlist.c ../libperf.a /home/acme/git/perf/tools/lib/api/libapi.a gcc -I/home/acme/git/perf/tools/lib/perf/include -I/home/acme/git/perf/tools/include -I/home/acme/git/perf/tools/lib -g -Wall -o test-evsel-a test-evsel.c ../libperf.a /home/acme/git/perf/tools/lib/api/libapi.a gcc -I/home/acme/git/perf/tools/lib/perf/include -I/home/acme/git/perf/tools/include -I/home/acme/git/perf/tools/lib -g -Wall -L.. -o test-cpumap-so test-cpumap.c /home/acme/git/perf/tools/lib/api/libapi.a -lperf gcc -I/home/acme/git/perf/tools/lib/perf/include -I/home/acme/git/perf/tools/include -I/home/acme/git/perf/tools/lib -g -Wall -L.. -o test-threadmap-so test-threadmap.c /home/acme/git/perf/tools/lib/api/libapi.a -lperf gcc -I/home/acme/git/perf/tools/lib/perf/include -I/home/acme/git/perf/tools/include -I/home/acme/git/perf/tools/lib -g -Wall -L.. -o test-evlist-so test-evlist.c /home/acme/git/perf/tools/lib/api/libapi.a -lperf gcc -I/home/acme/git/perf/tools/lib/perf/include -I/home/acme/git/perf/tools/include -I/home/acme/git/perf/tools/lib -g -Wall -L.. -o test-evsel-so test-evsel.c /home/acme/git/perf/tools/lib/api/libapi.a -lperf make -C tests run running static: - running test-cpumap.c...OK - running test-threadmap.c...OK - running test-evlist.c...OK - running test-evsel.c...OK running dynamic: - running test-cpumap.c...OK - running test-threadmap.c...OK - running test-evlist.c...OK - running test-evsel.c...OK [acme@five perf]$ I'm only getting a move verbose output for the Makefile steps, not from the actual tests. Perhaps if I read the last cset... will do that now. - Arnaldo > Signed-off-by: Rob Herring <r...@kernel.org> > --- > v5: > - Pass verbose flag to static tests > - Fix getopt loop with unsigned char (arm64) > v3: > - New patch > --- > tools/lib/perf/include/internal/tests.h | 32 +++++++++++++++++++++++++ > tools/lib/perf/tests/Makefile | 6 +++-- > 2 files changed, 36 insertions(+), 2 deletions(-) > > diff --git a/tools/lib/perf/include/internal/tests.h > b/tools/lib/perf/include/internal/tests.h > index 2093e8868a67..29425c2dabe1 100644 > --- a/tools/lib/perf/include/internal/tests.h > +++ b/tools/lib/perf/include/internal/tests.h > @@ -3,11 +3,32 @@ > #define __LIBPERF_INTERNAL_TESTS_H > > #include <stdio.h> > +#include <unistd.h> > > int tests_failed; > +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; > + } > + } > + return verbose; > +} > > #define __T_START \ > do { \ > + tests_verbose = get_verbose(argv, argc); \ > fprintf(stdout, "- running %s...", __FILE__); \ > fflush(NULL); \ > tests_failed = 0; \ > @@ -30,4 +51,15 @@ do { > } > \ > } 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 */ > diff --git a/tools/lib/perf/tests/Makefile b/tools/lib/perf/tests/Makefile > index 96841775feaf..b536cc9a26dd 100644 > --- a/tools/lib/perf/tests/Makefile > +++ b/tools/lib/perf/tests/Makefile > @@ -5,6 +5,8 @@ TESTS = test-cpumap test-threadmap test-evlist test-evsel > TESTS_SO := $(addsuffix -so,$(TESTS)) > TESTS_A := $(addsuffix -a,$(TESTS)) > > +TEST_ARGS := $(if $(V),-v) > + > # Set compile option CFLAGS > ifdef EXTRA_CFLAGS > CFLAGS := $(EXTRA_CFLAGS) > @@ -28,9 +30,9 @@ all: $(TESTS_A) $(TESTS_SO) > > run: > @echo "running static:" > - @for i in $(TESTS_A); do ./$$i; done > + @for i in $(TESTS_A); do ./$$i $(TEST_ARGS); done > @echo "running dynamic:" > - @for i in $(TESTS_SO); do LD_LIBRARY_PATH=../ ./$$i; done > + @for i in $(TESTS_SO); do LD_LIBRARY_PATH=../ ./$$i $(TEST_ARGS); done > > clean: > $(call QUIET_CLEAN, tests)$(RM) $(TESTS_A) $(TESTS_SO) > -- > 2.27.0 > -- - Arnaldo