selftests/bpf: Avoid skipping certain subtests
Commit704c91e59f
('selftests/bpf: Test "bpftool gen min_core_btf"') added a test test_core_btfgen to test core relocation with btf generated with 'bpftool gen min_core_btf'. Currently, among 76 subtests, 25 are skipped. ... #46/69 core_reloc_btfgen/enumval:OK #46/70 core_reloc_btfgen/enumval___diff:OK #46/71 core_reloc_btfgen/enumval___val3_missing:OK #46/72 core_reloc_btfgen/enumval___err_missing:SKIP #46/73 core_reloc_btfgen/enum64val:OK #46/74 core_reloc_btfgen/enum64val___diff:OK #46/75 core_reloc_btfgen/enum64val___val3_missing:OK #46/76 core_reloc_btfgen/enum64val___err_missing:SKIP ... #46 core_reloc_btfgen:SKIP Summary: 1/51 PASSED, 25 SKIPPED, 0 FAILED Alexei found that in the above core_reloc_btfgen/enum64val___err_missing should not be skipped. Currently, the core_reloc tests have some negative tests. In Commit704c91e59f
, for core_reloc_btfgen, all negative tests are skipped with the following condition if (!test_case->btf_src_file || test_case->fails) { test__skip(); continue; } This is too conservative. Negative tests do not fail mkstemp() and run_btfgen() should not be skipped. There are a few negative tests indeed failing run_btfgen() and this patch added 'run_btfgen_fails' to mark these tests so that they can be skipped for btfgen tests. With this, we have ... #46/69 core_reloc_btfgen/enumval:OK #46/70 core_reloc_btfgen/enumval___diff:OK #46/71 core_reloc_btfgen/enumval___val3_missing:OK #46/72 core_reloc_btfgen/enumval___err_missing:OK #46/73 core_reloc_btfgen/enum64val:OK #46/74 core_reloc_btfgen/enum64val___diff:OK #46/75 core_reloc_btfgen/enum64val___val3_missing:OK #46/76 core_reloc_btfgen/enum64val___err_missing:OK ... Summary: 1/62 PASSED, 14 SKIPPED, 0 FAILED Totally 14 subtests are skipped instead of 25. Reported-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: Yonghong Song <yhs@fb.com> Link: https://lore.kernel.org/r/20220614055526.628299-1-yhs@fb.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
96752e1ec0
commit
3831cd1f9f
|
@ -84,6 +84,7 @@ static int duration = 0;
|
|||
#define NESTING_ERR_CASE(name) { \
|
||||
NESTING_CASE_COMMON(name), \
|
||||
.fails = true, \
|
||||
.run_btfgen_fails = true, \
|
||||
}
|
||||
|
||||
#define ARRAYS_DATA(struct_name) STRUCT_TO_CHAR_PTR(struct_name) { \
|
||||
|
@ -258,12 +259,14 @@ static int duration = 0;
|
|||
BITFIELDS_CASE_COMMON("test_core_reloc_bitfields_probed.o", \
|
||||
"probed:", name), \
|
||||
.fails = true, \
|
||||
.run_btfgen_fails = true, \
|
||||
.raw_tp_name = "sys_enter", \
|
||||
.prog_name = "test_core_bitfields", \
|
||||
}, { \
|
||||
BITFIELDS_CASE_COMMON("test_core_reloc_bitfields_direct.o", \
|
||||
"direct:", name), \
|
||||
.fails = true, \
|
||||
.run_btfgen_fails = true, \
|
||||
.prog_name = "test_core_bitfields_direct", \
|
||||
}
|
||||
|
||||
|
@ -304,6 +307,7 @@ static int duration = 0;
|
|||
#define SIZE_ERR_CASE(name) { \
|
||||
SIZE_CASE_COMMON(name), \
|
||||
.fails = true, \
|
||||
.run_btfgen_fails = true, \
|
||||
}
|
||||
|
||||
#define TYPE_BASED_CASE_COMMON(name) \
|
||||
|
@ -396,6 +400,7 @@ struct core_reloc_test_case {
|
|||
const char *output;
|
||||
int output_len;
|
||||
bool fails;
|
||||
bool run_btfgen_fails;
|
||||
bool needs_testmod;
|
||||
bool relaxed_core_relocs;
|
||||
const char *prog_name;
|
||||
|
@ -952,7 +957,7 @@ static void run_core_reloc_tests(bool use_btfgen)
|
|||
/* generate a "minimal" BTF file and use it as source */
|
||||
if (use_btfgen) {
|
||||
|
||||
if (!test_case->btf_src_file || test_case->fails) {
|
||||
if (!test_case->btf_src_file || test_case->run_btfgen_fails) {
|
||||
test__skip();
|
||||
continue;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue