auto-t: Split EAP-WPS tests

Previously, the WPS tests have shared a single instance of iwd
among themselves. This approach didn’t allow to identify which
tests have passed and which failed. The new solution makes WPS
tests independent from each other by creating a new instance
of iwd for each one of them.
This commit is contained in:
Tim Kourt 2019-03-18 16:55:12 -07:00 committed by Denis Kenzior
parent 0288c537a2
commit 55b3a974c6
5 changed files with 154 additions and 80 deletions

View File

@ -0,0 +1,52 @@
#!/usr/bin/python3
import unittest
import sys
sys.path.append('../util')
import iwd
from iwd import IWD
from iwd import DeviceState
from hostapd import HostapdCLI
from hostapd import hostapd_map
class Test(unittest.TestCase):
def four_digit_pin_success(self, wd):
devices = wd.list_devices(1)
device = devices[0]
pin = '1234'
self.hostapd.wps_pin(pin)
device.wps_start_pin(pin)
condition = 'obj.state == DeviceState.connected'
wd.wait_for_object_condition(device, condition)
device.disconnect()
condition = 'obj.state == DeviceState.disconnected'
wd.wait_for_object_condition(device, condition)
def test_connection_success(self):
wd = IWD(True)
try:
self.four_digit_pin_success(wd)
finally:
del wd
@classmethod
def setUpClass(cls):
cls.hostapd_if = list(hostapd_map.values())[0]
cls.hostapd = HostapdCLI(cls.hostapd_if)
@classmethod
def tearDownClass(cls):
IWD.clear_storage()
if __name__ == '__main__':
unittest.main(exit=True)

View File

@ -1,5 +1,6 @@
[SETUP]
num_radios=2
start_iwd=false
max_test_exec_interval_sec=40
[HOSTAPD]

View File

@ -0,0 +1,51 @@
#!/usr/bin/python3
import unittest
import sys
sys.path.append('../util')
import iwd
from iwd import IWD
from iwd import DeviceState
from hostapd import HostapdCLI
from hostapd import hostapd_map
class Test(unittest.TestCase):
def pin_success(self, wd):
devices = wd.list_devices(1)
device = devices[0]
pin = device.wps_generate_pin()
self.hostapd.wps_pin(pin)
device.wps_start_pin(pin)
condition = 'obj.state == DeviceState.connected'
wd.wait_for_object_condition(device, condition)
device.disconnect()
condition = 'obj.state == DeviceState.disconnected'
wd.wait_for_object_condition(device, condition)
def test_connection_success(self):
wd = IWD(True)
try:
self.pin_success(wd)
finally:
del wd
@classmethod
def setUpClass(cls):
cls.hostapd_if = list(hostapd_map.values())[0]
cls.hostapd = HostapdCLI(cls.hostapd_if)
@classmethod
def tearDownClass(cls):
IWD.clear_storage()
if __name__ == '__main__':
unittest.main(exit=True)

View File

@ -0,0 +1,50 @@
#!/usr/bin/python3
import unittest
import sys
sys.path.append('../util')
import iwd
from iwd import IWD
from iwd import DeviceState
from hostapd import HostapdCLI
from hostapd import hostapd_map
class Test(unittest.TestCase):
def push_button_success(self, wd):
self.hostapd.wps_push_button()
devices = wd.list_devices(1)
device = devices[0]
device.wps_push_button()
condition = 'obj.state == DeviceState.connected'
wd.wait_for_object_condition(device, condition)
device.disconnect()
condition = 'obj.state == DeviceState.disconnected'
wd.wait_for_object_condition(device, condition)
def test_connection_success(self):
wd = IWD(True)
try:
self.push_button_success(wd)
finally:
del wd
@classmethod
def setUpClass(cls):
cls.hostapd_if = list(hostapd_map.values())[0]
cls.hostapd = HostapdCLI(cls.hostapd_if)
@classmethod
def tearDownClass(cls):
IWD.clear_storage()
if __name__ == '__main__':
unittest.main(exit=True)

View File

@ -1,80 +0,0 @@
#!/usr/bin/python3
import unittest
import sys
sys.path.append('../util')
import iwd
from iwd import IWD
from iwd import DeviceState
from hostapd import HostapdCLI
from hostapd import hostapd_map
class Test(unittest.TestCase):
def test_push_button_success(self):
self.hostapd.wps_push_button()
wd = IWD()
devices = wd.list_devices(1)
device = devices[0]
device.wps_push_button()
condition = 'obj.state == DeviceState.connected'
wd.wait_for_object_condition(device, condition)
device.disconnect()
condition = 'obj.state == DeviceState.disconnected'
wd.wait_for_object_condition(device, condition)
def test_pin_success(self):
wd = IWD()
devices = wd.list_devices(1)
device = devices[0]
pin = device.wps_generate_pin()
self.hostapd.wps_pin(pin)
device.wps_start_pin(pin)
condition = 'obj.state == DeviceState.connected'
wd.wait_for_object_condition(device, condition)
device.disconnect()
condition = 'obj.state == DeviceState.disconnected'
wd.wait_for_object_condition(device, condition)
def test_4_digit_pin_success(self):
wd = IWD()
devices = wd.list_devices(1)
device = devices[0]
pin = '1234'
self.hostapd.wps_pin(pin)
device.wps_start_pin(pin)
condition = 'obj.state == DeviceState.connected'
wd.wait_for_object_condition(device, condition)
device.disconnect()
condition = 'obj.state == DeviceState.disconnected'
wd.wait_for_object_condition(device, condition)
@classmethod
def setUpClass(cls):
cls.hostapd_if = list(hostapd_map.values())[0]
cls.hostapd = HostapdCLI(cls.hostapd_if)
@classmethod
def tearDownClass(cls):
IWD.clear_storage()
if __name__ == '__main__':
unittest.main(exit=True)