12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- # hostapd and out-of-memory error paths
- # Copyright (c) 2015, Jouni Malinen
- #
- # This software may be distributed under the terms of the BSD license.
- # See README for more details.
- import logging
- logger = logging.getLogger()
- import hostapd
- from utils import HwsimSkip
- def hostapd_oom_loop(apdev, params):
- hapd = hostapd.add_ap(apdev[0]['ifname'], { "ssid": "ctrl" })
- hapd_global = hostapd.HostapdGlobal()
- count = 0
- for i in range(1, 1000):
- if "OK" not in hapd.request("TEST_ALLOC_FAIL %d:main" % i):
- raise HwsimSkip("TEST_ALLOC_FAIL not supported")
- try:
- hostapd.add_ap(apdev[1]['ifname'], params)
- logger.info("Iteration %d - success" % i)
- hapd_global.remove(apdev[1]['ifname'])
- state = hapd.request('GET_ALLOC_FAIL')
- logger.info("GET_ALLOC_FAIL: " + state)
- hapd.request("TEST_ALLOC_FAIL 0:")
- if i < 3:
- raise Exception("AP setup succeeded during out-of-memory")
- if not state.startswith('0:'):
- count += 1
- if count == 5:
- break
- except Exception, e:
- logger.info("Iteration %d - %s" % (i, str(e)))
- def test_hostapd_oom_open(dev, apdev):
- """hostapd failing to setup open mode due to OOM"""
- params = { "ssid": "open" }
- hostapd_oom_loop(apdev, params)
- def test_hostapd_oom_wpa2_psk(dev, apdev):
- """hostapd failing to setup WPA2-PSK mode due to OOM"""
- params = hostapd.wpa2_params(ssid="test", passphrase="12345678")
- params['wpa_psk_file'] = 'hostapd.wpa_psk'
- hostapd_oom_loop(apdev, params)
- def test_hostapd_oom_wpa2_eap(dev, apdev):
- """hostapd failing to setup WPA2-EAP mode due to OOM"""
- params = hostapd.wpa2_eap_params(ssid="test")
- params['acct_server_addr'] = "127.0.0.1"
- params['acct_server_port'] = "1813"
- params['acct_server_shared_secret'] = "radius"
- hostapd_oom_loop(apdev, params)
|