perf test: Print result for each BPF subtest
This patch prints each sub-tests results for BPF testcases. Before: # ./perf test BPF 37: Test BPF filter : Ok After: # ./perf test BPF 37: Test BPF filter : 37.1: Test basic BPF filtering : Ok 37.2: Test BPF prologue generation : Ok When a failure happens: # cat ~/.perfconfig [llvm] clang-path = "/bin/false" # ./perf test BPF 37: Test BPF filter : 37.1: Test basic BPF filtering : Skip 37.2: Test BPF prologue generation : Skip Suggested-and-Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Wang Nan <wangnan0@huawei.com> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Cc: Zefan Li <lizefan@huawei.com> Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1447749170-175898-5-git-send-email-wangnan0@huawei.com [ Fixed up not to use .func in an anonymous union ] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
e8c6d50044
commit
77a0cf682f
|
@ -215,28 +215,46 @@ static int __test__bpf(int idx)
|
|||
return ret;
|
||||
}
|
||||
|
||||
int test__bpf(int subtest __maybe_unused)
|
||||
int test__bpf_subtest_get_nr(void)
|
||||
{
|
||||
return (int)ARRAY_SIZE(bpf_testcase_table);
|
||||
}
|
||||
|
||||
const char *test__bpf_subtest_get_desc(int i)
|
||||
{
|
||||
if (i < 0 || i >= (int)ARRAY_SIZE(bpf_testcase_table))
|
||||
return NULL;
|
||||
return bpf_testcase_table[i].desc;
|
||||
}
|
||||
|
||||
int test__bpf(int i)
|
||||
{
|
||||
unsigned int i;
|
||||
int err;
|
||||
|
||||
if (i < 0 || i >= (int)ARRAY_SIZE(bpf_testcase_table))
|
||||
return TEST_FAIL;
|
||||
|
||||
if (geteuid() != 0) {
|
||||
pr_debug("Only root can run BPF test\n");
|
||||
return TEST_SKIP;
|
||||
}
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(bpf_testcase_table); i++) {
|
||||
err = __test__bpf(i);
|
||||
|
||||
if (err != TEST_OK)
|
||||
return err;
|
||||
}
|
||||
|
||||
return TEST_OK;
|
||||
err = __test__bpf(i);
|
||||
return err;
|
||||
}
|
||||
|
||||
#else
|
||||
int test__bpf(void)
|
||||
int test__bpf_subtest_get_nr(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char *test__bpf_subtest_get_desc(int i __maybe_unused)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int test__bpf(int i __maybe_unused)
|
||||
{
|
||||
pr_debug("Skip BPF test because BPF support is not compiled\n");
|
||||
return TEST_SKIP;
|
||||
|
|
|
@ -173,6 +173,11 @@ static struct test generic_tests[] = {
|
|||
{
|
||||
.desc = "Test BPF filter",
|
||||
.func = test__bpf,
|
||||
.subtest = {
|
||||
.skip_if_fail = true,
|
||||
.get_nr = test__bpf_subtest_get_nr,
|
||||
.get_desc = test__bpf_subtest_get_desc,
|
||||
},
|
||||
},
|
||||
{
|
||||
.func = NULL,
|
||||
|
|
|
@ -76,6 +76,8 @@ int test__llvm(int subtest);
|
|||
const char *test__llvm_subtest_get_desc(int subtest);
|
||||
int test__llvm_subtest_get_nr(void);
|
||||
int test__bpf(int subtest);
|
||||
const char *test__bpf_subtest_get_desc(int subtest);
|
||||
int test__bpf_subtest_get_nr(void);
|
||||
int test_session_topology(int subtest);
|
||||
|
||||
#if defined(__arm__) || defined(__aarch64__)
|
||||
|
|
Loading…
Reference in New Issue