[PATCH 4/7] perf test: Basic mmap use skip

From: Ian Rogers
Date: Fri May 13 2022 - 00:06:01 EST


If opening the first event fails for basic mmap it is more likely
permission related that a true error. Mark the test as skip in this
case and add a skip reason.

Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
---
tools/perf/tests/mmap-basic.c | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/tools/perf/tests/mmap-basic.c b/tools/perf/tests/mmap-basic.c
index c3c17600f29c..32f0a63fa157 100644
--- a/tools/perf/tests/mmap-basic.c
+++ b/tools/perf/tests/mmap-basic.c
@@ -31,7 +31,7 @@
*/
static int test__basic_mmap(struct test_suite *test __maybe_unused, int subtest __maybe_unused)
{
- int err = -1;
+ int err = TEST_FAIL;
union perf_event *event;
struct perf_thread_map *threads;
struct perf_cpu_map *cpus;
@@ -83,6 +83,14 @@ static int test__basic_mmap(struct test_suite *test __maybe_unused, int subtest
evsels[i] = evsel__newtp("syscalls", name);
if (IS_ERR(evsels[i])) {
pr_debug("evsel__new(%s)\n", name);
+ if (i == 0) {
+ /*
+ * Failure to open first event is more likely
+ * related to permissions so flag the failure as
+ * a skip.
+ */
+ err = TEST_SKIP;
+ }
goto out_delete_evlist;
}

@@ -166,4 +174,14 @@ static int test__basic_mmap(struct test_suite *test __maybe_unused, int subtest
return err;
}

-DEFINE_SUITE("Read samples using the mmap interface", basic_mmap);
+static struct test_case tests__basic_mmap[] = {
+ TEST_CASE_REASON("Read samples using the mmap interface",
+ basic_mmap,
+ "permissions"),
+ { .name = NULL, }
+};
+
+struct test_suite suite__basic_mmap = {
+ .desc = "Read samples using the mmap interface",
+ .test_cases = tests__basic_mmap,
+};
--
2.36.0.550.gb090851708-goog