mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-22 06:29:23 +01:00
auto-t: fix unpredictability/pointless test from testAgent
testAgent had a few tests which weren't reliable, and one was not actually testing anything, or at least not what the name implied it should be testing. The first issue was using iwctl in the first place. There is not a reliable way to know when iwctl has registered its agent so relying on that with a sleep, or waiting for the service to become available isn't 100% fool proof. To fix this use the updated PSKAgent which allows multiple to be registered. This ensures the agent is ready for requests. This test was also renamed to be consistent with what its actually testing: that IWD uses the first agent registered. This removes test_connection_with_other_agent as well because this test case is covered by the client test itself. There is no need to re-test iwctl's agent functionality here.
This commit is contained in:
parent
01ae1a9d88
commit
5b58390b8d
@ -56,51 +56,19 @@ class Test(unittest.TestCase):
|
|||||||
|
|
||||||
IWD.clear_storage()
|
IWD.clear_storage()
|
||||||
|
|
||||||
def test_connection_with_other_agent(self):
|
def test_connection_use_first_from_multiple_registered(self):
|
||||||
def wait_for_service_pid(pid):
|
|
||||||
dbus_object = ctx._bus.get_object('org.freedesktop.DBus',
|
|
||||||
'/org/freedesktop/DBus')
|
|
||||||
dbus_iface = dbus.Interface(dbus_object, 'org.freedesktop.DBus')
|
|
||||||
|
|
||||||
services = dbus_iface.ListNames()
|
|
||||||
|
|
||||||
for service in services:
|
|
||||||
bus_iface = dbus.Interface(dbus_object, "org.freedesktop.DBus")
|
|
||||||
if pid == int(bus_iface.GetConnectionUnixProcessID(service)):
|
|
||||||
return True
|
|
||||||
|
|
||||||
return False
|
|
||||||
|
|
||||||
wd = IWD()
|
wd = IWD()
|
||||||
|
|
||||||
iwctl = ctx.start_process(['iwctl', '-P', 'secret_ssid2'])
|
|
||||||
|
|
||||||
# Let iwctl to start and register its agent.
|
|
||||||
ctx.non_block_wait(wait_for_service_pid, 10, iwctl.pid)
|
|
||||||
|
|
||||||
self.check_connection(wd, 'ssid2')
|
|
||||||
|
|
||||||
iwctl.kill()
|
|
||||||
|
|
||||||
IWD.clear_storage()
|
|
||||||
|
|
||||||
def test_connection_use_own_agent_from_multiple_registered(self):
|
|
||||||
|
|
||||||
wd = IWD()
|
|
||||||
|
|
||||||
iwctl = ctx.start_process(['iwctl', '-P', 'secret_ssid2'])
|
|
||||||
# Let iwctl to start and register its agent.
|
|
||||||
wd.wait(2)
|
|
||||||
|
|
||||||
psk_agent = PSKAgent("secret_ssid1")
|
psk_agent = PSKAgent("secret_ssid1")
|
||||||
wd.register_psk_agent(psk_agent)
|
wd.register_psk_agent(psk_agent)
|
||||||
|
|
||||||
|
psk_agent = PSKAgent("secret_ssid2")
|
||||||
|
wd.register_psk_agent(psk_agent)
|
||||||
|
|
||||||
self.check_connection(wd, 'ssid1')
|
self.check_connection(wd, 'ssid1')
|
||||||
|
|
||||||
wd.unregister_psk_agent(psk_agent)
|
wd.unregister_psk_agent(psk_agent)
|
||||||
|
|
||||||
iwctl.kill()
|
|
||||||
|
|
||||||
IWD.clear_storage()
|
IWD.clear_storage()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
Loading…
Reference in New Issue
Block a user