Skip to content

Commit de68852

Browse files
committed
selftests/bpf: Fix usdt/basic arg size checks on 32-bit
Tests of bpf_usdt_arg_size() hard-code expected arg sizes and match only 64-bit host systems. Update to instead determine the expected values using sizeof(<arg type>) and avoid failures on 32-bit systems (e.g. armhf) like: [...] subtest_basic_usdt:FAIL:usdt3_arg2_size unexpected usdt3_arg2_size: actual 4 != expected 8 subtest_basic_usdt:FAIL:usdt3_arg3_size unexpected usdt3_arg3_size: actual 4 != expected 8 [...] subtest_basic_usdt:FAIL:usdt12_arg_size unexpected usdt12_arg_size: actual 4 != expected 8 subtest_basic_usdt:FAIL:usdt12_arg_size unexpected usdt12_arg_size: actual 4 != expected 8 subtest_basic_usdt:PASS:usdt12_arg_size 0 nsec subtest_basic_usdt:FAIL:usdt12_arg_size unexpected usdt12_arg_size: actual 4 != expected 8 subtest_basic_usdt:PASS:usdt12_arg_size 0 nsec subtest_basic_usdt:FAIL:usdt12_arg_size unexpected usdt12_arg_size: actual 4 != expected 8 [...] torvalds#481/1 usdt/basic:FAIL Fixes: 0ba0ef0 ("selftests/bpf: Test bpf_usdt_arg_size() function") Signed-off-by: Tony Ambardar <[email protected]>
1 parent 18120e1 commit de68852

File tree

1 file changed

+17
-4
lines changed
  • tools/testing/selftests/bpf/prog_tests

1 file changed

+17
-4
lines changed

tools/testing/selftests/bpf/prog_tests/usdt.c

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -163,9 +163,9 @@ static void subtest_basic_usdt(bool optimized)
163163
ASSERT_EQ(bss->usdt3_args[0], 1, "usdt3_arg1");
164164
ASSERT_EQ(bss->usdt3_args[1], 42, "usdt3_arg2");
165165
ASSERT_EQ(bss->usdt3_args[2], (uintptr_t)&bla, "usdt3_arg3");
166-
ASSERT_EQ(bss->usdt3_arg_sizes[0], 4, "usdt3_arg1_size");
167-
ASSERT_EQ(bss->usdt3_arg_sizes[1], 8, "usdt3_arg2_size");
168-
ASSERT_EQ(bss->usdt3_arg_sizes[2], 8, "usdt3_arg3_size");
166+
ASSERT_EQ(bss->usdt3_arg_sizes[0], sizeof(int), "usdt3_arg1_size");
167+
ASSERT_EQ(bss->usdt3_arg_sizes[1], sizeof(long), "usdt3_arg2_size");
168+
ASSERT_EQ(bss->usdt3_arg_sizes[2], sizeof(uintptr_t), "usdt3_arg3_size");
169169

170170
/* auto-attached usdt12 gets default zero cookie value */
171171
ASSERT_EQ(bss->usdt12_cookie, 0, "usdt12_cookie");
@@ -184,7 +184,20 @@ static void subtest_basic_usdt(bool optimized)
184184
ASSERT_EQ(bss->usdt12_args[10], nums[idx], "usdt12_arg11");
185185
ASSERT_EQ(bss->usdt12_args[11], t1.y, "usdt12_arg12");
186186

187-
int usdt12_expected_arg_sizes[12] = { 4, 4, 8, 8, 4, 8, 8, 8, 4, 2, 2, 1 };
187+
int usdt12_expected_arg_sizes[12] = {
188+
sizeof(int),
189+
sizeof(int),
190+
sizeof(long),
191+
sizeof(long),
192+
sizeof(unsigned),
193+
sizeof(long),
194+
sizeof(__u64),
195+
sizeof(uintptr_t),
196+
sizeof(int),
197+
sizeof(short),
198+
sizeof(short),
199+
sizeof(signed char)
200+
};
188201

189202
for (i = 0; i < 12; i++)
190203
ASSERT_EQ(bss->usdt12_arg_sizes[i], usdt12_expected_arg_sizes[i], "usdt12_arg_size");

0 commit comments

Comments
 (0)