Skip to content

Commit d8b5e76

Browse files
tohojoborkmann
authored andcommitted
selftests/bpf/test_offload.py: Only check verifier log on verification fails
Since commit 6f8a57c ("bpf: Make verifier log more relevant by default"), the verifier discards log messages for successfully-verified programs. This broke test_offload.py which is looking for a verification message from the driver callback. Change test_offload.py to use the toggle in netdevsim to make the verification fail before looking for the verification message. Fixes: 6f8a57c ("bpf: Make verifier log more relevant by default") Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Jakub Kicinski <kuba@kernel.org> Link: https://lore.kernel.org/bpf/160752226069.110217.12370824996153348073.stgit@toke.dk
1 parent e4ff5aa commit d8b5e76

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

tools/testing/selftests/bpf/test_offload.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -911,11 +911,18 @@ def test_multi_prog(simdev, sim, obj, modename, modeid):
911911

912912
sim.tc_flush_filters()
913913

914+
start_test("Test TC offloads failure...")
915+
sim.dfs["dev/bpf_bind_verifier_accept"] = 0
916+
ret, _, err = sim.cls_bpf_add_filter(obj, verbose=True, skip_sw=True,
917+
fail=False, include_stderr=True)
918+
fail(ret == 0, "TC filter did not reject with TC offloads enabled")
919+
check_verifier_log(err, "[netdevsim] Hello from netdevsim!")
920+
sim.dfs["dev/bpf_bind_verifier_accept"] = 1
921+
914922
start_test("Test TC offloads work...")
915923
ret, _, err = sim.cls_bpf_add_filter(obj, verbose=True, skip_sw=True,
916924
fail=False, include_stderr=True)
917925
fail(ret != 0, "TC filter did not load with TC offloads enabled")
918-
check_verifier_log(err, "[netdevsim] Hello from netdevsim!")
919926

920927
start_test("Test TC offload basics...")
921928
dfs = simdev.dfs_get_bound_progs(expected=1)
@@ -1032,14 +1039,22 @@ def test_multi_prog(simdev, sim, obj, modename, modeid):
10321039
rm("/sys/fs/bpf/offload")
10331040
sim.wait_for_flush()
10341041

1042+
start_test("Test XDP load failure...")
1043+
sim.dfs["dev/bpf_bind_verifier_accept"] = 0
1044+
ret, _, err = bpftool_prog_load("sample_ret0.o", "/sys/fs/bpf/offload",
1045+
dev=sim['ifname'], fail=False, include_stderr=True)
1046+
fail(ret == 0, "verifier should fail on load")
1047+
check_verifier_log(err, "[netdevsim] Hello from netdevsim!")
1048+
sim.dfs["dev/bpf_bind_verifier_accept"] = 1
1049+
sim.wait_for_flush()
1050+
10351051
start_test("Test XDP offload...")
10361052
_, _, err = sim.set_xdp(obj, "offload", verbose=True, include_stderr=True)
10371053
ipl = sim.ip_link_show(xdp=True)
10381054
link_xdp = ipl["xdp"]["prog"]
10391055
progs = bpftool_prog_list(expected=1)
10401056
prog = progs[0]
10411057
fail(link_xdp["id"] != prog["id"], "Loaded program has wrong ID")
1042-
check_verifier_log(err, "[netdevsim] Hello from netdevsim!")
10431058

10441059
start_test("Test XDP offload is device bound...")
10451060
dfs = simdev.dfs_get_bound_progs(expected=1)

0 commit comments

Comments
 (0)