diff --git a/autotests/testDPP/connection_test.py b/autotests/testDPP/connection_test.py index ab3cbf95..0f9b8f1c 100644 --- a/autotests/testDPP/connection_test.py +++ b/autotests/testDPP/connection_test.py @@ -99,9 +99,9 @@ class Test(unittest.TestCase): 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.wpas = Wpas('wpas.conf') self.hapd = HostapdCLI('hostapd.conf') self.hapd.disable() self.hwsim = Hwsim() @@ -114,7 +114,6 @@ class Test(unittest.TestCase): self.rule0.drop = True def tearDown(self): - print("calling Disconnect()") self.device.disconnect() self.device.dpp_stop() self.wpas.dpp_configurator_remove() diff --git a/autotests/testP2P/connection_test.py b/autotests/testP2P/connection_test.py index f22f0682..383e0cef 100644 --- a/autotests/testP2P/connection_test.py +++ b/autotests/testP2P/connection_test.py @@ -29,8 +29,8 @@ class Test(unittest.TestCase): self.p2p_connect_test(preauthorize=True, go=True) def p2p_connect_test(self, preauthorize, go): - wd = IWD() wpas = self.wpas = Wpas(p2p=True) + wd = IWD() wpas_go_intent = 10 if not go else 1 # Not strictly necessary but prevents the station interface from queuing its scans diff --git a/autotests/util/wpas.py b/autotests/util/wpas.py index 67b32d5f..c1a12b62 100644 --- a/autotests/util/wpas.py +++ b/autotests/util/wpas.py @@ -1,8 +1,10 @@ #!/usr/bin/python3 import os import socket +import shutil from gi.repository import GLib from config import ctx +from unittest import SkipTest import binascii @@ -11,7 +13,16 @@ from utils import Process ctrl_count = 0 class Wpas: + io_watch = None + sockets = {} + wpa_supplicant = None + cleanup_paths = [] + def _start_wpas(self, config_name=None, p2p=False): + if not shutil.which('wpa_supplicant'): + print('wpa_supplicant not found, skipping test') + raise SkipTest + main_interface = None for interface in ctx.wpas_interfaces: if config_name is None or interface.config == config_name: @@ -31,7 +42,6 @@ class Wpas: self.config_path = '/tmp/' + self.interface.config self.config = self._get_config() self.socket_path = self.config['ctrl_interface'] - self.io_watch = None cmd = ['wpa_supplicant', '-i', self.interface.name, '-c', self.config_path] if Process.is_verbose('wpa_supplicant-dbg'): @@ -40,7 +50,6 @@ class Wpas: self.wpa_supplicant = ctx.start_process(cmd) self.sockets = {} - self.cleanup_paths = [] self.io_watch = GLib.io_add_watch(self._get_socket(), GLib.IO_IN, self._handle_data_in) self.p2p_peers = {} diff --git a/tools/run-tests b/tools/run-tests index 04fb8fa9..14e1bfd3 100755 --- a/tools/run-tests +++ b/tools/run-tests @@ -425,10 +425,13 @@ class TestContext(Namespace): return frequencies def start_wpas_interfaces(self): - if 'WPA_SUPPLICANT' not in self.hw_config: return + if not shutil.which('wpa_supplicant'): + print('wpa_supplicant not found, dependent tests will be skipped') + return + settings = self.hw_config['WPA_SUPPLICANT'] if self.args.hw: