aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Kicinski <jakub.kicinski@netronome.com>2018-01-25 17:00:52 -0500
committerDavid S. Miller <davem@davemloft.net>2018-01-25 21:23:09 -0500
commit2fb89a38d35bb6c935edb819d9096de455ce87cf (patch)
tree1bd48083428c6592ecf9742bded5ce3b610c20f4
parent15f4edb3d9c60a0934b133aae9c915807138cb4d (diff)
selftests/bpf: check for spurious extacks from the driver
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>
-rwxr-xr-xtools/testing/selftests/bpf/test_offload.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/test_offload.py b/tools/testing/selftests/bpf/test_offload.py
index ae3eea3ab820..49f5ceeabfa6 100755
--- a/tools/testing/selftests/bpf/test_offload.py
+++ b/tools/testing/selftests/bpf/test_offload.py
@@ -543,6 +543,10 @@ def check_extack(output, reference, args):
543def check_extack_nsim(output, reference, args): 543def check_extack_nsim(output, reference, args):
544 check_extack(output, "Error: netdevsim: " + reference, args) 544 check_extack(output, "Error: netdevsim: " + reference, args)
545 545
546def check_no_extack(res, needle):
547 fail((res[1] + res[2]).count(needle) or (res[1] + res[2]).count("Warning:"),
548 "Found '%s' in command output, leaky extack?" % (needle))
549
546def check_verifier_log(output, reference): 550def check_verifier_log(output, reference):
547 lines = output.split("\n") 551 lines = output.split("\n")
548 for l in reversed(lines): 552 for l in reversed(lines):
@@ -550,6 +554,18 @@ def check_verifier_log(output, reference):
550 return 554 return
551 fail(True, "Missing or incorrect message from netdevsim in verifier log") 555 fail(True, "Missing or incorrect message from netdevsim in verifier log")
552 556
557def test_spurios_extack(sim, obj, skip_hw, needle):
558 res = sim.cls_bpf_add_filter(obj, prio=1, handle=1, skip_hw=skip_hw,
559 include_stderr=True)
560 check_no_extack(res, needle)
561 res = sim.cls_bpf_add_filter(obj, op="replace", prio=1, handle=1,
562 skip_hw=skip_hw, include_stderr=True)
563 check_no_extack(res, needle)
564 res = sim.cls_filter_op(op="delete", prio=1, handle=1, cls="bpf",
565 include_stderr=True)
566 check_no_extack(res, needle)
567
568
553# Parse command line 569# Parse command line
554parser = argparse.ArgumentParser() 570parser = argparse.ArgumentParser()
555parser.add_argument("--log", help="output verbose log to given file") 571parser.add_argument("--log", help="output verbose log to given file")
@@ -687,6 +703,17 @@ try:
687 (j)) 703 (j))
688 sim.cls_filter_op(op="delete", prio=1, handle=1, cls="bpf") 704 sim.cls_filter_op(op="delete", prio=1, handle=1, cls="bpf")
689 705
706 start_test("Test spurious extack from the driver...")
707 test_spurios_extack(sim, obj, False, "netdevsim")
708 test_spurios_extack(sim, obj, True, "netdevsim")
709
710 sim.set_ethtool_tc_offloads(False)
711
712 test_spurios_extack(sim, obj, False, "TC offload is disabled")
713 test_spurios_extack(sim, obj, True, "TC offload is disabled")
714
715 sim.set_ethtool_tc_offloads(True)
716
690 sim.tc_flush_filters() 717 sim.tc_flush_filters()
691 718
692 start_test("Test TC offloads work...") 719 start_test("Test TC offloads work...")