]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
0a4e1ae6 JO |
2 | #ifndef TESTS_H |
3 | #define TESTS_H | |
4 | ||
e8c6d500 WN |
5 | #include <stdbool.h> |
6 | ||
450ac18d JO |
7 | #define TEST_ASSERT_VAL(text, cond) \ |
8 | do { \ | |
9 | if (!(cond)) { \ | |
10 | pr_debug("FAILED %s:%d %s\n", __FILE__, __LINE__, text); \ | |
11 | return -1; \ | |
12 | } \ | |
13 | } while (0) | |
14 | ||
8f196013 ACM |
15 | #define TEST_ASSERT_EQUAL(text, val, expected) \ |
16 | do { \ | |
17 | if (val != expected) { \ | |
18 | pr_debug("FAILED %s:%d %s (%d != %d)\n", \ | |
19 | __FILE__, __LINE__, text, val, expected); \ | |
20 | return -1; \ | |
21 | } \ | |
22 | } while (0) | |
23 | ||
f4c1ea5f JO |
24 | enum { |
25 | TEST_OK = 0, | |
26 | TEST_FAIL = -1, | |
27 | TEST_SKIP = -2, | |
28 | }; | |
29 | ||
31b6753f MF |
30 | struct test { |
31 | const char *desc; | |
81f17c90 | 32 | int (*func)(struct test *test, int subtest); |
e8c6d500 WN |
33 | struct { |
34 | bool skip_if_fail; | |
35 | int (*get_nr)(void); | |
36 | const char *(*get_desc)(int subtest); | |
37 | } subtest; | |
598762cf | 38 | bool (*is_supported)(void); |
1209b273 | 39 | void *priv; |
31b6753f MF |
40 | }; |
41 | ||
d3b59a38 | 42 | /* Tests */ |
81f17c90 ACM |
43 | int test__vmlinux_matches_kallsyms(struct test *test, int subtest); |
44 | int test__openat_syscall_event(struct test *test, int subtest); | |
45 | int test__openat_syscall_event_on_all_cpus(struct test *test, int subtest); | |
46 | int test__basic_mmap(struct test *test, int subtest); | |
47 | int test__PERF_RECORD(struct test *test, int subtest); | |
48 | int test__perf_evsel__roundtrip_name_test(struct test *test, int subtest); | |
49 | int test__perf_evsel__tp_sched_test(struct test *test, int subtest); | |
50 | int test__syscall_openat_tp_fields(struct test *test, int subtest); | |
51 | int test__pmu(struct test *test, int subtest); | |
52 | int test__attr(struct test *test, int subtest); | |
53 | int test__dso_data(struct test *test, int subtest); | |
54 | int test__dso_data_cache(struct test *test, int subtest); | |
55 | int test__dso_data_reopen(struct test *test, int subtest); | |
56 | int test__parse_events(struct test *test, int subtest); | |
57 | int test__hists_link(struct test *test, int subtest); | |
58 | int test__python_use(struct test *test, int subtest); | |
59 | int test__bp_signal(struct test *test, int subtest); | |
60 | int test__bp_signal_overflow(struct test *test, int subtest); | |
61 | int test__task_exit(struct test *test, int subtest); | |
3067eaa7 | 62 | int test__mem(struct test *test, int subtest); |
81f17c90 ACM |
63 | int test__sw_clock_freq(struct test *test, int subtest); |
64 | int test__code_reading(struct test *test, int subtest); | |
65 | int test__sample_parsing(struct test *test, int subtest); | |
66 | int test__keep_tracking(struct test *test, int subtest); | |
67 | int test__parse_no_sample_id_all(struct test *test, int subtest); | |
68 | int test__dwarf_unwind(struct test *test, int subtest); | |
69 | int test__expr(struct test *test, int subtest); | |
70 | int test__hists_filter(struct test *test, int subtest); | |
71 | int test__mmap_thread_lookup(struct test *test, int subtest); | |
72 | int test__thread_mg_share(struct test *test, int subtest); | |
73 | int test__hists_output(struct test *test, int subtest); | |
74 | int test__hists_cumulate(struct test *test, int subtest); | |
75 | int test__switch_tracking(struct test *test, int subtest); | |
76 | int test__fdarray__filter(struct test *test, int subtest); | |
77 | int test__fdarray__add(struct test *test, int subtest); | |
78 | int test__kmod_path__parse(struct test *test, int subtest); | |
79 | int test__thread_map(struct test *test, int subtest); | |
80 | int test__llvm(struct test *test, int subtest); | |
e8c6d500 WN |
81 | const char *test__llvm_subtest_get_desc(int subtest); |
82 | int test__llvm_subtest_get_nr(void); | |
81f17c90 | 83 | int test__bpf(struct test *test, int subtest); |
77a0cf68 WN |
84 | const char *test__bpf_subtest_get_desc(int subtest); |
85 | int test__bpf_subtest_get_nr(void); | |
81f17c90 ACM |
86 | int test__session_topology(struct test *test, int subtest); |
87 | int test__thread_map_synthesize(struct test *test, int subtest); | |
88 | int test__thread_map_remove(struct test *test, int subtest); | |
89 | int test__cpu_map_synthesize(struct test *test, int subtest); | |
90 | int test__synthesize_stat_config(struct test *test, int subtest); | |
91 | int test__synthesize_stat(struct test *test, int subtest); | |
92 | int test__synthesize_stat_round(struct test *test, int subtest); | |
93 | int test__event_update(struct test *test, int subtest); | |
94 | int test__event_times(struct test *test, int subtest); | |
95 | int test__backward_ring_buffer(struct test *test, int subtest); | |
96 | int test__cpu_map_print(struct test *test, int subtest); | |
97 | int test__sdt_event(struct test *test, int subtest); | |
98 | int test__is_printable_array(struct test *test, int subtest); | |
99 | int test__bitmap_print(struct test *test, int subtest); | |
100 | int test__perf_hooks(struct test *test, int subtest); | |
101 | int test__clang(struct test *test, int subtest); | |
00b86691 WN |
102 | const char *test__clang_subtest_get_desc(int subtest); |
103 | int test__clang_subtest_get_nr(void); | |
81f17c90 | 104 | int test__unit_number__scnprint(struct test *test, int subtest); |
d3b59a38 | 105 | |
598762cf JO |
106 | bool test__bp_signal_is_supported(void); |
107 | ||
d8b167f9 | 108 | #if defined(__arm__) || defined(__aarch64__) |
9ff125d1 | 109 | #ifdef HAVE_DWARF_UNWIND_SUPPORT |
aa16b81f JO |
110 | struct thread; |
111 | struct perf_sample; | |
112 | int test__arch_unwind_sample(struct perf_sample *sample, | |
113 | struct thread *thread); | |
114 | #endif | |
115 | #endif | |
0a4e1ae6 | 116 | #endif /* TESTS_H */ |