mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-13 23:34:05 +08:00
selftests/bpf: Make test_varlen work with 32-bit user-space arch
Despite bpftool generating data section memory layout that will work for 32-bit architectures on user-space side, BPF programs should be careful to not use ambiguous types like `long`, which have different size in 32-bit and 64-bit environments. Fix that in test by using __u64 explicitly, which is a recommended approach anyway. Signed-off-by: Andrii Nakryiko <andriin@fb.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://lore.kernel.org/bpf/20200813204945.1020225-10-andriin@fb.com
This commit is contained in:
parent
0f993845d7
commit
4fccd2ff74
@ -44,25 +44,25 @@ void test_varlen(void)
|
||||
CHECK_VAL(bss->payload1_len2, size2);
|
||||
CHECK_VAL(bss->total1, size1 + size2);
|
||||
CHECK(memcmp(bss->payload1, exp_str, size1 + size2), "content_check",
|
||||
"doesn't match!");
|
||||
"doesn't match!\n");
|
||||
|
||||
CHECK_VAL(data->payload2_len1, size1);
|
||||
CHECK_VAL(data->payload2_len2, size2);
|
||||
CHECK_VAL(data->total2, size1 + size2);
|
||||
CHECK(memcmp(data->payload2, exp_str, size1 + size2), "content_check",
|
||||
"doesn't match!");
|
||||
"doesn't match!\n");
|
||||
|
||||
CHECK_VAL(data->payload3_len1, size1);
|
||||
CHECK_VAL(data->payload3_len2, size2);
|
||||
CHECK_VAL(data->total3, size1 + size2);
|
||||
CHECK(memcmp(data->payload3, exp_str, size1 + size2), "content_check",
|
||||
"doesn't match!");
|
||||
"doesn't match!\n");
|
||||
|
||||
CHECK_VAL(data->payload4_len1, size1);
|
||||
CHECK_VAL(data->payload4_len2, size2);
|
||||
CHECK_VAL(data->total4, size1 + size2);
|
||||
CHECK(memcmp(data->payload4, exp_str, size1 + size2), "content_check",
|
||||
"doesn't match!");
|
||||
"doesn't match!\n");
|
||||
cleanup:
|
||||
test_varlen__destroy(skel);
|
||||
}
|
||||
|
@ -15,9 +15,9 @@ int test_pid = 0;
|
||||
bool capture = false;
|
||||
|
||||
/* .bss */
|
||||
long payload1_len1 = 0;
|
||||
long payload1_len2 = 0;
|
||||
long total1 = 0;
|
||||
__u64 payload1_len1 = 0;
|
||||
__u64 payload1_len2 = 0;
|
||||
__u64 total1 = 0;
|
||||
char payload1[MAX_LEN + MAX_LEN] = {};
|
||||
|
||||
/* .data */
|
||||
|
Loading…
Reference in New Issue
Block a user