From a47f214e3f6a20b0afa5cd746632de000f8677b8 Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sat, 4 Mar 2017 16:59:57 +0200 Subject: [PATCH] tests: Automatic channel selection failures Signed-off-by: Jouni Malinen --- tests/hwsim/test_ap_acs.py | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/tests/hwsim/test_ap_acs.py b/tests/hwsim/test_ap_acs.py index 987f5793e..0e4ef477c 100644 --- a/tests/hwsim/test_ap_acs.py +++ b/tests/hwsim/test_ap_acs.py @@ -1,5 +1,5 @@ # Test cases for automatic channel selection with hostapd -# Copyright (c) 2013-2015, Jouni Malinen +# Copyright (c) 2013-2017, Jouni Malinen # # This software may be distributed under the terms of the BSD license. # See README for more details. @@ -9,7 +9,7 @@ logger = logging.getLogger() import time import hostapd -from utils import skip_with_fips +from utils import skip_with_fips, alloc_fail, fail_test from test_ap_ht import clear_scan_cache def force_prev_ap_on_24g(ap): @@ -336,3 +336,36 @@ def test_ap_acs_survey(dev, apdev): raise Exception("Unexpected frequency") dev[0].connect("test-acs", psk="12345678", scan_freq=freq) + +def test_ap_acs_errors(dev, apdev): + """Automatic channel selection failures""" + clear_scan_cache(apdev[0]) + force_prev_ap_on_24g(apdev[0]) + params = hostapd.wpa2_params(ssid="test-acs", passphrase="12345678") + params['channel'] = '0' + params['acs_num_scans'] = '2' + params['chanlist'] = '1' + hapd = hostapd.add_ap(apdev[0], params, no_enable=True) + + with alloc_fail(hapd, 1, "acs_request_scan"): + if "FAIL" not in hapd.request("ENABLE"): + raise Exception("Unexpected success for ENABLE") + + hapd.dump_monitor() + with fail_test(hapd, 1, "acs_request_scan"): + if "FAIL" not in hapd.request("ENABLE"): + raise Exception("Unexpected success for ENABLE") + + hapd.dump_monitor() + with fail_test(hapd, 1, "acs_scan_complete"): + hapd.enable() + ev = hapd.wait_event(["AP-ENABLED", "AP-DISABLED"], timeout=10) + if not ev: + raise Exception("ACS start timed out") + + hapd.dump_monitor() + with fail_test(hapd, 1, "acs_request_scan;acs_scan_complete"): + hapd.enable() + ev = hapd.wait_event(["AP-ENABLED", "AP-DISABLED"], timeout=10) + if not ev: + raise Exception("ACS start timed out")