3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-11-20 04:19:25 +01:00
iwd/autotests/testDPP/connection_test.py
James Prestwood df46776046 auto-t: allow skipping tests is wpa_supplicant is not found
Similarly to ofono/phonesim allow tests to be skipped if wpa_supplicant
is not found on the system.

This required some changes to DPP/P2P where Wpas() should be called first
since this can now throw a SkipTest exception.

The Wpas class was also made to allow __del__ to be called without
throwing additional exceptions in case wpa_supplicant was not found.
2022-06-02 16:47:02 -05:00

139 lines
3.9 KiB
Python

#!/usr/bin/python3
import unittest
import sys
sys.path.append('../util')
from iwd import IWD
from wpas import Wpas
from hostapd import HostapdCLI
from hwsim import Hwsim
class Test(unittest.TestCase):
def test_iwd_as_enrollee(self):
self.device.autoconnect = True
self.hapd.reload()
uri = self.device.dpp_start_enrollee()
self.wpas.dpp_configurator_create(uri)
self.wpas.dpp_configurator_start('ssidCCMP', 'secret123')
condition = 'obj.state == DeviceState.connected'
self.wd.wait_for_object_condition(self.device, condition)
def test_iwd_as_enrollee_channel_switch(self):
self.device.autoconnect = True
self.hapd.reload()
uri = self.device.dpp_start_enrollee()
self.wpas.dpp_configurator_create(uri)
self.wpas.dpp_configurator_start('ssidCCMP', 'secret123', freq=2462)
condition = 'obj.state == DeviceState.connected'
self.wd.wait_for_object_condition(self.device, condition)
def test_iwd_as_enrollee_scan_after(self):
self.wpas.disconnect()
uri = self.device.dpp_start_enrollee()
self.wpas.dpp_configurator_create(uri)
self.wpas.dpp_configurator_start('ssidCCMP', 'secret123')
self.hapd.reload()
with self.assertRaises(Exception):
self.device.get_ordered_network('ssidCCMP', scan_if_needed=False)
self.hapd.wait_for_event('AP-ENABLED')
self.device.autoconnect = True
condition = 'obj.state == DeviceState.connected'
self.wd.wait_for_object_condition(self.device, condition)
def test_iwd_as_enrollee_no_ack(self):
self.rule0.enabled = True
self.device.autoconnect = True
self.hapd.reload()
uri = self.device.dpp_start_enrollee()
self.wpas.dpp_configurator_create(uri)
self.wpas.dpp_configurator_start('ssidCCMP', 'secret123')
condition = 'obj.state == DeviceState.connected'
self.wd.wait_for_object_condition(self.device, condition)
def test_iwd_as_configurator(self):
self.hapd.reload()
self.hapd.wait_for_event('AP-ENABLED')
IWD.copy_to_storage('ssidCCMP.psk')
self.device.autoconnect = True
condition = 'obj.state == DeviceState.connected'
self.wd.wait_for_object_condition(self.device, condition)
uri = self.device.dpp_start_configurator()
self.wpas.dpp_enrollee_start(uri)
self.wpas.wait_for_event('DPP-CONF-RECEIVED', timeout=30)
def test_iwd_as_configurator_initiator(self):
self.hapd.reload()
self.hapd.wait_for_event('AP-ENABLED')
IWD.copy_to_storage('ssidCCMP.psk')
self.device.autoconnect = True
condition = 'obj.state == DeviceState.connected'
self.wd.wait_for_object_condition(self.device, condition)
uri = self.wpas.dpp_enrollee_start(oper_and_channel='81/2')
self.device.dpp_start_configurator(uri)
self.wpas.wait_for_event('DPP-CONF-RECEIVED', timeout=30)
def setUp(self):
self.wpas = Wpas('wpas.conf')
self.wd = IWD(True)
self.device = self.wd.list_devices(1)[0]
self.hapd = HostapdCLI('hostapd.conf')
self.hapd.disable()
self.hwsim = Hwsim()
self.rule0 = self.hwsim.rules.create()
self.rule0.prefix = 'd0'
self.rule0.match_offset = 24
self.rule0.match = '04 09 50 6f 9a 1a 01 01'
self.rule0.match_times = 1
self.rule0.drop = True
def tearDown(self):
self.device.disconnect()
self.device.dpp_stop()
self.wpas.dpp_configurator_remove()
self.wpas.clean_up()
self.wd = None
self.device = None
self.wpas = None
self.hapd = None
self.rule0 = None
IWD.clear_storage()
@classmethod
def setUpClass(cls):
pass
@classmethod
def tearDownClass(cls):
pass
if __name__ == '__main__':
unittest.main(exit=True)