From 9736bc211c8abccc98cf900a127e3faa0a231006 Mon Sep 17 00:00:00 2001 From: Tim Kourt Date: Tue, 23 Jul 2019 18:12:59 -0700 Subject: [PATCH] auto-t: Test disconnect on connect while connected --- .../connection_test.py | 69 +++++++++++++++++++ autotests/testDisconnectOnConnect/hw.conf | 7 ++ .../testDisconnectOnConnect/ssidOpen.conf | 3 + .../testDisconnectOnConnect/ssidTKIP.conf | 7 ++ 4 files changed, 86 insertions(+) create mode 100644 autotests/testDisconnectOnConnect/connection_test.py create mode 100644 autotests/testDisconnectOnConnect/hw.conf create mode 100644 autotests/testDisconnectOnConnect/ssidOpen.conf create mode 100644 autotests/testDisconnectOnConnect/ssidTKIP.conf diff --git a/autotests/testDisconnectOnConnect/connection_test.py b/autotests/testDisconnectOnConnect/connection_test.py new file mode 100644 index 00000000..d5dc81dc --- /dev/null +++ b/autotests/testDisconnectOnConnect/connection_test.py @@ -0,0 +1,69 @@ +#!/usr/bin/python3 + +import unittest +import sys + +sys.path.append('../util') +import iwd +from iwd import IWD +from iwd import PSKAgent +from iwd import NetworkType +import testutil + +class Test(unittest.TestCase): + + def test_connection_success(self): + wd = IWD() + + psk_agent = PSKAgent("secret123") + wd.register_psk_agent(psk_agent) + + device = wd.list_devices(1)[0] + + condition = 'not obj.scanning' + wd.wait_for_object_condition(device, condition) + + device.scan() + + condition = 'not obj.scanning' + wd.wait_for_object_condition(device, condition) + + wpa_net = device.get_ordered_network('ssidTKIP') + self.assertEqual(wpa_net.type, NetworkType.psk) + + condition = 'not obj.connected' + wd.wait_for_object_condition(wpa_net.network_object, condition) + + wpa_net.network_object.connect() + + condition = 'obj.connected' + wd.wait_for_object_condition(wpa_net.network_object, condition) + + open_net = device.get_ordered_network('ssidOpen') + self.assertEqual(open_net.type, NetworkType.open) + + open_net.network_object.connect() + + condition = 'obj.connected' + wd.wait_for_object_condition(open_net.network_object, condition) + + condition = 'obj.state == DeviceState.connected' + wd.wait_for_object_condition(device, condition) + + device.disconnect() + + condition = 'not obj.connected' + wd.wait_for_object_condition(open_net.network_object, condition) + + wd.unregister_psk_agent(psk_agent) + + @classmethod + def setUpClass(cls): + pass + + @classmethod + def tearDownClass(cls): + IWD.clear_storage() + +if __name__ == '__main__': + unittest.main(exit=True) diff --git a/autotests/testDisconnectOnConnect/hw.conf b/autotests/testDisconnectOnConnect/hw.conf new file mode 100644 index 00000000..d95b41e2 --- /dev/null +++ b/autotests/testDisconnectOnConnect/hw.conf @@ -0,0 +1,7 @@ +[SETUP] +num_radios=3 +max_test_exec_interval_sec=40 + +[HOSTAPD] +rad0=ssidTKIP.conf +rad1=ssidOpen.conf diff --git a/autotests/testDisconnectOnConnect/ssidOpen.conf b/autotests/testDisconnectOnConnect/ssidOpen.conf new file mode 100644 index 00000000..03efa0a3 --- /dev/null +++ b/autotests/testDisconnectOnConnect/ssidOpen.conf @@ -0,0 +1,3 @@ +hw_mode=g +channel=1 +ssid=ssidOpen diff --git a/autotests/testDisconnectOnConnect/ssidTKIP.conf b/autotests/testDisconnectOnConnect/ssidTKIP.conf new file mode 100644 index 00000000..11ef15f0 --- /dev/null +++ b/autotests/testDisconnectOnConnect/ssidTKIP.conf @@ -0,0 +1,7 @@ +hw_mode=g +channel=1 +ssid=ssidTKIP + +wpa=1 +wpa_pairwise=TKIP +wpa_passphrase=secret123