perf test: Skip not fail tp fields test when insufficient permissions
authorIan Rogers <irogers@google.com>
Tue, 1 Oct 2024 05:23:26 +0000 (22:23 -0700)
committerNamhyung Kim <namhyung@kernel.org>
Wed, 2 Oct 2024 21:58:03 +0000 (14:58 -0700)
Clean up return value to be TEST_* rather than unspecific integer. Add
test case skip reason. Skip test if EACCES comes back from
evsel__newtp.

Signed-off-by: Ian Rogers <irogers@google.com>
Link: https://lore.kernel.org/r/20241001052327.7052-4-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/tests/evsel-tp-sched.c

index cf4da3d748c29fd4d126929a8b41e07c846306ee..3da6a76eac3856d119c6646fa0eab578024bbc5b 100644 (file)
@@ -36,33 +36,33 @@ static int test__perf_evsel__tp_sched_test(struct test_suite *test __maybe_unuse
                                           int subtest __maybe_unused)
 {
        struct evsel *evsel = evsel__newtp("sched", "sched_switch");
-       int ret = 0;
+       int ret = TEST_OK;
 
        if (IS_ERR(evsel)) {
                pr_debug("evsel__newtp failed with %ld\n", PTR_ERR(evsel));
-               return -1;
+               return PTR_ERR(evsel) == -EACCES ? TEST_SKIP : TEST_FAIL;
        }
 
        if (evsel__test_field(evsel, "prev_comm", 16, false))
-               ret = -1;
+               ret = TEST_FAIL;
 
        if (evsel__test_field(evsel, "prev_pid", 4, true))
-               ret = -1;
+               ret = TEST_FAIL;
 
        if (evsel__test_field(evsel, "prev_prio", 4, true))
-               ret = -1;
+               ret = TEST_FAIL;
 
        if (evsel__test_field(evsel, "prev_state", sizeof(long), true))
-               ret = -1;
+               ret = TEST_FAIL;
 
        if (evsel__test_field(evsel, "next_comm", 16, false))
-               ret = -1;
+               ret = TEST_FAIL;
 
        if (evsel__test_field(evsel, "next_pid", 4, true))
-               ret = -1;
+               ret = TEST_FAIL;
 
        if (evsel__test_field(evsel, "next_prio", 4, true))
-               ret = -1;
+               ret = TEST_FAIL;
 
        evsel__delete(evsel);
 
@@ -70,23 +70,33 @@ static int test__perf_evsel__tp_sched_test(struct test_suite *test __maybe_unuse
 
        if (IS_ERR(evsel)) {
                pr_debug("evsel__newtp failed with %ld\n", PTR_ERR(evsel));
-               return -1;
+               return TEST_FAIL;
        }
 
        if (evsel__test_field(evsel, "comm", 16, false))
-               ret = -1;
+               ret = TEST_FAIL;
 
        if (evsel__test_field(evsel, "pid", 4, true))
-               ret = -1;
+               ret = TEST_FAIL;
 
        if (evsel__test_field(evsel, "prio", 4, true))
-               ret = -1;
+               ret = TEST_FAIL;
 
        if (evsel__test_field(evsel, "target_cpu", 4, true))
-               ret = -1;
+               ret = TEST_FAIL;
 
        evsel__delete(evsel);
        return ret;
 }
 
-DEFINE_SUITE("Parse sched tracepoints fields", perf_evsel__tp_sched_test);
+static struct test_case tests__perf_evsel__tp_sched_test[] = {
+       TEST_CASE_REASON("Parse sched tracepoints fields",
+                        perf_evsel__tp_sched_test,
+                        "permissions"),
+       {       .name = NULL, }
+};
+
+struct test_suite suite__perf_evsel__tp_sched_test = {
+       .desc = "Parse sched tracepoints fields",
+       .test_cases = tests__perf_evsel__tp_sched_test,
+};