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()
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._initialized = False
cls._instances[name] = obj
cls._instances[key] = obj
return cls._instances[name]
return cls._instances[key]
def __init__(self, namespace=ctx):
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
# done for the root namespace in order to allow testutil to function
# correctly in non-namespace tests.
if self.namespace.name == "root":
if self.namespace.name is None:
IWD._default_instance = weakref.ref(self)
def __del__(self):

View File

@ -599,12 +599,6 @@ class Namespace:
return self._bus
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:
env = os.environ.copy()
@ -612,7 +606,7 @@ class Namespace:
# In case this process needs DBus...
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):
self.processes.append(p)
@ -791,7 +785,7 @@ class TestContext(Namespace):
such as processes, radios, interfaces and test results.
'''
def __init__(self, args):
self.name = "root"
self.name = None
self.processes = []
self.args = args
self.hw_config = None