3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-11-25 17:59:25 +01:00

test-runner: remove special case for "root" namespace

This was a placeholder at one point but modules grew to depend on it
being a string. Fix these dependencies and set the root namespace
name to None so there is no more special case needed to handle both
a named namespace and the original 'root' namespace.
This commit is contained in:
James Prestwood 2021-09-07 09:54:34 -07:00 committed by Denis Kenzior
parent 9d045fae0e
commit 7123f47f84
3 changed files with 7 additions and 13 deletions

View File

@ -301,15 +301,15 @@ class Hwsim(iwd.AsyncOpAbstract):
_instances = WeakValueDictionary() _instances = WeakValueDictionary()
def __new__(cls, namespace=ctx): def __new__(cls, namespace=ctx):
name = namespace.name key = id(namespace)
if name not in cls._instances.keys(): if key not in cls._instances.keys():
obj = object.__new__(cls) obj = object.__new__(cls)
obj._initialized = False obj._initialized = False
cls._instances[name] = obj cls._instances[key] = obj
return cls._instances[name] return cls._instances[key]
def __init__(self, namespace=ctx): def __init__(self, namespace=ctx):
if self._initialized: if self._initialized:

View File

@ -1053,7 +1053,7 @@ class IWD(AsyncOpAbstract):
# reference so that __del__ gets called when it's released. This is only # reference so that __del__ gets called when it's released. This is only
# done for the root namespace in order to allow testutil to function # done for the root namespace in order to allow testutil to function
# correctly in non-namespace tests. # correctly in non-namespace tests.
if self.namespace.name == "root": if self.namespace.name is None:
IWD._default_instance = weakref.ref(self) IWD._default_instance = weakref.ref(self)
def __del__(self): def __del__(self):

View File

@ -599,12 +599,6 @@ class Namespace:
return self._bus return self._bus
def start_process(self, args, env=None, **kwargs): def start_process(self, args, env=None, **kwargs):
# Special case for 'root' namespace (aka TestContext)
if self.name == "root":
ns = None
else:
ns = self.name
if not env: if not env:
env = os.environ.copy() env = os.environ.copy()
@ -612,7 +606,7 @@ class Namespace:
# In case this process needs DBus... # In case this process needs DBus...
env['DBUS_SYSTEM_BUS_ADDRESS'] = self.dbus_address env['DBUS_SYSTEM_BUS_ADDRESS'] = self.dbus_address
p = Process(args, namespace=ns, env=env, **kwargs) p = Process(args, namespace=self.name, env=env, **kwargs)
if not kwargs.get('wait', False): if not kwargs.get('wait', False):
self.processes.append(p) self.processes.append(p)
@ -791,7 +785,7 @@ class TestContext(Namespace):
such as processes, radios, interfaces and test results. such as processes, radios, interfaces and test results.
''' '''
def __init__(self, args): def __init__(self, args):
self.name = "root" self.name = None
self.processes = [] self.processes = []
self.args = args self.args = args
self.hw_config = None self.hw_config = None