diff options
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/btf.c')
| -rw-r--r-- | tools/testing/selftests/bpf/prog_tests/btf.c | 25 | 
1 files changed, 24 insertions, 1 deletions
| diff --git a/tools/testing/selftests/bpf/prog_tests/btf.c b/tools/testing/selftests/bpf/prog_tests/btf.c index 8ba53acf9eb4..ec823561b912 100644 --- a/tools/testing/selftests/bpf/prog_tests/btf.c +++ b/tools/testing/selftests/bpf/prog_tests/btf.c @@ -3939,6 +3939,25 @@ static struct btf_raw_test raw_tests[] = {  	.err_str = "Invalid component_idx",  },  { +	.descr = "decl_tag test #15, func, invalid func proto", +	.raw_types = { +		BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4),	/* [1] */ +		BTF_DECL_TAG_ENC(NAME_TBD, 3, 0),		/* [2] */ +		BTF_FUNC_ENC(NAME_TBD, 8),			/* [3] */ +		BTF_END_RAW, +	}, +	BTF_STR_SEC("\0tag\0func"), +	.map_type = BPF_MAP_TYPE_ARRAY, +	.map_name = "tag_type_check_btf", +	.key_size = sizeof(int), +	.value_size = 4, +	.key_type_id = 1, +	.value_type_id = 1, +	.max_entries = 1, +	.btf_load_err = true, +	.err_str = "Invalid type_id", +}, +{  	.descr = "type_tag test #1",  	.raw_types = {  		BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4),	/* [1] */ @@ -4560,6 +4579,8 @@ static void do_test_file(unsigned int test_num)  	has_btf_ext = btf_ext != NULL;  	btf_ext__free(btf_ext); +	/* temporary disable LIBBPF_STRICT_MAP_DEFINITIONS to test legacy maps */ +	libbpf_set_strict_mode(LIBBPF_STRICT_ALL & ~LIBBPF_STRICT_MAP_DEFINITIONS);  	obj = bpf_object__open(test->file);  	err = libbpf_get_error(obj);  	if (CHECK(err, "obj: %d", err)) @@ -4684,6 +4705,8 @@ skip:  	fprintf(stderr, "OK");  done: +	libbpf_set_strict_mode(LIBBPF_STRICT_ALL); +  	btf__free(btf);  	free(func_info);  	bpf_object__close(obj); @@ -6533,7 +6556,7 @@ done:  static void do_test_info_raw(unsigned int test_num)  {  	const struct prog_info_raw_test *test = &info_raw_tests[test_num - 1]; -	unsigned int raw_btf_size, linfo_str_off, linfo_size; +	unsigned int raw_btf_size, linfo_str_off, linfo_size = 0;  	int btf_fd = -1, prog_fd = -1, err = 0;  	void *raw_btf, *patched_linfo = NULL;  	const char *ret_next_str; |