diff options
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/btf.c')
| -rw-r--r-- | tools/testing/selftests/bpf/prog_tests/btf.c | 28 | 
1 files changed, 28 insertions, 0 deletions
| diff --git a/tools/testing/selftests/bpf/prog_tests/btf.c b/tools/testing/selftests/bpf/prog_tests/btf.c index cbb600be943d..210d643fda6c 100644 --- a/tools/testing/selftests/bpf/prog_tests/btf.c +++ b/tools/testing/selftests/bpf/prog_tests/btf.c @@ -879,6 +879,34 @@ static struct btf_raw_test raw_tests[] = {  	.btf_load_err = true,  	.err_str = "Invalid elem",  }, +{ +	.descr = "var after datasec, ptr followed by modifier", +	.raw_types = { +		/* .bss section */				/* [1] */ +		BTF_TYPE_ENC(NAME_TBD, BTF_INFO_ENC(BTF_KIND_DATASEC, 0, 2), +			sizeof(void*)+4), +		BTF_VAR_SECINFO_ENC(4, 0, sizeof(void*)), +		BTF_VAR_SECINFO_ENC(6, sizeof(void*), 4), +		/* int */					/* [2] */ +		BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4), +		/* int* */					/* [3] */ +		BTF_TYPE_ENC(0, BTF_INFO_ENC(BTF_KIND_PTR, 0, 0), 2), +		BTF_VAR_ENC(NAME_TBD, 3, 0),			/* [4] */ +		/* const int */					/* [5] */ +		BTF_TYPE_ENC(0, BTF_INFO_ENC(BTF_KIND_CONST, 0, 0), 2), +		BTF_VAR_ENC(NAME_TBD, 5, 0),			/* [6] */ +		BTF_END_RAW, +	}, +	.str_sec = "\0a\0b\0c\0", +	.str_sec_size = sizeof("\0a\0b\0c\0"), +	.map_type = BPF_MAP_TYPE_ARRAY, +	.map_name = ".bss", +	.key_size = sizeof(int), +	.value_size = sizeof(void*)+4, +	.key_type_id = 0, +	.value_type_id = 1, +	.max_entries = 1, +},  /* Test member exceeds the size of struct.   *   * struct A { | 
