GNU Linux-libre 5.19-rc6-gnu
[releases.git] / tools / lib / perf / tests / test-cpumap.c
1 // SPDX-License-Identifier: GPL-2.0
2 #include <stdarg.h>
3 #include <stdio.h>
4 #include <perf/cpumap.h>
5 #include <internal/tests.h>
6 #include "tests.h"
7
8 static int libperf_print(enum libperf_print_level level,
9                          const char *fmt, va_list ap)
10 {
11         return vfprintf(stderr, fmt, ap);
12 }
13
14 int test_cpumap(int argc, char **argv)
15 {
16         struct perf_cpu_map *cpus;
17         struct perf_cpu cpu;
18         int idx;
19
20         __T_START;
21
22         libperf_init(libperf_print);
23
24         cpus = perf_cpu_map__dummy_new();
25         if (!cpus)
26                 return -1;
27
28         perf_cpu_map__get(cpus);
29         perf_cpu_map__put(cpus);
30         perf_cpu_map__put(cpus);
31
32         cpus = perf_cpu_map__default_new();
33         if (!cpus)
34                 return -1;
35
36         perf_cpu_map__for_each_cpu(cpu, idx, cpus)
37                 __T("wrong cpu number", cpu.cpu != -1);
38
39         perf_cpu_map__put(cpus);
40
41         __T_END;
42         return tests_failed == 0 ? 0 : -1;
43 }