~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/perf/tests/tests.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /tools/perf/tests/tests.h (Version linux-6.12-rc7) and /tools/perf/tests/tests.h (Version linux-5.12.19)


  1 /* SPDX-License-Identifier: GPL-2.0 */              1 /* SPDX-License-Identifier: GPL-2.0 */
  2 #ifndef TESTS_H                                     2 #ifndef TESTS_H
  3 #define TESTS_H                                     3 #define TESTS_H
  4                                                     4 
  5 #include <stdbool.h>                                5 #include <stdbool.h>
  6                                                     6 
  7 enum {                                         << 
  8         TEST_OK   =  0,                        << 
  9         TEST_FAIL = -1,                        << 
 10         TEST_SKIP = -2,                        << 
 11 };                                             << 
 12                                                << 
 13 #define TEST_ASSERT_VAL(text, cond)                 7 #define TEST_ASSERT_VAL(text, cond)                                      \
 14 do {                                                8 do {                                                                     \
 15         if (!(cond)) {                              9         if (!(cond)) {                                                   \
 16                 pr_debug("FAILED %s:%d %s\n",      10                 pr_debug("FAILED %s:%d %s\n", __FILE__, __LINE__, text); \
 17                 return TEST_FAIL;              !!  11                 return -1;                                               \
 18         }                                          12         }                                                                \
 19 } while (0)                                        13 } while (0)
 20                                                    14 
 21 #define TEST_ASSERT_EQUAL(text, val, expected)     15 #define TEST_ASSERT_EQUAL(text, val, expected)                           \
 22 do {                                               16 do {                                                                     \
 23         if (val != expected) {                     17         if (val != expected) {                                           \
 24                 pr_debug("FAILED %s:%d %s (%d      18                 pr_debug("FAILED %s:%d %s (%d != %d)\n",                 \
 25                          __FILE__, __LINE__, t     19                          __FILE__, __LINE__, text, val, expected);       \
 26                 return TEST_FAIL;              !!  20                 return -1;                                               \
 27         }                                          21         }                                                                \
 28 } while (0)                                        22 } while (0)
 29                                                    23 
 30 struct test_suite;                             !!  24 enum {
 31                                                !!  25         TEST_OK   =  0,
 32 typedef int (*test_fnptr)(struct test_suite *, !!  26         TEST_FAIL = -1,
 33                                                !!  27         TEST_SKIP = -2,
 34 struct test_case {                             << 
 35         const char *name;                      << 
 36         const char *desc;                      << 
 37         const char *skip_reason;               << 
 38         test_fnptr run_case;                   << 
 39 };                                                 28 };
 40                                                    29 
 41 struct test_suite {                            !!  30 struct test {
 42         const char *desc;                          31         const char *desc;
 43         struct test_case *test_cases;          !!  32         int (*func)(struct test *test, int subtest);
                                                   >>  33         struct {
                                                   >>  34                 bool skip_if_fail;
                                                   >>  35                 int (*get_nr)(void);
                                                   >>  36                 const char *(*get_desc)(int subtest);
                                                   >>  37                 const char *(*skip_reason)(int subtest);
                                                   >>  38         } subtest;
                                                   >>  39         bool (*is_supported)(void);
 44         void *priv;                                40         void *priv;
 45 };                                                 41 };
 46                                                    42 
 47 #define DECLARE_SUITE(name) \                  << 
 48         extern struct test_suite suite__##name << 
 49                                                << 
 50 #define TEST_CASE(description, _name)          << 
 51         {                                      << 
 52                 .name = #_name,                << 
 53                 .desc = description,           << 
 54                 .run_case = test__##_name,     << 
 55         }                                      << 
 56                                                << 
 57 #define TEST_CASE_REASON(description, _name, _ << 
 58         {                                      << 
 59                 .name = #_name,                << 
 60                 .desc = description,           << 
 61                 .run_case = test__##_name,     << 
 62                 .skip_reason = _reason,        << 
 63         }                                      << 
 64                                                << 
 65 #define DEFINE_SUITE(description, _name)       << 
 66         struct test_case tests__##_name[] = {  << 
 67                 TEST_CASE(description, _name), << 
 68                 {       .name = NULL, }        << 
 69         };                                     << 
 70         struct test_suite suite__##_name = {   << 
 71                 .desc = description,           << 
 72                 .test_cases = tests__##_name,  << 
 73         }                                      << 
 74                                                << 
 75 /* Tests */                                        43 /* Tests */
 76 DECLARE_SUITE(vmlinux_matches_kallsyms);       !!  44 int test__vmlinux_matches_kallsyms(struct test *test, int subtest);
 77 DECLARE_SUITE(openat_syscall_event);           !!  45 int test__openat_syscall_event(struct test *test, int subtest);
 78 DECLARE_SUITE(openat_syscall_event_on_all_cpus !!  46 int test__openat_syscall_event_on_all_cpus(struct test *test, int subtest);
 79 DECLARE_SUITE(basic_mmap);                     !!  47 int test__basic_mmap(struct test *test, int subtest);
 80 DECLARE_SUITE(PERF_RECORD);                    !!  48 int test__PERF_RECORD(struct test *test, int subtest);
 81 DECLARE_SUITE(perf_evsel__roundtrip_name_test) !!  49 int test__perf_evsel__roundtrip_name_test(struct test *test, int subtest);
 82 DECLARE_SUITE(perf_evsel__tp_sched_test);      !!  50 int test__perf_evsel__tp_sched_test(struct test *test, int subtest);
 83 DECLARE_SUITE(syscall_openat_tp_fields);       !!  51 int test__syscall_openat_tp_fields(struct test *test, int subtest);
 84 DECLARE_SUITE(pmu);                            !!  52 int test__pmu(struct test *test, int subtest);
 85 DECLARE_SUITE(pmu_events);                     !!  53 int test__pmu_events(struct test *test, int subtest);
 86 DECLARE_SUITE(attr);                           !!  54 const char *test__pmu_events_subtest_get_desc(int subtest);
 87 DECLARE_SUITE(dso_data);                       !!  55 const char *test__pmu_events_subtest_skip_reason(int subtest);
 88 DECLARE_SUITE(dso_data_cache);                 !!  56 int test__pmu_events_subtest_get_nr(void);
 89 DECLARE_SUITE(dso_data_reopen);                !!  57 int test__attr(struct test *test, int subtest);
 90 DECLARE_SUITE(parse_events);                   !!  58 int test__dso_data(struct test *test, int subtest);
 91 DECLARE_SUITE(hists_link);                     !!  59 int test__dso_data_cache(struct test *test, int subtest);
 92 DECLARE_SUITE(python_use);                     !!  60 int test__dso_data_reopen(struct test *test, int subtest);
 93 DECLARE_SUITE(bp_signal);                      !!  61 int test__parse_events(struct test *test, int subtest);
 94 DECLARE_SUITE(bp_signal_overflow);             !!  62 int test__hists_link(struct test *test, int subtest);
 95 DECLARE_SUITE(bp_accounting);                  !!  63 int test__python_use(struct test *test, int subtest);
 96 DECLARE_SUITE(wp);                             !!  64 int test__bp_signal(struct test *test, int subtest);
 97 DECLARE_SUITE(task_exit);                      !!  65 int test__bp_signal_overflow(struct test *test, int subtest);
 98 DECLARE_SUITE(mem);                            !!  66 int test__bp_accounting(struct test *test, int subtest);
 99 DECLARE_SUITE(sw_clock_freq);                  !!  67 int test__wp(struct test *test, int subtest);
100 DECLARE_SUITE(code_reading);                   !!  68 const char *test__wp_subtest_get_desc(int subtest);
101 DECLARE_SUITE(sample_parsing);                 !!  69 const char *test__wp_subtest_skip_reason(int subtest);
102 DECLARE_SUITE(keep_tracking);                  !!  70 int test__wp_subtest_get_nr(void);
103 DECLARE_SUITE(parse_no_sample_id_all);         !!  71 int test__task_exit(struct test *test, int subtest);
104 DECLARE_SUITE(dwarf_unwind);                   !!  72 int test__mem(struct test *test, int subtest);
105 DECLARE_SUITE(expr);                           !!  73 int test__sw_clock_freq(struct test *test, int subtest);
106 DECLARE_SUITE(hists_filter);                   !!  74 int test__code_reading(struct test *test, int subtest);
107 DECLARE_SUITE(mmap_thread_lookup);             !!  75 int test__sample_parsing(struct test *test, int subtest);
108 DECLARE_SUITE(thread_maps_share);              !!  76 int test__keep_tracking(struct test *test, int subtest);
109 DECLARE_SUITE(hists_output);                   !!  77 int test__parse_no_sample_id_all(struct test *test, int subtest);
110 DECLARE_SUITE(hists_cumulate);                 !!  78 int test__dwarf_unwind(struct test *test, int subtest);
111 DECLARE_SUITE(switch_tracking);                !!  79 int test__expr(struct test *test, int subtest);
112 DECLARE_SUITE(fdarray__filter);                !!  80 int test__hists_filter(struct test *test, int subtest);
113 DECLARE_SUITE(fdarray__add);                   !!  81 int test__mmap_thread_lookup(struct test *test, int subtest);
114 DECLARE_SUITE(kmod_path__parse);               !!  82 int test__thread_maps_share(struct test *test, int subtest);
115 DECLARE_SUITE(thread_map);                     !!  83 int test__hists_output(struct test *test, int subtest);
116 DECLARE_SUITE(bpf);                            !!  84 int test__hists_cumulate(struct test *test, int subtest);
117 DECLARE_SUITE(session_topology);               !!  85 int test__switch_tracking(struct test *test, int subtest);
118 DECLARE_SUITE(thread_map_synthesize);          !!  86 int test__fdarray__filter(struct test *test, int subtest);
119 DECLARE_SUITE(thread_map_remove);              !!  87 int test__fdarray__add(struct test *test, int subtest);
120 DECLARE_SUITE(cpu_map);                        !!  88 int test__kmod_path__parse(struct test *test, int subtest);
121 DECLARE_SUITE(synthesize_stat_config);         !!  89 int test__thread_map(struct test *test, int subtest);
122 DECLARE_SUITE(synthesize_stat);                !!  90 int test__llvm(struct test *test, int subtest);
123 DECLARE_SUITE(synthesize_stat_round);          !!  91 const char *test__llvm_subtest_get_desc(int subtest);
124 DECLARE_SUITE(event_update);                   !!  92 int test__llvm_subtest_get_nr(void);
125 DECLARE_SUITE(event_times);                    !!  93 int test__bpf(struct test *test, int subtest);
126 DECLARE_SUITE(backward_ring_buffer);           !!  94 const char *test__bpf_subtest_get_desc(int subtest);
127 DECLARE_SUITE(sdt_event);                      !!  95 int test__bpf_subtest_get_nr(void);
128 DECLARE_SUITE(is_printable_array);             !!  96 int test__session_topology(struct test *test, int subtest);
129 DECLARE_SUITE(bitmap_print);                   !!  97 int test__thread_map_synthesize(struct test *test, int subtest);
130 DECLARE_SUITE(perf_hooks);                     !!  98 int test__thread_map_remove(struct test *test, int subtest);
131 DECLARE_SUITE(unit_number__scnprint);          !!  99 int test__cpu_map_synthesize(struct test *test, int subtest);
132 DECLARE_SUITE(mem2node);                       !! 100 int test__synthesize_stat_config(struct test *test, int subtest);
133 DECLARE_SUITE(maps__merge_in);                 !! 101 int test__synthesize_stat(struct test *test, int subtest);
134 DECLARE_SUITE(time_utils);                     !! 102 int test__synthesize_stat_round(struct test *test, int subtest);
135 DECLARE_SUITE(jit_write_elf);                  !! 103 int test__event_update(struct test *test, int subtest);
136 DECLARE_SUITE(api_io);                         !! 104 int test__event_times(struct test *test, int subtest);
137 DECLARE_SUITE(demangle_java);                  !! 105 int test__backward_ring_buffer(struct test *test, int subtest);
138 DECLARE_SUITE(demangle_ocaml);                 !! 106 int test__cpu_map_print(struct test *test, int subtest);
139 DECLARE_SUITE(pfm);                            !! 107 int test__cpu_map_merge(struct test *test, int subtest);
140 DECLARE_SUITE(parse_metric);                   !! 108 int test__sdt_event(struct test *test, int subtest);
141 DECLARE_SUITE(pe_file_parsing);                !! 109 int test__is_printable_array(struct test *test, int subtest);
142 DECLARE_SUITE(expand_cgroup_events);           !! 110 int test__bitmap_print(struct test *test, int subtest);
143 DECLARE_SUITE(perf_time_to_tsc);               !! 111 int test__perf_hooks(struct test *test, int subtest);
144 DECLARE_SUITE(dlfilter);                       !! 112 int test__clang(struct test *test, int subtest);
145 DECLARE_SUITE(sigtrap);                        !! 113 const char *test__clang_subtest_get_desc(int subtest);
146 DECLARE_SUITE(event_groups);                   !! 114 int test__clang_subtest_get_nr(void);
147 DECLARE_SUITE(symbols);                        !! 115 int test__unit_number__scnprint(struct test *test, int subtest);
148 DECLARE_SUITE(util);                           !! 116 int test__mem2node(struct test *t, int subtest);
149                                                !! 117 int test__maps__merge_in(struct test *t, int subtest);
150 /*                                             !! 118 int test__time_utils(struct test *t, int subtest);
151  * PowerPC and S390 do not support creation of !! 119 int test__jit_write_elf(struct test *test, int subtest);
152  * perf_event interface.                       !! 120 int test__api_io(struct test *test, int subtest);
153  *                                             !! 121 int test__demangle_java(struct test *test, int subtest);
154  * ARM requires explicit rounding down of the  !! 122 int test__demangle_ocaml(struct test *test, int subtest);
155  * and then requires the single-step to be han !! 123 int test__pfm(struct test *test, int subtest);
156  * handler to avoid stepping into the SIGIO ha !! 124 const char *test__pfm_subtest_get_desc(int subtest);
157  * breakpointed instruction.                   !! 125 int test__pfm_subtest_get_nr(void);
158  *                                             !! 126 int test__parse_metric(struct test *test, int subtest);
159  * Since arm64 has the same issue with arm for !! 127 int test__pe_file_parsing(struct test *test, int subtest);
160  * case also gets stuck on the breakpointed in !! 128 int test__expand_cgroup_events(struct test *test, int subtest);
161  *                                             !! 129 int test__perf_time_to_tsc(struct test *test, int subtest);
162  * Just disable the test for these architectur !! 130 
163  * resolved.                                   !! 131 bool test__bp_signal_is_supported(void);
164  */                                            !! 132 bool test__bp_account_is_supported(void);
165 #if defined(__powerpc__) || defined(__s390x__) !! 133 bool test__wp_is_supported(void);
166 #define BP_SIGNAL_IS_SUPPORTED 0               !! 134 bool test__tsc_is_supported(void);
167 #else                                          << 
168 #define BP_SIGNAL_IS_SUPPORTED 1               << 
169 #endif                                         << 
170                                                   135 
                                                   >> 136 #if defined(__arm__) || defined(__aarch64__)
171 #ifdef HAVE_DWARF_UNWIND_SUPPORT                  137 #ifdef HAVE_DWARF_UNWIND_SUPPORT
172 struct thread;                                    138 struct thread;
173 struct perf_sample;                               139 struct perf_sample;
174 int test__arch_unwind_sample(struct perf_sampl    140 int test__arch_unwind_sample(struct perf_sample *sample,
175                              struct thread *th    141                              struct thread *thread);
176 #endif                                            142 #endif
                                                   >> 143 #endif
177                                                   144 
178 #if defined(__arm__)                              145 #if defined(__arm__)
179 DECLARE_SUITE(vectors_page);                   !! 146 int test__vectors_page(struct test *test, int subtest);
180 #endif                                            147 #endif
181                                                << 
182 /*                                             << 
183  * Define test workloads to be used in test su << 
184  */                                            << 
185 typedef int (*workload_fnptr)(int argc, const  << 
186                                                << 
187 struct test_workload {                         << 
188         const char      *name;                 << 
189         workload_fnptr  func;                  << 
190 };                                             << 
191                                                << 
192 #define DECLARE_WORKLOAD(work) \               << 
193         extern struct test_workload workload__ << 
194                                                << 
195 #define DEFINE_WORKLOAD(work) \                << 
196 struct test_workload workload__##work = {      << 
197         .name = #work,                         << 
198         .func = work,                          << 
199 }                                              << 
200                                                << 
201 /* The list of test workloads */               << 
202 DECLARE_WORKLOAD(noploop);                     << 
203 DECLARE_WORKLOAD(thloop);                      << 
204 DECLARE_WORKLOAD(leafloop);                    << 
205 DECLARE_WORKLOAD(sqrtloop);                    << 
206 DECLARE_WORKLOAD(brstack);                     << 
207 DECLARE_WORKLOAD(datasym);                     << 
208 DECLARE_WORKLOAD(landlock);                    << 
209                                                << 
210 extern const char *dso_to_test;                << 
211 extern const char *test_objdump_path;          << 
212                                                   148 
213 #endif /* TESTS_H */                              149 #endif /* TESTS_H */
214                                                   150 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php