[PATCH 4/6] tests: ap_ht tests start using general cmd_execute() func
Jonathan Afek
jonathan at wizery.com
Tue Jun 7 06:42:41 PDT 2016
The ap_ht tests used to execute shell commands in the tests
using the subprocess python module.
Start using the cmd_execute() general function for executing
shell commands so that this would also work on remote setups.
Signed-off-by: Jonathan Afek <jonathanx.afek at intel.com>
---
tests/hwsim/test_ap_acs.py | 2 +-
tests/hwsim/test_ap_ht.py | 90 ++++++++++++++++++++-----------------
tests/hwsim/test_ap_vht.py | 2 +-
tests/hwsim/test_p2p_concurrency.py | 2 +-
4 files changed, 52 insertions(+), 44 deletions(-)
diff --git a/tests/hwsim/test_ap_acs.py b/tests/hwsim/test_ap_acs.py
index 89abb24..0f9bc8c 100644
--- a/tests/hwsim/test_ap_acs.py
+++ b/tests/hwsim/test_ap_acs.py
@@ -106,7 +106,7 @@ def test_ap_multi_bss_acs(dev, apdev):
def test_ap_acs_40mhz(dev, apdev):
"""Automatic channel selection for 40 MHz channel"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
force_prev_ap_on_24g(apdev[0])
params = hostapd.wpa2_params(ssid="test-acs", passphrase="12345678")
params['channel'] = '0'
diff --git a/tests/hwsim/test_ap_ht.py b/tests/hwsim/test_ap_ht.py
index 2089218..2a23751 100644
--- a/tests/hwsim/test_ap_ht.py
+++ b/tests/hwsim/test_ap_ht.py
@@ -8,22 +8,22 @@ import time
import logging
logger = logging.getLogger()
import struct
-import subprocess
import hostapd
from utils import HwsimSkip, alloc_fail
import hwsim_utils
from test_ap_csa import csa_supported
-def clear_scan_cache(ifname):
- subprocess.call(['ifconfig', ifname, 'up'])
- subprocess.call(['iw', ifname, 'scan', 'trigger', 'freq', '2412', 'flush'])
+def clear_scan_cache(apdev):
+ ifname = apdev['ifname']
+ hostapd.cmd_execute(apdev, ['ifconfig', ifname, 'up'])
+ hostapd.cmd_execute(apdev, ['iw', ifname, 'scan', 'trigger', 'freq', '2412', 'flush'])
time.sleep(0.1)
- subprocess.call(['ifconfig', ifname, 'down'])
+ hostapd.cmd_execute(apdev, ['ifconfig', ifname, 'down'])
def test_ap_ht40_scan(dev, apdev):
"""HT40 co-ex scan"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
params = { "ssid": "test-ht40",
"channel": "5",
"ht_capab": "[HT40-]"}
@@ -58,7 +58,7 @@ def test_ap_ht40_scan(dev, apdev):
def test_ap_ht40_scan_conflict(dev, apdev):
"""HT40 co-ex scan conflict"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
params = { "ssid": "test-ht40",
"channel": "6",
"ht_capab": "[HT40+]"}
@@ -98,7 +98,7 @@ def test_ap_ht40_scan_conflict(dev, apdev):
def test_ap_ht40_scan_conflict2(dev, apdev):
"""HT40 co-ex scan conflict (HT40-)"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
params = { "ssid": "test-ht40",
"channel": "11",
"ht_capab": "[HT40-]"}
@@ -138,18 +138,17 @@ def test_ap_ht40_scan_conflict2(dev, apdev):
def test_ap_ht40_scan_not_affected(dev, apdev):
"""HT40 co-ex scan and other BSS not affected"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
params = { "ssid": "test-ht20",
"channel": "11" }
hostapd.add_ap(apdev[1], params)
- subprocess.call(['ifconfig', apdev[0]['ifname'], 'up'])
- subprocess.call(['iw', apdev[0]['ifname'], 'scan', 'trigger', 'freq', '2462'])
+ hostapd.cmd_execute(apdev[0], ['ifconfig', apdev[0]['ifname'], 'up'])
+ hostapd.cmd_execute(apdev[0], ['iw', apdev[0]['ifname'], 'scan', 'trigger', 'freq', '2462'])
time.sleep(0.5)
- subprocess.call(['iw', apdev[0]['ifname'], 'scan', 'dump'],
- stdout=open('/dev/null', 'w'))
+ hostapd.cmd_execute(apdev[0], ['iw', apdev[0]['ifname'], 'scan', 'dump'])
time.sleep(0.1)
- subprocess.call(['ifconfig', apdev[0]['ifname'], 'down'])
+ hostapd.cmd_execute(apdev[0], ['ifconfig', apdev[0]['ifname'], 'down'])
params = { "ssid": "test-ht40",
"channel": "1",
@@ -185,7 +184,7 @@ def test_ap_ht40_scan_not_affected(dev, apdev):
def test_ap_ht40_scan_legacy_conflict(dev, apdev):
"""HT40 co-ex scan conflict with legacy 20 MHz AP"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
params = { "ssid": "legacy-20",
"channel": "7", "ieee80211n": "0" }
hostapd.add_ap(apdev[1], params)
@@ -224,7 +223,7 @@ def test_ap_ht40_scan_legacy_conflict(dev, apdev):
def test_ap_ht40_scan_ht20_conflict(dev, apdev):
"""HT40 co-ex scan conflict with HT 20 MHz AP"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
params = { "ssid": "ht-20",
"channel": "7", "ieee80211n": "1" }
hostapd.add_ap(apdev[1], params)
@@ -263,7 +262,7 @@ def test_ap_ht40_scan_ht20_conflict(dev, apdev):
def test_ap_ht40_scan_intolerant(dev, apdev):
"""HT40 co-ex scan finding an AP advertising 40 MHz intolerant"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
params = { "ssid": "another-bss",
"channel": "1",
"ht_capab": "[40-INTOLERANT]" }
@@ -303,7 +302,7 @@ def test_ap_ht40_scan_intolerant(dev, apdev):
def test_ap_ht40_scan_match(dev, apdev):
"""HT40 co-ex scan matching configuration"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
params = { "ssid": "test-ht40",
"channel": "5",
"ht_capab": "[HT40-]"}
@@ -343,7 +342,7 @@ def test_ap_ht40_scan_match(dev, apdev):
def test_ap_ht40_5ghz_match(dev, apdev):
"""HT40 co-ex scan on 5 GHz with matching pri/sec channel"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
try:
hapd = None
hapd2 = None
@@ -392,12 +391,13 @@ def test_ap_ht40_5ghz_match(dev, apdev):
hapd.request("DISABLE")
if hapd2:
hapd2.request("DISABLE")
- subprocess.call(['iw', 'reg', 'set', '00'])
- dev[0].flush_scan_cache()
+ hostapd.cmd_execute(apdev[0], ['iw', 'reg', 'set', '00'])
+ hostapd.cmd_execute(apdev[1], ['iw', 'reg', 'set', '00'])
+ dev[0].cmd_execute(['iw', 'reg', 'set', '00'])
def test_ap_ht40_5ghz_switch(dev, apdev):
"""HT40 co-ex scan on 5 GHz switching pri/sec channel"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
try:
hapd = None
hapd2 = None
@@ -446,11 +446,13 @@ def test_ap_ht40_5ghz_switch(dev, apdev):
hapd.request("DISABLE")
if hapd2:
hapd2.request("DISABLE")
- subprocess.call(['iw', 'reg', 'set', '00'])
+ hostapd.cmd_execute(apdev[0], ['iw', 'reg', 'set', '00'])
+ hostapd.cmd_execute(apdev[1], ['iw', 'reg', 'set', '00'])
+ dev[0].cmd_execute(['iw', 'reg', 'set', '00'])
def test_ap_ht40_5ghz_switch2(dev, apdev):
"""HT40 co-ex scan on 5 GHz switching pri/sec channel (2)"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
try:
hapd = None
hapd2 = None
@@ -508,7 +510,9 @@ def test_ap_ht40_5ghz_switch2(dev, apdev):
hapd.request("DISABLE")
if hapd2:
hapd2.request("DISABLE")
- subprocess.call(['iw', 'reg', 'set', '00'])
+ hostapd.cmd_execute(apdev[0], ['iw', 'reg', 'set', '00'])
+ hostapd.cmd_execute(apdev[1], ['iw', 'reg', 'set', '00'])
+ dev[0].cmd_execute(['iw', 'reg', 'set', '00'])
dev[0].flush_scan_cache()
def test_obss_scan(dev, apdev):
@@ -601,7 +605,7 @@ def test_obss_scan_40_intolerant(dev, apdev):
def test_obss_coex_report_handling(dev, apdev):
"""Overlapping BSS scan report handling with obss_interval=0"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
params = { "ssid": "obss-scan",
"channel": "6",
"ht_capab": "[HT40-]" }
@@ -630,7 +634,7 @@ def test_obss_coex_report_handling(dev, apdev):
def test_obss_coex_report_handling1(dev, apdev):
"""Overlapping BSS scan report handling with obss_interval=1"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
params = { "ssid": "obss-scan",
"channel": "6",
"ht_capab": "[HT40+]",
@@ -755,7 +759,8 @@ def test_olbc_5ghz(dev, apdev):
hapd.request("DISABLE")
if hapd2:
hapd2.request("DISABLE")
- subprocess.call(['iw', 'reg', 'set', '00'])
+ hostapd.cmd_execute(apdev[0], ['iw', 'reg', 'set', '00'])
+ hostapd.cmd_execute(apdev[1], ['iw', 'reg', 'set', '00'])
def test_ap_require_ht(dev, apdev):
"""Require HT"""
@@ -806,7 +811,7 @@ def test_ap_ht_capab_not_supported(dev, apdev):
def test_ap_ht_40mhz_intolerant_sta(dev, apdev):
"""Associated STA indicating 40 MHz intolerant"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
params = { "ssid": "intolerant",
"channel": "6",
"ht_capab": "[HT40-]" }
@@ -839,7 +844,7 @@ def test_ap_ht_40mhz_intolerant_sta(dev, apdev):
def test_ap_ht_40mhz_intolerant_ap(dev, apdev):
"""Associated STA reports 40 MHz intolerant AP after association"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
params = { "ssid": "ht",
"channel": "6",
"ht_capab": "[HT40-]",
@@ -928,7 +933,8 @@ def test_ap_ht40_csa(dev, apdev):
dev[0].request("DISCONNECT")
if hapd:
hapd.request("DISABLE")
- subprocess.call(['iw', 'reg', 'set', '00'])
+ dev[0].cmd_execute(['iw', 'reg', 'set', '00'])
+ hostapd.cmd_execute(apdev[0], ['iw', 'reg', 'set', '00'])
dev[0].flush_scan_cache()
def test_ap_ht40_csa2(dev, apdev):
@@ -972,7 +978,8 @@ def test_ap_ht40_csa2(dev, apdev):
dev[0].request("DISCONNECT")
if hapd:
hapd.request("DISABLE")
- subprocess.call(['iw', 'reg', 'set', '00'])
+ dev[0].cmd_execute(['iw', 'reg', 'set', '00'])
+ hostapd.cmd_execute(apdev[0], ['iw', 'reg', 'set', '00'])
dev[0].flush_scan_cache()
def test_ap_ht40_csa3(dev, apdev):
@@ -1016,7 +1023,8 @@ def test_ap_ht40_csa3(dev, apdev):
dev[0].request("DISCONNECT")
if hapd:
hapd.request("DISABLE")
- subprocess.call(['iw', 'reg', 'set', '00'])
+ dev[0].cmd_execute(['iw', 'reg', 'set', '00'])
+ hostapd.cmd_execute(apdev[0], ['iw', 'reg', 'set', '00'])
dev[0].flush_scan_cache()
def test_ap_ht_smps(dev, apdev):
@@ -1108,20 +1116,20 @@ def test_prefer_ht20_during_roam(dev, apdev):
dev[0].scan_for_bss(bssid2, freq=2412)
dev[0].scan(freq=2412)
dev[0].wait_connected()
-
+
if dev[0].get_status_field('bssid') != bssid2:
raise Exception("Unexpected BSS selected")
def test_ap_ht40_5ghz_invalid_pair(dev, apdev):
"""HT40 on 5 GHz with invalid channel pair"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
try:
params = { "ssid": "test-ht40",
"hw_mode": "a",
"channel": "40",
"country_code": "US",
"ht_capab": "[HT40+]"}
- hapd = hostapd.add_ap(apdev[1], params, wait_enabled=False)
+ hapd = hostapd.add_ap(apdev[0], params, wait_enabled=False)
ev = hapd.wait_event(["AP-DISABLED", "AP-ENABLED"], timeout=10)
if not ev:
raise Exception("AP setup failure timed out")
@@ -1130,18 +1138,18 @@ def test_ap_ht40_5ghz_invalid_pair(dev, apdev):
if sec != "0":
raise Exception("Invalid 40 MHz channel accepted")
finally:
- subprocess.call(['iw', 'reg', 'set', '00'])
+ hostapd.cmd_execute(apdev[0], ['iw', 'reg', 'set', '00'])
def test_ap_ht40_5ghz_disabled_sec(dev, apdev):
"""HT40 on 5 GHz with disabled secondary channel"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
try:
params = { "ssid": "test-ht40",
"hw_mode": "a",
"channel": "48",
"country_code": "US",
"ht_capab": "[HT40+]"}
- hapd = hostapd.add_ap(apdev[1], params, wait_enabled=False)
+ hapd = hostapd.add_ap(apdev[0], params, wait_enabled=False)
ev = hapd.wait_event(["AP-DISABLED", "AP-ENABLED"], timeout=10)
if not ev:
raise Exception("AP setup failure timed out")
@@ -1150,11 +1158,11 @@ def test_ap_ht40_5ghz_disabled_sec(dev, apdev):
if sec != "0":
raise Exception("Invalid 40 MHz channel accepted")
finally:
- subprocess.call(['iw', 'reg', 'set', '00'])
+ hostapd.cmd_execute(apdev[0], ['iw', 'reg', 'set', '00'])
def test_ap_ht40_scan_broken_ap(dev, apdev):
"""HT40 co-ex scan and broken legacy/HT AP"""
- clear_scan_cache(apdev[0]['ifname'])
+ clear_scan_cache(apdev[0])
# Broken AP: Include HT Capabilities element but not HT Operation element
params = { "ssid": "legacy-20",
diff --git a/tests/hwsim/test_ap_vht.py b/tests/hwsim/test_ap_vht.py
index 1a2ab1f..f2806a1 100644
--- a/tests/hwsim/test_ap_vht.py
+++ b/tests/hwsim/test_ap_vht.py
@@ -63,7 +63,7 @@ def test_ap_vht80(dev, apdev):
dev[0].flush_scan_cache()
def vht80_test(apdev, dev, channel, ht_capab):
- clear_scan_cache(apdev['ifname'])
+ clear_scan_cache(apdev)
try:
hapd = None
params = { "ssid": "vht",
diff --git a/tests/hwsim/test_p2p_concurrency.py b/tests/hwsim/test_p2p_concurrency.py
index a85b1f1..cf0aea1 100644
--- a/tests/hwsim/test_p2p_concurrency.py
+++ b/tests/hwsim/test_p2p_concurrency.py
@@ -39,7 +39,7 @@ def test_concurrent_autogo(dev, apdev):
def test_concurrent_autogo_5ghz_ht40(dev, apdev):
"""Concurrent P2P autonomous GO on 5 GHz and HT40 co-ex"""
- clear_scan_cache(apdev[1]['ifname'])
+ clear_scan_cache(apdev[1])
try:
hapd = None
hapd2 = None
--
1.9.1
More information about the Hostap
mailing list