[PATCH v5 1/2] tests: Save the log of wmediumd
Masashi Honma
masashi.honma at gmail.com
Mon Feb 27 16:50:51 PST 2017
Signed-off-by: Masashi Honma <masashi.honma at gmail.com>
---
tests/hwsim/run-tests.py | 2 ++
tests/hwsim/test_wmediumd.py | 46 +++++++++++++++++++++++++++++++++-----------
2 files changed, 37 insertions(+), 11 deletions(-)
diff --git a/tests/hwsim/run-tests.py b/tests/hwsim/run-tests.py
index 6f62dea..80981ba 100755
--- a/tests/hwsim/run-tests.py
+++ b/tests/hwsim/run-tests.py
@@ -516,6 +516,8 @@ def main():
rename_log(args.logdir, 'fst-wpa_supplicant', name, None)
if os.path.exists(os.path.join(args.logdir, 'fst-hostapd')):
rename_log(args.logdir, 'fst-hostapd', name, None)
+ if os.path.exists(os.path.join(args.logdir, 'wmediumd.log')):
+ rename_log(args.logdir, 'wmediumd.log', name, None)
end = datetime.now()
diff = end - start
diff --git a/tests/hwsim/test_wmediumd.py b/tests/hwsim/test_wmediumd.py
index 3319673..5c23658 100644
--- a/tests/hwsim/test_wmediumd.py
+++ b/tests/hwsim/test_wmediumd.py
@@ -18,26 +18,50 @@ ifaces :
};
"""
-def test_wmediumd_simple(dev, apdev):
+def output_wmediumd_log(p, params, data):
+ log_file = open(os.path.abspath(os.path.join(params['logdir'], 'wmediumd.log')), 'a')
+ log_file.write(data)
+ log_file.close()
+
+def start_wmediumd(fn, params):
+ try:
+ p = subprocess.Popen(['wmediumd', '-c', fn],
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT)
+ except OSError, e:
+ if e.errno == errno.ENOENT:
+ raise HwsimSkip('wmediumd not available')
+ raise
+
+ logs = ''
+ while True:
+ line = p.stdout.readline()
+ if not line:
+ output_wmediumd_log(p, params, logs)
+ raise Exception('wmediumd was terminated unexpectedly')
+ if line.find('REGISTER SENT!') > -1:
+ break
+ logs += line
+ return p
+
+def stop_wmediumd(p, params):
+ p.terminate()
+ p.wait()
+ stdoutdata, stderrdata = p.communicate()
+ output_wmediumd_log(p, params, stdoutdata)
+
+def test_wmediumd_simple(dev, apdev, params):
"""test a simple wmediumd configuration"""
fd, fn = tempfile.mkstemp()
try:
f = os.fdopen(fd, 'w')
f.write(CFG % (apdev[0]['bssid'], dev[0].own_addr()))
f.close()
- try:
- p = subprocess.Popen(['wmediumd', '-c', fn],
- stdout=open('/dev/null', 'a'),
- stderr=subprocess.STDOUT)
- except OSError, e:
- if e.errno == errno.ENOENT:
- raise HwsimSkip("wmediumd not available")
- raise
+ p = start_wmediumd(fn, params)
try:
_test_ap_open(dev, apdev)
finally:
- p.terminate()
- p.wait()
+ stop_wmediumd(p, params)
# test that releasing hwsim works correctly
_test_ap_open(dev, apdev)
finally:
--
2.7.4
More information about the Hostap
mailing list