perf test: Basic mmap use skip
If opening the event fails for basic mmap with EACCES it is more
likely permission related that a true error. Mark the test as skip
in this case and add a skip reason.
Committer testing:
Before:
  $ perf test "mmap interface"
    4: Read samples using the mmap interface           : FAILED!
  $
After:
  $ perf test "mmap interface"
    4: Read samples using the mmap interface           : Skip (permissions)
  $
Signed-off-by: Ian Rogers <irogers@google.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Carsten Haitzler <carsten.haitzler@arm.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: John Garry <john.garry@huawei.com>
Cc: Marco Elver <elver@google.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Michael Petlan <mpetlan@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Riccardo Mancini <rickyman7@gmail.com>
Cc: Sohaib Mohamed <sohaib.amhmd@gmail.com>
Cc: Stephane Eranian <eranian@google.com>
Link: https://lore.kernel.org/r/20220518042027.836799-5-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
			
			
This commit is contained in:
		
				
					committed by
					
						 Arnaldo Carvalho de Melo
						Arnaldo Carvalho de Melo
					
				
			
			
				
	
			
			
			
						parent
						
							f9b10c82fa
						
					
				
				
					commit
					7312c36ce6
				
			| @@ -31,7 +31,7 @@ | |||||||
|  */ |  */ | ||||||
| static int test__basic_mmap(struct test_suite *test __maybe_unused, int subtest __maybe_unused) | 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; | 	union perf_event *event; | ||||||
| 	struct perf_thread_map *threads; | 	struct perf_thread_map *threads; | ||||||
| 	struct perf_cpu_map *cpus; | 	struct perf_cpu_map *cpus; | ||||||
| @@ -83,6 +83,10 @@ static int test__basic_mmap(struct test_suite *test __maybe_unused, int subtest | |||||||
| 		evsels[i] = evsel__newtp("syscalls", name); | 		evsels[i] = evsel__newtp("syscalls", name); | ||||||
| 		if (IS_ERR(evsels[i])) { | 		if (IS_ERR(evsels[i])) { | ||||||
| 			pr_debug("evsel__new(%s)\n", name); | 			pr_debug("evsel__new(%s)\n", name); | ||||||
|  | 			if (PTR_ERR(evsels[i]) == -EACCES) { | ||||||
|  | 				/* Permissions failure, flag the failure as a skip. */ | ||||||
|  | 				err = TEST_SKIP; | ||||||
|  | 			} | ||||||
| 			goto out_delete_evlist; | 			goto out_delete_evlist; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| @@ -166,4 +170,14 @@ out_free_threads: | |||||||
| 	return err; | 	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, | ||||||
|  | }; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user