Skip to content

Commit

Permalink
selftests/bpf: check for spurious extacks from the driver
Browse files Browse the repository at this point in the history
Drivers should not report errors when offload is not forced.
Check stdout and stderr for familiar messages when with no
skip flags and with skip_hw.  Check for add, replace, and
destroy.

Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: Simon Horman <simon.horman@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Jakub Kicinski authored and David S. Miller committed Jan 26, 2018
1 parent 15f4edb commit 2fb89a3
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions tools/testing/selftests/bpf/test_offload.py
Original file line number Diff line number Diff line change
Expand Up @@ -543,13 +543,29 @@ def check_extack(output, reference, args):
def check_extack_nsim(output, reference, args):
check_extack(output, "Error: netdevsim: " + reference, args)

def check_no_extack(res, needle):
fail((res[1] + res[2]).count(needle) or (res[1] + res[2]).count("Warning:"),
"Found '%s' in command output, leaky extack?" % (needle))

def check_verifier_log(output, reference):
lines = output.split("\n")
for l in reversed(lines):
if l == reference:
return
fail(True, "Missing or incorrect message from netdevsim in verifier log")

def test_spurios_extack(sim, obj, skip_hw, needle):
res = sim.cls_bpf_add_filter(obj, prio=1, handle=1, skip_hw=skip_hw,
include_stderr=True)
check_no_extack(res, needle)
res = sim.cls_bpf_add_filter(obj, op="replace", prio=1, handle=1,
skip_hw=skip_hw, include_stderr=True)
check_no_extack(res, needle)
res = sim.cls_filter_op(op="delete", prio=1, handle=1, cls="bpf",
include_stderr=True)
check_no_extack(res, needle)


# Parse command line
parser = argparse.ArgumentParser()
parser.add_argument("--log", help="output verbose log to given file")
Expand Down Expand Up @@ -687,6 +703,17 @@ def check_verifier_log(output, reference):
(j))
sim.cls_filter_op(op="delete", prio=1, handle=1, cls="bpf")

start_test("Test spurious extack from the driver...")
test_spurios_extack(sim, obj, False, "netdevsim")
test_spurios_extack(sim, obj, True, "netdevsim")

sim.set_ethtool_tc_offloads(False)

test_spurios_extack(sim, obj, False, "TC offload is disabled")
test_spurios_extack(sim, obj, True, "TC offload is disabled")

sim.set_ethtool_tc_offloads(True)

sim.tc_flush_filters()

start_test("Test TC offloads work...")
Expand Down

0 comments on commit 2fb89a3

Please sign in to comment.