~ [ 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-4.12.14)


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

~ [ 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