Lines Matching +full:self +full:- +full:test
7 # June 1991 as shown in the file COPYING in the top-level directory of this
53 log_level -= sub
116 stdout = stdout.decode("utf-8")
117 stderr = stderr.decode("utf-8")
122 if stderr[-1] == "\n":
123 stderr = stderr[:-1]
132 if len(stderr) > 0 and stderr[-1] == "\n":
133 stderr = stderr[:-1]
142 cmd("rm -f %s" % (f))
174 return tool("bpftool", args, {"json":"-p"}, JSON=JSON, ns=ns,
236 args = "-force " + args
237 return tool("ip", args, {"json":"-j"}, JSON=JSON, ns=ns,
241 return tool("tc", args, {"json":"-p"}, JSON=JSON, ns=ns,
290 def __init__(self, path): argument
291 self.path = path
292 self._dict = self._debugfs_dir_read(path)
294 def __len__(self): argument
295 return len(self._dict.keys())
297 def __getitem__(self, key): argument
299 key = list(self._dict.keys())[key]
300 return self._dict[key]
302 def __setitem__(self, key, value): argument
306 cmd("echo '%s' > %s/%s" % (value, self.path, key))
309 _, out = cmd('cat %s/%s' % (self.path, key))
310 self._dict[key] = out.strip()
312 def _debugfs_dir_read(self, path): argument
348 def __init__(self, port_count=1, ns=None): argument
350 devs.append(self)
352 def _make_port(self, port_index, ifname): argument
353 return BpfNetdevSim(self, port_index, ifname, self.ns)
355 def dfs_num_bound_progs(self): argument
356 path = os.path.join(self.dfs_dir, "bpf_bound_progs")
360 def dfs_get_bound_progs(self, expected): argument
361 progs = DebugfsDir(os.path.join(self.dfs_dir, "bpf_bound_progs"))
368 def remove(self): argument
370 devs.remove(self)
378 def __init__(self, nsimdev, port_index, ifname, ns=None): argument
381 self.dfs_dir = "%s/ports/%u/" % (nsimdev.dfs_dir, port_index)
382 self.dfs_refresh()
384 def __getitem__(self, key): argument
385 return self.dev[key]
387 def remove(self): argument
388 self.nsimdev.remove_nsim(self)
390 def dfs_refresh(self): argument
391 self.dfs = DebugfsDir(self.dfs_dir)
392 return self.dfs
394 def dfs_read(self, f): argument
395 path = os.path.join(self.dfs_dir, f)
399 def wait_for_flush(self, bound=0, total=0, n_retry=20): argument
401 nbound = self.nsimdev.dfs_num_bound_progs()
408 def set_ns(self, ns): argument
410 ip("link set dev %s netns %s" % (self.dev["ifname"], name), ns=self.ns)
411 self.ns = ns
413 def set_mtu(self, mtu, fail=True): argument
414 return ip("link set dev %s mtu %d" % (self.dev["ifname"], mtu),
417 def set_xdp(self, bpf, mode, force=False, JSON=True, verbose=False, argument
421 return ip("link set dev %s xdp%s %s" % (self.dev["ifname"], mode, bpf),
425 def unset_xdp(self, mode, force=False, JSON=True, argument
427 return ip("link set dev %s xdp%s off" % (self.dev["ifname"], mode),
431 def ip_link_show(self, xdp): argument
432 _, link = ip("link show dev %s" % (self['ifname']))
442 def tc_add_ingress(self): argument
443 tc("qdisc add dev %s ingress" % (self['ifname']))
445 def tc_del_ingress(self): argument
446 tc("qdisc del dev %s ingress" % (self['ifname']))
448 def tc_flush_filters(self, bound=0, total=0): argument
449 self.tc_del_ingress()
450 self.tc_add_ingress()
451 self.wait_for_flush(bound=bound, total=total)
453 def tc_show_ingress(self, expected=None): argument
458 args = "-s filter show dev %s ingress" % (self['ifname'])
484 def cls_filter_op(self, op, qdisc="ingress", prio=None, handle=None, argument
496 .format(op=op, dev=self['ifname'], qdisc=qdisc, spec=spec,
500 def cls_bpf_add_filter(self, bpf, op="add", prio=None, handle=None, argument
516 return self.cls_filter_op(op=op, prio=prio, handle=handle, cls=cls,
520 def set_ethtool_tc_offloads(self, enable, fail=True): argument
521 args = "hw-tc-offload %s" % ("on" if enable else "off")
522 return ethtool(self, "-K", args, fail=fail)
531 cmd("rm -f %s" % (f))
562 fail(err["error"].find("No such device") == -1,
631 start_test("Test multi-attachment XDP - %s + offload..." %
651 start_test("Test multi-attachment XDP - replace...")
653 fail(ret == 0, "Replaced one of programs without -force")
656 start_test("Test multi-attachment XDP - remove without mode...")
675 start_test("Test multi-attachment XDP - reattach...")
683 start_test("Test multi-attachment XDP - device remove...")
693 parser.add_argument("--log", help="output verbose log to given file")
697 logfile.write("# -*-Org-*-")
703 skip(os.getuid() != 0, "test must be run as root")
722 if out.find("/sys/kernel/debug type debugfs") == -1:
723 cmd("mount -t debugfs none /sys/kernel/debug")
735 if err.find("Error: Failed to find qdisc with specified handle.") == -1:
750 start_test("Test destruction of generic XDP...")
761 start_test("Test TC non-offloaded...")
765 start_test("Test TC non-offloaded isn't getting bound...")
772 start_test("Test TC offloads are off by default...")
782 start_test("Test TC offload by default...")
792 start_test("Test TC cBPF bytcode tries offload by default...")
803 start_test("Test TC cBPF unbound bytecode doesn't offload...")
811 start_test("Test non-0 chain offload...")
819 start_test("Test TC replace...")
832 start_test("Test TC replace bad flags...")
839 "Software TC incorrect load in replace test, iteration %d" %
843 start_test("Test spurious extack from the driver...")
856 start_test("Test TC offloads failure...")
864 start_test("Test TC offloads work...")
869 start_test("Test TC offload basics...")
881 start_test("Test TC offload is device-bound...")
888 start_test("Test disabling TC offloads is rejected while filters installed...")
893 start_test("Test qdisc removal frees things...")
897 start_test("Test disabling TC offloads is OK without filters...")
904 start_test("Test destroying device gets rid of TC filters...")
913 start_test("Test destroying device gets rid of XDP...")
922 start_test("Test XDP prog reporting...")
929 start_test("Test XDP prog replace without force...")
931 fail(ret == 0, "Replaced XDP program without -force")
934 start_test("Test XDP prog replace with force...")
936 fail(ret != 0, "Could not replace XDP program with -force")
943 "Device parameters reported for non-offloaded program")
945 start_test("Test XDP prog replace with bad flags...")
953 start_test("Test MTU restrictions...")
966 start_test("Test non-offload XDP attaching to HW...")
971 fail(ret == 0, "attached non-offloaded XDP program to HW")
972 check_extack_nsim(err, "xdpoffload of non-bound program.", args)
975 start_test("Test offload XDP attaching to drv...")
988 start_test("Test dev-bound program in generic mode...")
991 check_extack(err, "Can't attach device-bound programs in generic mode.", args)
995 start_test("Test XDP load failure...")
1004 start_test("Test XDP offload...")
1012 start_test("Test XDP offload is device bound...")
1022 start_test("Test removing XDP program many times...")
1031 start_test("Test attempt to use a program for a wrong device...")
1053 start_test("Test mixing of TC and XDP...")
1068 start_test("Test binding TC from pinned...")
1074 start_test("Test binding XDP from pinned...")
1083 start_test("Test offload of wrong type fails...")
1087 start_test("Test asking for TC offload of two filters...")
1096 start_test("Test if netdev removal waits for translation...")
1109 time_diff = end - start
1124 start_test("Test loading program with maps...")
1127 start_test("Test bpftool bound info reporting (own ns)...")
1130 start_test("Test bpftool bound info reporting (other ns)...")
1135 start_test("Test bpftool bound info reporting (remote ns)...")
1138 start_test("Test bpftool bound info reporting (back to own ns)...")
1146 start_test("Test bpftool bound info reporting (removed dev)...")
1156 start_test("Test map update (no flags)...")
1172 start_test("Test map update (exists)...")
1182 fail(ret == 0, "updated non-existing key")
1183 fail(err["error"].find("No such file or directory") == -1,
1186 start_test("Test map update (noexist)...")
1193 fail(err["error"].find("File exists") == -1,
1196 start_test("Test map dump...")
1205 start_test("Test map getnext...")
1217 fail(err["error"].find("No such file or directory") == -1,
1220 start_test("Test map delete (htab)...")
1224 start_test("Test map delete (array)...")
1229 fail(err["error"].find("No such file or directory") == -1,
1232 start_test("Test map remove...")
1243 start_test("Test map creation fail path...")
1253 start_test("Test multi-dev ASIC program reuse...")
1272 start_test("Test multi-dev ASIC cross-dev replace...")
1274 fail(ret == 0, "cross-ASIC program allowed")
1277 fail(ret == 0, "cross-ASIC program allowed")
1279 start_test("Test multi-dev ASIC cross-dev install...")
1285 fail(ret == 0, "cross-ASIC program allowed")
1290 fail(ret == 0, "cross-ASIC program allowed")
1293 start_test("Test multi-dev ASIC cross-dev map reuse...")
1311 "error message missing for cross-ASIC map")
1319 "error message missing for cross-ASIC map")
1321 start_test("Test multi-dev ASIC cross-dev destruction...")
1332 start_test("Test multi-dev ASIC cross-dev destruction - move...")
1345 start_test("Test multi-dev ASIC cross-dev destruction - orphaned...")