Now subtests can inform why a test was skipped. The upcoming patch improvint PMU event metric testing will use it.
Signed-off-by: Ian Rogers <irog...@google.com> Cc: Adrian Hunter <adrian.hun...@intel.com> Cc: Alexander Shishkin <alexander.shish...@linux.intel.com> Cc: Andi Kleen <a...@linux.intel.com> Cc: Jin Yao <yao....@linux.intel.com> Cc: Jiri Olsa <jo...@redhat.com> Cc: John Garry <john.ga...@huawei.com> Cc: Kajol Jain <kj...@linux.ibm.com> Cc: Kan Liang <kan.li...@linux.intel.com> Cc: Leo Yan <leo....@linaro.org> Cc: Mark Rutland <mark.rutl...@arm.com> Cc: Namhyung Kim <namhy...@kernel.org> Cc: Paul Clarke <p...@us.ibm.com> Cc: Peter Zijlstra <pet...@infradead.org> Cc: Stephane Eranian <eran...@google.com> Link: http://lore.kernel.org/lkml/20200513212933.41273-1-irog...@google.com [ split from a larger patch ] Signed-off-by: Arnaldo Carvalho de Melo <a...@redhat.com> --- tools/perf/tests/builtin-test.c | 11 +++++++++-- tools/perf/tests/tests.h | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/tools/perf/tests/builtin-test.c b/tools/perf/tests/builtin-test.c index 3471ec52ea11..baee735e6aa5 100644 --- a/tools/perf/tests/builtin-test.c +++ b/tools/perf/tests/builtin-test.c @@ -429,8 +429,15 @@ static int test_and_print(struct test *t, bool force_skip, int subtest) case TEST_OK: pr_info(" Ok\n"); break; - case TEST_SKIP: - color_fprintf(stderr, PERF_COLOR_YELLOW, " Skip\n"); + case TEST_SKIP: { + const char *skip_reason = NULL; + if (t->subtest.skip_reason) + skip_reason = t->subtest.skip_reason(subtest); + if (skip_reason) + color_fprintf(stderr, PERF_COLOR_YELLOW, " Skip (%s)\n", skip_reason); + else + color_fprintf(stderr, PERF_COLOR_YELLOW, " Skip\n"); + } break; case TEST_FAIL: default: diff --git a/tools/perf/tests/tests.h b/tools/perf/tests/tests.h index d6d4ac34eeb7..88e45aeab94f 100644 --- a/tools/perf/tests/tests.h +++ b/tools/perf/tests/tests.h @@ -34,6 +34,7 @@ struct test { bool skip_if_fail; int (*get_nr)(void); const char *(*get_desc)(int subtest); + const char *(*skip_reason)(int subtest); } subtest; bool (*is_supported)(void); void *priv; -- 2.26.2.761.g0e0b3e54be-goog