~ [ 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.4.302)


  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>                           << 
  6                                                << 
  7 enum {                                         << 
  8         TEST_OK   =  0,                        << 
  9         TEST_FAIL = -1,                        << 
 10         TEST_SKIP = -2,                        << 
 11 };                                             << 
 12                                                << 
 13 #define TEST_ASSERT_VAL(text, cond)                 4 #define TEST_ASSERT_VAL(text, cond)                                      \
 14 do {                                                5 do {                                                                     \
 15         if (!(cond)) {                              6         if (!(cond)) {                                                   \
 16                 pr_debug("FAILED %s:%d %s\n",       7                 pr_debug("FAILED %s:%d %s\n", __FILE__, __LINE__, text); \
 17                 return TEST_FAIL;              !!   8                 return -1;                                               \
 18         }                                           9         }                                                                \
 19 } while (0)                                        10 } while (0)
 20                                                    11 
 21 #define TEST_ASSERT_EQUAL(text, val, expected)     12 #define TEST_ASSERT_EQUAL(text, val, expected)                           \
 22 do {                                               13 do {                                                                     \
 23         if (val != expected) {                     14         if (val != expected) {                                           \
 24                 pr_debug("FAILED %s:%d %s (%d      15                 pr_debug("FAILED %s:%d %s (%d != %d)\n",                 \
 25                          __FILE__, __LINE__, t     16                          __FILE__, __LINE__, text, val, expected);       \
 26                 return TEST_FAIL;              !!  17                 return -1;                                               \
 27         }                                          18         }                                                                \
 28 } while (0)                                        19 } while (0)
 29                                                    20 
 30 struct test_suite;                             !!  21 enum {
 31                                                !!  22         TEST_OK   =  0,
 32 typedef int (*test_fnptr)(struct test_suite *, !!  23         TEST_FAIL = -1,
 33                                                !!  24         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 };                                                 25 };
 40                                                    26 
 41 struct test_suite {                            !!  27 struct test {
 42         const char *desc;                          28         const char *desc;
 43         struct test_case *test_cases;          !!  29         int (*func)(void);
 44         void *priv;                            << 
 45 };                                                 30 };
 46                                                    31 
 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 */                                        32 /* Tests */
 76 DECLARE_SUITE(vmlinux_matches_kallsyms);       !!  33 int test__vmlinux_matches_kallsyms(void);
 77 DECLARE_SUITE(openat_syscall_event);           !!  34 int test__openat_syscall_event(void);
 78 DECLARE_SUITE(openat_syscall_event_on_all_cpus !!  35 int test__openat_syscall_event_on_all_cpus(void);
 79 DECLARE_SUITE(basic_mmap);                     !!  36 int test__basic_mmap(void);
 80 DECLARE_SUITE(PERF_RECORD);                    !!  37 int test__PERF_RECORD(void);
 81 DECLARE_SUITE(perf_evsel__roundtrip_name_test) !!  38 int test__perf_evsel__roundtrip_name_test(void);
 82 DECLARE_SUITE(perf_evsel__tp_sched_test);      !!  39 int test__perf_evsel__tp_sched_test(void);
 83 DECLARE_SUITE(syscall_openat_tp_fields);       !!  40 int test__syscall_openat_tp_fields(void);
 84 DECLARE_SUITE(pmu);                            !!  41 int test__pmu(void);
 85 DECLARE_SUITE(pmu_events);                     !!  42 int test__attr(void);
 86 DECLARE_SUITE(attr);                           !!  43 int test__dso_data(void);
 87 DECLARE_SUITE(dso_data);                       !!  44 int test__dso_data_cache(void);
 88 DECLARE_SUITE(dso_data_cache);                 !!  45 int test__dso_data_reopen(void);
 89 DECLARE_SUITE(dso_data_reopen);                !!  46 int test__parse_events(void);
 90 DECLARE_SUITE(parse_events);                   !!  47 int test__hists_link(void);
 91 DECLARE_SUITE(hists_link);                     !!  48 int test__python_use(void);
 92 DECLARE_SUITE(python_use);                     !!  49 int test__bp_signal(void);
 93 DECLARE_SUITE(bp_signal);                      !!  50 int test__bp_signal_overflow(void);
 94 DECLARE_SUITE(bp_signal_overflow);             !!  51 int test__task_exit(void);
 95 DECLARE_SUITE(bp_accounting);                  !!  52 int test__sw_clock_freq(void);
 96 DECLARE_SUITE(wp);                             !!  53 int test__code_reading(void);
 97 DECLARE_SUITE(task_exit);                      !!  54 int test__sample_parsing(void);
 98 DECLARE_SUITE(mem);                            !!  55 int test__keep_tracking(void);
 99 DECLARE_SUITE(sw_clock_freq);                  !!  56 int test__parse_no_sample_id_all(void);
100 DECLARE_SUITE(code_reading);                   !!  57 int test__dwarf_unwind(void);
101 DECLARE_SUITE(sample_parsing);                 !!  58 int test__hists_filter(void);
102 DECLARE_SUITE(keep_tracking);                  !!  59 int test__mmap_thread_lookup(void);
103 DECLARE_SUITE(parse_no_sample_id_all);         !!  60 int test__thread_mg_share(void);
104 DECLARE_SUITE(dwarf_unwind);                   !!  61 int test__hists_output(void);
105 DECLARE_SUITE(expr);                           !!  62 int test__hists_cumulate(void);
106 DECLARE_SUITE(hists_filter);                   !!  63 int test__switch_tracking(void);
107 DECLARE_SUITE(mmap_thread_lookup);             !!  64 int test__fdarray__filter(void);
108 DECLARE_SUITE(thread_maps_share);              !!  65 int test__fdarray__add(void);
109 DECLARE_SUITE(hists_output);                   !!  66 int test__kmod_path__parse(void);
110 DECLARE_SUITE(hists_cumulate);                 !!  67 int test__thread_map(void);
111 DECLARE_SUITE(switch_tracking);                !!  68 int test__llvm(void);
112 DECLARE_SUITE(fdarray__filter);                !!  69 int test__bpf(void);
113 DECLARE_SUITE(fdarray__add);                   !!  70 int test_session_topology(void);
114 DECLARE_SUITE(kmod_path__parse);               << 
115 DECLARE_SUITE(thread_map);                     << 
116 DECLARE_SUITE(bpf);                            << 
117 DECLARE_SUITE(session_topology);               << 
118 DECLARE_SUITE(thread_map_synthesize);          << 
119 DECLARE_SUITE(thread_map_remove);              << 
120 DECLARE_SUITE(cpu_map);                        << 
121 DECLARE_SUITE(synthesize_stat_config);         << 
122 DECLARE_SUITE(synthesize_stat);                << 
123 DECLARE_SUITE(synthesize_stat_round);          << 
124 DECLARE_SUITE(event_update);                   << 
125 DECLARE_SUITE(event_times);                    << 
126 DECLARE_SUITE(backward_ring_buffer);           << 
127 DECLARE_SUITE(sdt_event);                      << 
128 DECLARE_SUITE(is_printable_array);             << 
129 DECLARE_SUITE(bitmap_print);                   << 
130 DECLARE_SUITE(perf_hooks);                     << 
131 DECLARE_SUITE(unit_number__scnprint);          << 
132 DECLARE_SUITE(mem2node);                       << 
133 DECLARE_SUITE(maps__merge_in);                 << 
134 DECLARE_SUITE(time_utils);                     << 
135 DECLARE_SUITE(jit_write_elf);                  << 
136 DECLARE_SUITE(api_io);                         << 
137 DECLARE_SUITE(demangle_java);                  << 
138 DECLARE_SUITE(demangle_ocaml);                 << 
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                                                    71 
                                                   >>  72 #if defined(__arm__) || defined(__aarch64__)
171 #ifdef HAVE_DWARF_UNWIND_SUPPORT                   73 #ifdef HAVE_DWARF_UNWIND_SUPPORT
172 struct thread;                                     74 struct thread;
173 struct perf_sample;                                75 struct perf_sample;
174 int test__arch_unwind_sample(struct perf_sampl     76 int test__arch_unwind_sample(struct perf_sample *sample,
175                              struct thread *th     77                              struct thread *thread);
176 #endif                                             78 #endif
177                                                << 
178 #if defined(__arm__)                           << 
179 DECLARE_SUITE(vectors_page);                   << 
180 #endif                                             79 #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 */                               80 #endif /* TESTS_H */
214                                                    81 

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