diff --git a/autotests/testNetconfig/connection_test.py b/autotests/testNetconfig/connection_test.py new file mode 100644 index 00000000..3a590aeb --- /dev/null +++ b/autotests/testNetconfig/connection_test.py @@ -0,0 +1,70 @@ +#!/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 +from config import ctx + +class Test(unittest.TestCase): + + def test_connection_success(self): + wd = IWD() + + psk_agent = PSKAgent("secret123") + wd.register_psk_agent(psk_agent) + + devices = wd.list_devices(1) + device = devices[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) + + ordered_network = device.get_ordered_network('ssidTKIP') + + 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() + + condition = 'obj.state == DeviceState.connected' + wd.wait_for_object_condition(device, condition) + + testutil.test_iface_operstate() + testutil.test_ifaces_connected() + + device.disconnect() + + condition = 'not obj.connected' + wd.wait_for_object_condition(ordered_network.network_object, condition) + + wd.unregister_psk_agent(psk_agent) + + @classmethod + def setUpClass(cls): + # TODO: This could be moved into test-runner itself if other tests ever + # require this functionality (p2p, FILS, etc.). Since its simple + # enough it can stay here for now. + ctx.start_process(['ifconfig', 'wln0', '192.168.1.1', 'netmask', '255.255.255.0'], + wait=True) + ctx.start_process(['touch', '/tmp/dhcpd.leases'], wait=True) + ctx.start_process(['dhcpd', '-cf', '/tmp/dhcpd.conf', '-lf', '/tmp/dhcpd.leases']) + + @classmethod + def tearDownClass(cls): + IWD.clear_storage() + +if __name__ == '__main__': + unittest.main(exit=True) diff --git a/autotests/testNetconfig/dhcpd.conf b/autotests/testNetconfig/dhcpd.conf new file mode 100644 index 00000000..77b4da1c --- /dev/null +++ b/autotests/testNetconfig/dhcpd.conf @@ -0,0 +1,16 @@ +default-lease-time 600; # 10 minutes +max-lease-time 7200; # 2 hours + +option broadcast-address 192.168.1.255; +option routers 192.168.1.254; +option subnet-mask 255.255.255.0; + +subnet 192.168.1.0 netmask 255.255.255.0 + { + option routers 192.168.1.1; + option subnet-mask 255.255.255.0; + option domain-name-servers 192.168.1.1; + interface wln0; + range 192.168.1.10 192.168.1.20; + range 192.168.1.100 192.168.1.200; + } diff --git a/autotests/testNetconfig/hw.conf b/autotests/testNetconfig/hw.conf new file mode 100644 index 00000000..75c5ac6e --- /dev/null +++ b/autotests/testNetconfig/hw.conf @@ -0,0 +1,6 @@ +[SETUP] +num_radios=2 +max_test_exec_interval_sec=40 + +[HOSTAPD] +rad0=ssidTKIP.conf diff --git a/autotests/testNetconfig/main.conf b/autotests/testNetconfig/main.conf new file mode 100644 index 00000000..982e5445 --- /dev/null +++ b/autotests/testNetconfig/main.conf @@ -0,0 +1,2 @@ +[General] +EnableNetworkConfiguration=true diff --git a/autotests/testNetconfig/ssidTKIP.conf b/autotests/testNetconfig/ssidTKIP.conf new file mode 100644 index 00000000..11ef15f0 --- /dev/null +++ b/autotests/testNetconfig/ssidTKIP.conf @@ -0,0 +1,7 @@ +hw_mode=g +channel=1 +ssid=ssidTKIP + +wpa=1 +wpa_pairwise=TKIP +wpa_passphrase=secret123