[PATCH v5 1/2] tests: Save the log of wmediumd

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Masashi Honma <masashi.honma@xxxxxxxxx>
---
 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


_______________________________________________
Hostap mailing list
Hostap@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/hostap



[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux