mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-18 10:13:57 +08:00
perf test: Add 'struct test *' to the test functions
This way we'll be able to pass more test specific parameters without having to change this function signature. Will be used by the upcoming 'shell tests', shell scripts that will call perf tools and check if they work as expected, comparing its effects on the system (think 'perf probe foo') the output produced, etc. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Michael Petlan <mpetlan@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Thomas Richter <tmricht@linux.vnet.ibm.com> Cc: Wang Nan <wangnan0@huawei.com> Link: http://lkml.kernel.org/n/tip-wq250w7j1opbzyiynozuajbl@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
28765bf263
commit
81f17c90f1
@ -1,11 +1,14 @@
|
||||
#ifndef ARCH_TESTS_H
|
||||
#define ARCH_TESTS_H
|
||||
|
||||
#include <linux/compiler.h>
|
||||
struct test;
|
||||
|
||||
/* Tests */
|
||||
int test__rdpmc(int subtest);
|
||||
int test__perf_time_to_tsc(int subtest);
|
||||
int test__insn_x86(int subtest);
|
||||
int test__intel_cqm_count_nmi_context(int subtest);
|
||||
int test__rdpmc(struct test *test __maybe_unused, int subtest);
|
||||
int test__perf_time_to_tsc(struct test *test __maybe_unused, int subtest);
|
||||
int test__insn_x86(struct test *test __maybe_unused, int subtest);
|
||||
int test__intel_cqm_count_nmi_context(struct test *test __maybe_unused, int subtest);
|
||||
|
||||
#ifdef HAVE_DWARF_UNWIND_SUPPORT
|
||||
struct thread;
|
||||
|
@ -171,7 +171,7 @@ static int test_data_set(struct test_data *dat_set, int x86_64)
|
||||
* verbose (-v) option to see all the instructions and whether or not they
|
||||
* decoded successfuly.
|
||||
*/
|
||||
int test__insn_x86(int subtest __maybe_unused)
|
||||
int test__insn_x86(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
|
@ -36,7 +36,7 @@ static pid_t spawn(void)
|
||||
* the last read counter value to avoid triggering a WARN_ON_ONCE() in
|
||||
* smp_call_function_many() caused by sending IPIs from NMI context.
|
||||
*/
|
||||
int test__intel_cqm_count_nmi_context(int subtest __maybe_unused)
|
||||
int test__intel_cqm_count_nmi_context(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct perf_evlist *evlist = NULL;
|
||||
struct perf_evsel *evsel = NULL;
|
||||
|
@ -37,7 +37,7 @@
|
||||
* %0 is returned, otherwise %-1 is returned. If TSC conversion is not
|
||||
* supported then then the test passes but " (not supported)" is printed.
|
||||
*/
|
||||
int test__perf_time_to_tsc(int subtest __maybe_unused)
|
||||
int test__perf_time_to_tsc(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct record_opts opts = {
|
||||
.mmap_pages = UINT_MAX,
|
||||
|
@ -154,7 +154,7 @@ out_close:
|
||||
return 0;
|
||||
}
|
||||
|
||||
int test__rdpmc(int subtest __maybe_unused)
|
||||
int test__rdpmc(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int status = 0;
|
||||
int wret = 0;
|
||||
|
@ -169,7 +169,7 @@ static int run_dir(const char *d, const char *perf)
|
||||
return system(cmd);
|
||||
}
|
||||
|
||||
int test__attr(int subtest __maybe_unused)
|
||||
int test__attr(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct stat st;
|
||||
char path_perf[PATH_MAX];
|
||||
|
@ -75,7 +75,7 @@ static int do_test(struct perf_evlist *evlist, int mmap_pages,
|
||||
}
|
||||
|
||||
|
||||
int test__backward_ring_buffer(int subtest __maybe_unused)
|
||||
int test__backward_ring_buffer(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int ret = TEST_SKIP, err, sample_count = 0, comm_count = 0;
|
||||
char pid[16], sbuf[STRERR_BUFSIZE];
|
||||
|
@ -40,7 +40,7 @@ static int test_bitmap(const char *str)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int test__bitmap_print(int subtest __maybe_unused)
|
||||
int test__bitmap_print(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
TEST_ASSERT_VAL("failed to convert map", test_bitmap("1"));
|
||||
TEST_ASSERT_VAL("failed to convert map", test_bitmap("1,5"));
|
||||
|
@ -164,7 +164,7 @@ static long long bp_count(int fd)
|
||||
return count;
|
||||
}
|
||||
|
||||
int test__bp_signal(int subtest __maybe_unused)
|
||||
int test__bp_signal(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct sigaction sa;
|
||||
long long count1, count2, count3;
|
||||
|
@ -57,7 +57,7 @@ static long long bp_count(int fd)
|
||||
#define EXECUTIONS 10000
|
||||
#define THRESHOLD 100
|
||||
|
||||
int test__bp_signal_overflow(int subtest __maybe_unused)
|
||||
int test__bp_signal_overflow(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct perf_event_attr pe;
|
||||
struct sigaction sa;
|
||||
|
@ -321,7 +321,7 @@ static int check_env(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int test__bpf(int i)
|
||||
int test__bpf(struct test *test __maybe_unused, int i)
|
||||
{
|
||||
int err;
|
||||
|
||||
@ -351,7 +351,7 @@ const char *test__bpf_subtest_get_desc(int i __maybe_unused)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int test__bpf(int i __maybe_unused)
|
||||
int test__bpf(struct test *test __maybe_unused, int i __maybe_unused)
|
||||
{
|
||||
pr_debug("Skip BPF test because BPF support is not compiled\n");
|
||||
return TEST_SKIP;
|
||||
|
@ -179,7 +179,7 @@ static struct test generic_tests[] = {
|
||||
},
|
||||
{
|
||||
.desc = "Session topology",
|
||||
.func = test_session_topology,
|
||||
.func = test__session_topology,
|
||||
},
|
||||
{
|
||||
.desc = "BPF filter",
|
||||
@ -325,7 +325,7 @@ static int run_test(struct test *test, int subtest)
|
||||
}
|
||||
}
|
||||
|
||||
err = test->func(subtest);
|
||||
err = test->func(test, subtest);
|
||||
if (!dont_fork)
|
||||
exit(err);
|
||||
}
|
||||
|
@ -33,12 +33,12 @@ const char *test__clang_subtest_get_desc(int i)
|
||||
}
|
||||
|
||||
#ifndef HAVE_LIBCLANGLLVM_SUPPORT
|
||||
int test__clang(int i __maybe_unused)
|
||||
int test__clang(struct test *test __maybe_unused, int i __maybe_unused)
|
||||
{
|
||||
return TEST_SKIP;
|
||||
}
|
||||
#else
|
||||
int test__clang(int i)
|
||||
int test__clang(struct test *test __maybe_unused, int i)
|
||||
{
|
||||
if (i < 0 || i >= (int)ARRAY_SIZE(clang_testcase_table))
|
||||
return TEST_FAIL;
|
||||
|
@ -673,7 +673,7 @@ out_err:
|
||||
return err;
|
||||
}
|
||||
|
||||
int test__code_reading(int subtest __maybe_unused)
|
||||
int test__code_reading(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int ret;
|
||||
|
||||
|
@ -72,7 +72,7 @@ static int process_event_cpus(struct perf_tool *tool __maybe_unused,
|
||||
}
|
||||
|
||||
|
||||
int test__cpu_map_synthesize(int subtest __maybe_unused)
|
||||
int test__cpu_map_synthesize(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct cpu_map *cpus;
|
||||
|
||||
@ -106,7 +106,7 @@ static int cpu_map_print(const char *str)
|
||||
return !strcmp(buf, str);
|
||||
}
|
||||
|
||||
int test__cpu_map_print(int subtest __maybe_unused)
|
||||
int test__cpu_map_print(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
TEST_ASSERT_VAL("failed to convert map", cpu_map_print("1"));
|
||||
TEST_ASSERT_VAL("failed to convert map", cpu_map_print("1,5"));
|
||||
|
@ -112,7 +112,7 @@ static int dso__data_fd(struct dso *dso, struct machine *machine)
|
||||
return fd;
|
||||
}
|
||||
|
||||
int test__dso_data(int subtest __maybe_unused)
|
||||
int test__dso_data(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct machine machine;
|
||||
struct dso *dso;
|
||||
@ -247,7 +247,7 @@ static int set_fd_limit(int n)
|
||||
return setrlimit(RLIMIT_NOFILE, &rlim);
|
||||
}
|
||||
|
||||
int test__dso_data_cache(int subtest __maybe_unused)
|
||||
int test__dso_data_cache(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct machine machine;
|
||||
long nr_end, nr = open_files_cnt();
|
||||
@ -307,7 +307,7 @@ int test__dso_data_cache(int subtest __maybe_unused)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int test__dso_data_reopen(int subtest __maybe_unused)
|
||||
int test__dso_data_reopen(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct machine machine;
|
||||
long nr_end, nr = open_files_cnt();
|
||||
|
@ -154,7 +154,7 @@ static noinline int krava_1(struct thread *thread)
|
||||
return krava_2(thread);
|
||||
}
|
||||
|
||||
int test__dwarf_unwind(int subtest __maybe_unused)
|
||||
int test__dwarf_unwind(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct machine *machine;
|
||||
struct thread *thread;
|
||||
|
@ -213,7 +213,7 @@ out_err:
|
||||
* and checks that enabled and running times
|
||||
* match.
|
||||
*/
|
||||
int test__event_times(int subtest __maybe_unused)
|
||||
int test__event_times(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int err, ret = 0;
|
||||
|
||||
|
@ -76,7 +76,7 @@ static int process_event_cpus(struct perf_tool *tool __maybe_unused,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int test__event_update(int subtest __maybe_unused)
|
||||
int test__event_update(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct perf_evlist *evlist;
|
||||
struct perf_evsel *evsel;
|
||||
|
@ -97,7 +97,7 @@ out_delete_evlist:
|
||||
#define perf_evsel__name_array_test(names) \
|
||||
__perf_evsel__name_array_test(names, ARRAY_SIZE(names))
|
||||
|
||||
int test__perf_evsel__roundtrip_name_test(int subtest __maybe_unused)
|
||||
int test__perf_evsel__roundtrip_name_test(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int err = 0, ret = 0;
|
||||
|
||||
|
@ -32,7 +32,7 @@ static int perf_evsel__test_field(struct perf_evsel *evsel, const char *name,
|
||||
return ret;
|
||||
}
|
||||
|
||||
int test__perf_evsel__tp_sched_test(int subtest __maybe_unused)
|
||||
int test__perf_evsel__tp_sched_test(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct perf_evsel *evsel = perf_evsel__newtp("sched", "sched_switch");
|
||||
int ret = 0;
|
||||
|
@ -13,7 +13,7 @@ static int test(struct parse_ctx *ctx, const char *e, double val2)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int test__expr(int subtest __maybe_unused)
|
||||
int test__expr(struct test *t __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
const char *p;
|
||||
const char **other;
|
||||
|
@ -26,7 +26,7 @@ static int fdarray__fprintf_prefix(struct fdarray *fda, const char *prefix, FILE
|
||||
return printed + fdarray__fprintf(fda, fp);
|
||||
}
|
||||
|
||||
int test__fdarray__filter(int subtest __maybe_unused)
|
||||
int test__fdarray__filter(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int nr_fds, expected_fd[2], fd, err = TEST_FAIL;
|
||||
struct fdarray *fda = fdarray__new(5, 5);
|
||||
@ -104,7 +104,7 @@ out:
|
||||
return err;
|
||||
}
|
||||
|
||||
int test__fdarray__add(int subtest __maybe_unused)
|
||||
int test__fdarray__add(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int err = TEST_FAIL;
|
||||
struct fdarray *fda = fdarray__new(2, 2);
|
||||
|
@ -687,7 +687,7 @@ out:
|
||||
return err;
|
||||
}
|
||||
|
||||
int test__hists_cumulate(int subtest __maybe_unused)
|
||||
int test__hists_cumulate(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int err = TEST_FAIL;
|
||||
struct machines machines;
|
||||
|
@ -101,7 +101,7 @@ out:
|
||||
return TEST_FAIL;
|
||||
}
|
||||
|
||||
int test__hists_filter(int subtest __maybe_unused)
|
||||
int test__hists_filter(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int err = TEST_FAIL;
|
||||
struct machines machines;
|
||||
|
@ -264,7 +264,7 @@ static int validate_link(struct hists *leader, struct hists *other)
|
||||
return __validate_link(leader, 0) || __validate_link(other, 1);
|
||||
}
|
||||
|
||||
int test__hists_link(int subtest __maybe_unused)
|
||||
int test__hists_link(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int err = -1;
|
||||
struct hists *hists, *first_hists;
|
||||
|
@ -573,7 +573,7 @@ out:
|
||||
return err;
|
||||
}
|
||||
|
||||
int test__hists_output(int subtest __maybe_unused)
|
||||
int test__hists_output(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int err = TEST_FAIL;
|
||||
struct machines machines;
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include "debug.h"
|
||||
#include "print_binary.h"
|
||||
|
||||
int test__is_printable_array(int subtest __maybe_unused)
|
||||
int test__is_printable_array(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
char buf1[] = { 'k', 'r', 4, 'v', 'a', 0 };
|
||||
char buf2[] = { 'k', 'r', 'a', 'v', 4, 0 };
|
||||
|
@ -49,7 +49,7 @@ static int find_comm(struct perf_evlist *evlist, const char *comm)
|
||||
* when an event is disabled but a dummy software event is not disabled. If the
|
||||
* test passes %0 is returned, otherwise %-1 is returned.
|
||||
*/
|
||||
int test__keep_tracking(int subtest __maybe_unused)
|
||||
int test__keep_tracking(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct record_opts opts = {
|
||||
.mmap_pages = UINT_MAX,
|
||||
|
@ -50,7 +50,7 @@ static int test_is_kernel_module(const char *path, int cpumode, bool expect)
|
||||
#define M(path, c, e) \
|
||||
TEST_ASSERT_VAL("failed", !test_is_kernel_module(path, c, e))
|
||||
|
||||
int test__kmod_path__parse(int subtest __maybe_unused)
|
||||
int test__kmod_path__parse(struct test *t __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
/* path alloc_name alloc_ext kmod comp name ext */
|
||||
T("/xxxx/xxxx/x-x.ko", true , true , true, false, "[x_x]", NULL);
|
||||
|
@ -132,7 +132,7 @@ out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
int test__llvm(int subtest)
|
||||
int test__llvm(struct test *test __maybe_unused, int subtest)
|
||||
{
|
||||
int ret;
|
||||
void *obj_buf = NULL;
|
||||
|
@ -22,7 +22,7 @@
|
||||
* Then it checks if the number of syscalls reported as perf events by
|
||||
* the kernel corresponds to the number of syscalls made.
|
||||
*/
|
||||
int test__basic_mmap(int subtest __maybe_unused)
|
||||
int test__basic_mmap(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int err = -1;
|
||||
union perf_event *event;
|
||||
|
@ -221,7 +221,7 @@ static int mmap_events(synth_cb synth)
|
||||
*
|
||||
* by using all thread objects.
|
||||
*/
|
||||
int test__mmap_thread_lookup(int subtest __maybe_unused)
|
||||
int test__mmap_thread_lookup(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
/* perf_event__synthesize_threads synthesize */
|
||||
TEST_ASSERT_VAL("failed with sythesizing all",
|
||||
|
@ -16,7 +16,7 @@
|
||||
#include "debug.h"
|
||||
#include "stat.h"
|
||||
|
||||
int test__openat_syscall_event_on_all_cpus(int subtest __maybe_unused)
|
||||
int test__openat_syscall_event_on_all_cpus(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int err = -1, fd, cpu;
|
||||
struct cpu_map *cpus;
|
||||
|
@ -14,7 +14,7 @@
|
||||
#define AT_FDCWD -100
|
||||
#endif
|
||||
|
||||
int test__syscall_openat_tp_fields(int subtest __maybe_unused)
|
||||
int test__syscall_openat_tp_fields(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct record_opts opts = {
|
||||
.target = {
|
||||
|
@ -10,7 +10,7 @@
|
||||
#include "debug.h"
|
||||
#include "tests.h"
|
||||
|
||||
int test__openat_syscall_event(int subtest __maybe_unused)
|
||||
int test__openat_syscall_event(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int err = -1, fd;
|
||||
struct perf_evsel *evsel;
|
||||
|
@ -1810,7 +1810,7 @@ static int test_pmu_events(void)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int test__parse_events(int subtest __maybe_unused)
|
||||
int test__parse_events(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int ret1, ret2 = 0;
|
||||
|
||||
|
@ -68,7 +68,7 @@ struct test_attr_event {
|
||||
*
|
||||
* Return: %0 on success, %-1 if the test fails.
|
||||
*/
|
||||
int test__parse_no_sample_id_all(int subtest __maybe_unused)
|
||||
int test__parse_no_sample_id_all(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int err;
|
||||
|
||||
|
@ -27,7 +27,7 @@ static void the_hook(void *_hook_flags)
|
||||
*p = 0;
|
||||
}
|
||||
|
||||
int test__perf_hooks(int subtest __maybe_unused)
|
||||
int test__perf_hooks(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int hook_flags = 0;
|
||||
|
||||
|
@ -37,7 +37,7 @@ realloc:
|
||||
return cpu;
|
||||
}
|
||||
|
||||
int test__PERF_RECORD(int subtest __maybe_unused)
|
||||
int test__PERF_RECORD(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct record_opts opts = {
|
||||
.target = {
|
||||
|
@ -135,7 +135,7 @@ static struct list_head *test_terms_list(void)
|
||||
return &terms;
|
||||
}
|
||||
|
||||
int test__pmu(int subtest __maybe_unused)
|
||||
int test__pmu(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
char *format = test_format_dir_get();
|
||||
LIST_HEAD(formats);
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
extern int verbose;
|
||||
|
||||
int test__python_use(int subtest __maybe_unused)
|
||||
int test__python_use(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
char *cmd;
|
||||
int ret;
|
||||
|
@ -292,7 +292,7 @@ out_free:
|
||||
* checks sample format bits separately and together. If the test passes %0 is
|
||||
* returned, otherwise %-1 is returned.
|
||||
*/
|
||||
int test__sample_parsing(int subtest __maybe_unused)
|
||||
int test__sample_parsing(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
const u64 rf[] = {4, 5, 6, 7, 12, 13, 14, 15};
|
||||
u64 sample_type;
|
||||
|
@ -71,7 +71,7 @@ static int search_cached_probe(const char *target,
|
||||
return ret;
|
||||
}
|
||||
|
||||
int test__sdt_event(int subtests __maybe_unused)
|
||||
int test__sdt_event(struct test *test __maybe_unused, int subtests __maybe_unused)
|
||||
{
|
||||
int ret = TEST_FAIL;
|
||||
char __tempdir[] = "./test-buildid-XXXXXX";
|
||||
@ -109,7 +109,7 @@ error:
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
int test__sdt_event(int subtests __maybe_unused)
|
||||
int test__sdt_event(struct test *test __maybe_unused, int subtests __maybe_unused)
|
||||
{
|
||||
pr_debug("Skip SDT event test because SDT support is not compiled\n");
|
||||
return TEST_SKIP;
|
||||
|
@ -45,7 +45,7 @@ static int process_stat_config_event(struct perf_tool *tool __maybe_unused,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int test__synthesize_stat_config(int subtest __maybe_unused)
|
||||
int test__synthesize_stat_config(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct perf_stat_config stat_config = {
|
||||
.aggr_mode = AGGR_CORE,
|
||||
@ -75,7 +75,7 @@ static int process_stat_event(struct perf_tool *tool __maybe_unused,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int test__synthesize_stat(int subtest __maybe_unused)
|
||||
int test__synthesize_stat(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct perf_counts_values count;
|
||||
|
||||
@ -101,7 +101,7 @@ static int process_stat_round_event(struct perf_tool *tool __maybe_unused,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int test__synthesize_stat_round(int subtest __maybe_unused)
|
||||
int test__synthesize_stat_round(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
TEST_ASSERT_VAL("failed to synthesize stat_config",
|
||||
!perf_event__synthesize_stat_round(NULL, 0xdeadbeef, PERF_STAT_ROUND_TYPE__INTERVAL,
|
||||
|
@ -124,7 +124,7 @@ out_delete_evlist:
|
||||
return err;
|
||||
}
|
||||
|
||||
int test__sw_clock_freq(int subtest __maybe_unused)
|
||||
int test__sw_clock_freq(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int ret;
|
||||
|
||||
|
@ -306,7 +306,7 @@ out_free_nodes:
|
||||
* evsel->system_wide and evsel->tracking flags (respectively) with other events
|
||||
* sometimes enabled or disabled.
|
||||
*/
|
||||
int test__switch_tracking(int subtest __maybe_unused)
|
||||
int test__switch_tracking(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
const char *sched_switch = "sched:sched_switch";
|
||||
struct switch_tracking switch_tracking = { .tids = NULL, };
|
||||
|
@ -32,7 +32,7 @@ static void workload_exec_failed_signal(int signo __maybe_unused,
|
||||
* if the number of exit event reported by the kernel is 1 or not
|
||||
* in order to check the kernel returns correct number of event.
|
||||
*/
|
||||
int test__task_exit(int subtest __maybe_unused)
|
||||
int test__task_exit(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int err = -1;
|
||||
union perf_event *event;
|
||||
|
@ -28,7 +28,7 @@ enum {
|
||||
|
||||
struct test {
|
||||
const char *desc;
|
||||
int (*func)(int subtest);
|
||||
int (*func)(struct test *test, int subtest);
|
||||
struct {
|
||||
bool skip_if_fail;
|
||||
int (*get_nr)(void);
|
||||
@ -38,67 +38,67 @@ struct test {
|
||||
};
|
||||
|
||||
/* Tests */
|
||||
int test__vmlinux_matches_kallsyms(int subtest);
|
||||
int test__openat_syscall_event(int subtest);
|
||||
int test__openat_syscall_event_on_all_cpus(int subtest);
|
||||
int test__basic_mmap(int subtest);
|
||||
int test__PERF_RECORD(int subtest);
|
||||
int test__perf_evsel__roundtrip_name_test(int subtest);
|
||||
int test__perf_evsel__tp_sched_test(int subtest);
|
||||
int test__syscall_openat_tp_fields(int subtest);
|
||||
int test__pmu(int subtest);
|
||||
int test__attr(int subtest);
|
||||
int test__dso_data(int subtest);
|
||||
int test__dso_data_cache(int subtest);
|
||||
int test__dso_data_reopen(int subtest);
|
||||
int test__parse_events(int subtest);
|
||||
int test__hists_link(int subtest);
|
||||
int test__python_use(int subtest);
|
||||
int test__bp_signal(int subtest);
|
||||
int test__bp_signal_overflow(int subtest);
|
||||
int test__task_exit(int subtest);
|
||||
int test__sw_clock_freq(int subtest);
|
||||
int test__code_reading(int subtest);
|
||||
int test__sample_parsing(int subtest);
|
||||
int test__keep_tracking(int subtest);
|
||||
int test__parse_no_sample_id_all(int subtest);
|
||||
int test__dwarf_unwind(int subtest);
|
||||
int test__expr(int subtest);
|
||||
int test__hists_filter(int subtest);
|
||||
int test__mmap_thread_lookup(int subtest);
|
||||
int test__thread_mg_share(int subtest);
|
||||
int test__hists_output(int subtest);
|
||||
int test__hists_cumulate(int subtest);
|
||||
int test__switch_tracking(int subtest);
|
||||
int test__fdarray__filter(int subtest);
|
||||
int test__fdarray__add(int subtest);
|
||||
int test__kmod_path__parse(int subtest);
|
||||
int test__thread_map(int subtest);
|
||||
int test__llvm(int subtest);
|
||||
int test__vmlinux_matches_kallsyms(struct test *test, int subtest);
|
||||
int test__openat_syscall_event(struct test *test, int subtest);
|
||||
int test__openat_syscall_event_on_all_cpus(struct test *test, int subtest);
|
||||
int test__basic_mmap(struct test *test, int subtest);
|
||||
int test__PERF_RECORD(struct test *test, int subtest);
|
||||
int test__perf_evsel__roundtrip_name_test(struct test *test, int subtest);
|
||||
int test__perf_evsel__tp_sched_test(struct test *test, int subtest);
|
||||
int test__syscall_openat_tp_fields(struct test *test, int subtest);
|
||||
int test__pmu(struct test *test, int subtest);
|
||||
int test__attr(struct test *test, int subtest);
|
||||
int test__dso_data(struct test *test, int subtest);
|
||||
int test__dso_data_cache(struct test *test, int subtest);
|
||||
int test__dso_data_reopen(struct test *test, int subtest);
|
||||
int test__parse_events(struct test *test, int subtest);
|
||||
int test__hists_link(struct test *test, int subtest);
|
||||
int test__python_use(struct test *test, int subtest);
|
||||
int test__bp_signal(struct test *test, int subtest);
|
||||
int test__bp_signal_overflow(struct test *test, int subtest);
|
||||
int test__task_exit(struct test *test, int subtest);
|
||||
int test__sw_clock_freq(struct test *test, int subtest);
|
||||
int test__code_reading(struct test *test, int subtest);
|
||||
int test__sample_parsing(struct test *test, int subtest);
|
||||
int test__keep_tracking(struct test *test, int subtest);
|
||||
int test__parse_no_sample_id_all(struct test *test, int subtest);
|
||||
int test__dwarf_unwind(struct test *test, int subtest);
|
||||
int test__expr(struct test *test, int subtest);
|
||||
int test__hists_filter(struct test *test, int subtest);
|
||||
int test__mmap_thread_lookup(struct test *test, int subtest);
|
||||
int test__thread_mg_share(struct test *test, int subtest);
|
||||
int test__hists_output(struct test *test, int subtest);
|
||||
int test__hists_cumulate(struct test *test, int subtest);
|
||||
int test__switch_tracking(struct test *test, int subtest);
|
||||
int test__fdarray__filter(struct test *test, int subtest);
|
||||
int test__fdarray__add(struct test *test, int subtest);
|
||||
int test__kmod_path__parse(struct test *test, int subtest);
|
||||
int test__thread_map(struct test *test, int subtest);
|
||||
int test__llvm(struct test *test, int subtest);
|
||||
const char *test__llvm_subtest_get_desc(int subtest);
|
||||
int test__llvm_subtest_get_nr(void);
|
||||
int test__bpf(int subtest);
|
||||
int test__bpf(struct test *test, int subtest);
|
||||
const char *test__bpf_subtest_get_desc(int subtest);
|
||||
int test__bpf_subtest_get_nr(void);
|
||||
int test_session_topology(int subtest);
|
||||
int test__thread_map_synthesize(int subtest);
|
||||
int test__thread_map_remove(int subtest);
|
||||
int test__cpu_map_synthesize(int subtest);
|
||||
int test__synthesize_stat_config(int subtest);
|
||||
int test__synthesize_stat(int subtest);
|
||||
int test__synthesize_stat_round(int subtest);
|
||||
int test__event_update(int subtest);
|
||||
int test__event_times(int subtest);
|
||||
int test__backward_ring_buffer(int subtest);
|
||||
int test__cpu_map_print(int subtest);
|
||||
int test__sdt_event(int subtest);
|
||||
int test__is_printable_array(int subtest);
|
||||
int test__bitmap_print(int subtest);
|
||||
int test__perf_hooks(int subtest);
|
||||
int test__clang(int subtest);
|
||||
int test__session_topology(struct test *test, int subtest);
|
||||
int test__thread_map_synthesize(struct test *test, int subtest);
|
||||
int test__thread_map_remove(struct test *test, int subtest);
|
||||
int test__cpu_map_synthesize(struct test *test, int subtest);
|
||||
int test__synthesize_stat_config(struct test *test, int subtest);
|
||||
int test__synthesize_stat(struct test *test, int subtest);
|
||||
int test__synthesize_stat_round(struct test *test, int subtest);
|
||||
int test__event_update(struct test *test, int subtest);
|
||||
int test__event_times(struct test *test, int subtest);
|
||||
int test__backward_ring_buffer(struct test *test, int subtest);
|
||||
int test__cpu_map_print(struct test *test, int subtest);
|
||||
int test__sdt_event(struct test *test, int subtest);
|
||||
int test__is_printable_array(struct test *test, int subtest);
|
||||
int test__bitmap_print(struct test *test, int subtest);
|
||||
int test__perf_hooks(struct test *test, int subtest);
|
||||
int test__clang(struct test *test, int subtest);
|
||||
const char *test__clang_subtest_get_desc(int subtest);
|
||||
int test__clang_subtest_get_nr(void);
|
||||
int test__unit_number__scnprint(int subtest);
|
||||
int test__unit_number__scnprint(struct test *test, int subtest);
|
||||
|
||||
bool test__bp_signal_is_supported(void);
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
||||
#define NAME (const char *) "perf"
|
||||
#define NAMEUL (unsigned long) NAME
|
||||
|
||||
int test__thread_map(int subtest __maybe_unused)
|
||||
int test__thread_map(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct thread_map *map;
|
||||
|
||||
@ -76,7 +76,7 @@ static int process_event(struct perf_tool *tool __maybe_unused,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int test__thread_map_synthesize(int subtest __maybe_unused)
|
||||
int test__thread_map_synthesize(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct thread_map *threads;
|
||||
|
||||
@ -95,7 +95,7 @@ int test__thread_map_synthesize(int subtest __maybe_unused)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int test__thread_map_remove(int subtest __maybe_unused)
|
||||
int test__thread_map_remove(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct thread_map *threads;
|
||||
char *str;
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include "map.h"
|
||||
#include "debug.h"
|
||||
|
||||
int test__thread_mg_share(int subtest __maybe_unused)
|
||||
int test__thread_mg_share(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct machines machines;
|
||||
struct machine *machine;
|
||||
|
@ -86,7 +86,7 @@ static int check_cpu_topology(char *path, struct cpu_map *map)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int test_session_topology(int subtest __maybe_unused)
|
||||
int test__session_topology(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
char path[PATH_MAX];
|
||||
struct cpu_map *map;
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include "units.h"
|
||||
#include "debug.h"
|
||||
|
||||
int test__unit_number__scnprint(int subtest __maybe_unused)
|
||||
int test__unit_number__scnprint(struct test *t __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
struct {
|
||||
u64 n;
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
#define UM(x) kallsyms_map->unmap_ip(kallsyms_map, (x))
|
||||
|
||||
int test__vmlinux_matches_kallsyms(int subtest __maybe_unused)
|
||||
int test__vmlinux_matches_kallsyms(struct test *test __maybe_unused, int subtest __maybe_unused)
|
||||
{
|
||||
int err = -1;
|
||||
struct rb_node *nd;
|
||||
|
Loading…
Reference in New Issue
Block a user