mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2025-06-08 06:27:23 +02:00
auto-t: update several tests to work with netconfig refactor
Since the method return to Connect() and ConnectBssid() come after netconfig some tests needed to be updated since they were waiting for the method return before continuing. For timeout-based tests specifically this caused them to fail since before they expected the return to come before the connection was actually completed.
This commit is contained in:
parent
85a2637fc5
commit
86523b0597
@ -91,16 +91,11 @@ class Test(unittest.TestCase):
|
|||||||
# using the same static config. The new client's ACD client should
|
# using the same static config. The new client's ACD client should
|
||||||
# detect an IP conflict and not allow the device to reach the
|
# detect an IP conflict and not allow the device to reach the
|
||||||
# "connected" state although the DBus .Connect call will succeed.
|
# "connected" state although the DBus .Connect call will succeed.
|
||||||
ordered_network.network_object.connect()
|
with self.assertRaises(iwd.FailedEx):
|
||||||
self.assertEqual(dev2.state, iwd.DeviceState.connecting)
|
ordered_network.network_object.connect(timeout=500)
|
||||||
try:
|
|
||||||
# We should either stay in "connecting" indefinitely or move to
|
condition = 'obj.state == DeviceState.disconnected'
|
||||||
# "disconnecting"
|
|
||||||
condition = 'obj.state != DeviceState.connecting'
|
|
||||||
iwd_ns0_1.wait_for_object_condition(dev2, condition, max_wait=21)
|
iwd_ns0_1.wait_for_object_condition(dev2, condition, max_wait=21)
|
||||||
self.assertEqual(dev2.state, iwd.DeviceState.disconnecting)
|
|
||||||
except TimeoutError:
|
|
||||||
dev2.disconnect()
|
|
||||||
|
|
||||||
iwd_ns0_1.unregister_psk_agent(psk_agent_ns0_1)
|
iwd_ns0_1.unregister_psk_agent(psk_agent_ns0_1)
|
||||||
del dev2
|
del dev2
|
||||||
|
@ -8,6 +8,8 @@ from iwd import PSKAgent
|
|||||||
from iwd import NetworkType
|
from iwd import NetworkType
|
||||||
|
|
||||||
class Test(unittest.TestCase):
|
class Test(unittest.TestCase):
|
||||||
|
def connect_failure(self, ex):
|
||||||
|
self.failure_triggered = True
|
||||||
|
|
||||||
def test_netconfig_timeout(self):
|
def test_netconfig_timeout(self):
|
||||||
IWD.copy_to_storage('autoconnect.psk', name='ap-ns1.psk')
|
IWD.copy_to_storage('autoconnect.psk', name='ap-ns1.psk')
|
||||||
@ -27,23 +29,34 @@ class Test(unittest.TestCase):
|
|||||||
condition = 'not obj.connected'
|
condition = 'not obj.connected'
|
||||||
wd.wait_for_object_condition(ordered_network.network_object, condition)
|
wd.wait_for_object_condition(ordered_network.network_object, condition)
|
||||||
|
|
||||||
ordered_network.network_object.connect()
|
self.failure_triggered = False
|
||||||
|
|
||||||
condition = 'obj.state == DeviceState.connecting'
|
# Set our error handler here so we can check if it fails
|
||||||
|
ordered_network.network_object.connect(
|
||||||
|
wait=False,
|
||||||
|
timeout=1000,
|
||||||
|
error_handler=self.connect_failure
|
||||||
|
)
|
||||||
|
|
||||||
|
# IWD should attempt to try both BSS's with both failing netconfig.
|
||||||
|
# Then the autoconnect list should be exhausted, and IWD should
|
||||||
|
# transition to a disconnected state, then proceed to full autoconnect.
|
||||||
|
device.wait_for_event("netconfig-failed", timeout=1000)
|
||||||
|
device.wait_for_event("netconfig-failed", timeout=1000)
|
||||||
|
device.wait_for_event("disconnected")
|
||||||
|
|
||||||
|
device.wait_for_event("autoconnect_full")
|
||||||
|
|
||||||
|
# The connect call should have failed
|
||||||
|
self.assertTrue(self.failure_triggered)
|
||||||
|
|
||||||
|
condition = "obj.scanning"
|
||||||
|
wd.wait_for_object_condition(device, condition)
|
||||||
|
condition = "not obj.scanning"
|
||||||
wd.wait_for_object_condition(device, condition)
|
wd.wait_for_object_condition(device, condition)
|
||||||
|
|
||||||
device.wait_for_event("connecting (netconfig)")
|
# IWD should attempt to connect, but it will of course fail again.
|
||||||
|
device.wait_for_event("netconfig-failed", timeout=1000)
|
||||||
# Netconfig should fail, and IWD should disconnect
|
|
||||||
from_condition = 'obj.state == DeviceState.connecting'
|
|
||||||
to_condition = 'obj.state == DeviceState.disconnecting'
|
|
||||||
wd.wait_for_object_change(device, from_condition, to_condition, max_wait=60)
|
|
||||||
|
|
||||||
# Autoconnect should then try again
|
|
||||||
condition = 'obj.state == DeviceState.connecting'
|
|
||||||
wd.wait_for_object_condition(device, condition)
|
|
||||||
|
|
||||||
device.wait_for_event("connecting (netconfig)")
|
|
||||||
|
|
||||||
device.disconnect()
|
device.disconnect()
|
||||||
condition = 'obj.state == DeviceState.disconnected'
|
condition = 'obj.state == DeviceState.disconnected'
|
||||||
|
@ -19,7 +19,7 @@ class Test(unittest.TestCase):
|
|||||||
|
|
||||||
device = wd.list_devices(1)[0]
|
device = wd.list_devices(1)[0]
|
||||||
device.get_ordered_network('TestFT', full_scan=True)
|
device.get_ordered_network('TestFT', full_scan=True)
|
||||||
device.connect_bssid(self.bss_hostapd[1].bssid)
|
device.connect_bssid(self.bss_hostapd[1].bssid, wait=False)
|
||||||
|
|
||||||
self.bss_hostapd[1].wait_for_event(f'AP-STA-CONNECTED {device.address}')
|
self.bss_hostapd[1].wait_for_event(f'AP-STA-CONNECTED {device.address}')
|
||||||
device.wait_for_event("connecting (netconfig)")
|
device.wait_for_event("connecting (netconfig)")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user