From 31b18a8c8b4aaeaf1aa84455416198100f51b140 Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Tue, 25 Jun 2024 06:06:22 -0700 Subject: [PATCH] auto-t: add test for deauth after authentication This code path is not exercised in the autotest but commonly does happen in the real world. There is no associated bug with this, but its helpful to have this event triggered in case something got introduced in the future. --- autotests/testWPA2/failure_test.py | 32 +++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/autotests/testWPA2/failure_test.py b/autotests/testWPA2/failure_test.py index 61cf6ade..c8ecb33c 100644 --- a/autotests/testWPA2/failure_test.py +++ b/autotests/testWPA2/failure_test.py @@ -8,11 +8,12 @@ import iwd from iwd import IWD from iwd import PSKAgent from iwd import NetworkType +from hostapd import HostapdCLI import testutil class Test(unittest.TestCase): - def test_connection_success(self): + def test_incorrect_password(self): wd = IWD(True) psk_agent = PSKAgent("InvalidPassword") @@ -34,6 +35,35 @@ class Test(unittest.TestCase): wd.unregister_psk_agent(psk_agent) + def test_deauth_after_connection(self): + wd = IWD(True) + hostapd = HostapdCLI(config="ssidWPA2.conf") + + psk_agent = PSKAgent("secret123") + wd.register_psk_agent(psk_agent) + + devices = wd.list_devices(1) + self.assertIsNotNone(devices) + device = devices[0] + + ordered_network = device.get_ordered_network('ssidWPA2') + + self.assertEqual(ordered_network.type, NetworkType.psk) + + condition = 'not obj.connected' + wd.wait_for_object_condition(ordered_network.network_object, condition) + + ordered_network.network_object.connect(wait=False) + + device.wait_for_event("authenticating") + + # Trigger a deauth just after authenticating + hostapd.deauthenticate(device.address) + + device.wait_for_event("disconnected") + + wd.unregister_psk_agent(psk_agent) + @classmethod def setUpClass(cls): pass