Commit 8554d6e3 authored by Jakub Kicinski's avatar Jakub Kicinski

selftests: net: support use of NetdevSimDev under "with" in python

Using "with" on an entire driver test env is supported already,
but it's also useful to use "with" on an individual nsim.
Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
Link: https://lore.kernel.org/r/20240412141436.828666-6-kuba@kernel.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 99583b97
......@@ -84,6 +84,17 @@ class NetdevSimDev:
for port_index in range(port_count):
self.nsims.append(self._make_port(port_index, ifnames[port_index]))
self.removed = False
def __enter__(self):
return self
def __exit__(self, ex_type, ex_value, ex_tb):
"""
__exit__ gets called at the end of a "with" block.
"""
self.remove()
def _make_port(self, port_index, ifname):
return NetdevSim(self, port_index, ifname, self.ns)
......@@ -112,7 +123,9 @@ class NetdevSimDev:
raise Exception("netdevices did not appear within timeout")
def remove(self):
self.ctrl_write("del_device", "%u" % (self.addr, ))
if not self.removed:
self.ctrl_write("del_device", "%u" % (self.addr, ))
self.removed = True
def remove_nsim(self, nsim):
self.nsims.remove(nsim)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment