diff --git a/tests/hwsim/hostapd.py b/tests/hwsim/hostapd.py index 6d6d641d4..9d670768b 100644 --- a/tests/hwsim/hostapd.py +++ b/tests/hwsim/hostapd.py @@ -12,6 +12,7 @@ import struct import wpaspy import remotehost import utils +import subprocess logger = logging.getLogger() hapd_ctrl = '/var/run/hostapd' @@ -41,6 +42,17 @@ class HostapdGlobal: self.dbg = hostname + "/" + str(port) self.mon.attach() + def cmd_execute(self, cmd_array): + if self.hostname is None: + cmd = ' '.join(cmd_array) + proc = subprocess.Popen(cmd, stderr=subprocess.STDOUT, + stdout=subprocess.PIPE, shell=True) + out = proc.communicate()[0] + ret = proc.returncode + return ret, out + else: + return self.host.execute(cmd_array) + def request(self, cmd, timeout=10): logger.debug(self.dbg + ": CTRL(global): " + cmd) return self.ctrl.request(cmd, timeout) @@ -134,6 +146,20 @@ class Hostapd: self.bssid = None self.bssidx = bssidx + def cmd_execute(self, cmd_array): + if self.hostname is None: + cmd = "" + for arg in cmd_array: + cmd += arg + " " + cmd = cmd.strip() + proc = subprocess.Popen(cmd, stderr=subprocess.STDOUT, + stdout=subprocess.PIPE, shell=True) + out = proc.communicate()[0] + ret = proc.returncode + return ret, out + else: + return self.host.execute(cmd_array) + def close_ctrl(self): if self.mon is not None: self.mon.detach() @@ -561,3 +587,7 @@ def ht40_minus_params(channel="1", ssid=None, country=None): params = ht20_params(channel, ssid, country) params['ht_capab'] = "[HT40-]" return params + +def cmd_execute(apdev, cmd): + hapd_global = HostapdGlobal(apdev) + return hapd_global.cmd_execute(cmd) diff --git a/tests/hwsim/wpasupplicant.py b/tests/hwsim/wpasupplicant.py index 7d80d6ba7..1f456905b 100644 --- a/tests/hwsim/wpasupplicant.py +++ b/tests/hwsim/wpasupplicant.py @@ -12,6 +12,7 @@ import re import struct import wpaspy import remotehost +import subprocess logger = logging.getLogger() wpas_ctrl = '/var/run/wpa_supplicant' @@ -48,6 +49,17 @@ class WpaSupplicant: else: self.global_mon = None + def cmd_execute(self, cmd_array): + if self.hostname is None: + cmd = ' '.join(cmd_array) + proc = subprocess.Popen(cmd, stderr=subprocess.STDOUT, + stdout=subprocess.PIPE, shell=True) + out = proc.communicate()[0] + ret = proc.returncode + return ret, out + else: + return self.host.execute(cmd_array) + def terminate(self): if self.global_mon: self.global_mon.detach()