[PATCH v2] hwsim tests: check kernel messages for warnings/bugs

Johannes Berg johannes
Mon Nov 4 01:00:36 PST 2013


From: Johannes Berg <johannes.berg at intel.com>

When a test passes but the kernel printed warnings, consider
the test to have failed.

Signed-hostap: Johannes Berg <johannes.berg at intel.com>
---
 tests/hwsim/check_kernel.py | 22 ++++++++++++++++++++++
 tests/hwsim/run-tests.py    | 16 +++++++++++++---
 2 files changed, 35 insertions(+), 3 deletions(-)
 create mode 100644 tests/hwsim/check_kernel.py

diff --git a/tests/hwsim/check_kernel.py b/tests/hwsim/check_kernel.py
new file mode 100644
index 0000000..30f6718
--- /dev/null
+++ b/tests/hwsim/check_kernel.py
@@ -0,0 +1,22 @@
+# kernel message checker module
+#
+# Copyright (c) 2013, Intel Corporation
+#
+# Author: Johannes Berg <johannes at sipsolutions.net>
+#
+# This software may be distributed under the terms of the BSD license.
+# See README for more details.
+#
+"""
+Tests for kernel messages to find if there were any issues in them.
+"""
+
+import re
+
+issue = re.compile('(\[[0-9 .]*\] )?(WARNING:|BUG:).*')
+
+def check_kernel(logfile):
+    for line in open(logfile, 'r'):
+        if issue.match(line):
+            return False
+    return True
diff --git a/tests/hwsim/run-tests.py b/tests/hwsim/run-tests.py
index 08706f6..e921d74 100755
--- a/tests/hwsim/run-tests.py
+++ b/tests/hwsim/run-tests.py
@@ -21,6 +21,7 @@ sys.path.append('../../wpaspy')
 
 from wpasupplicant import WpaSupplicant
 from hostapd import HostapdGlobal
+from check_kernel import check_kernel
 
 def reset_devs(dev, apdev):
     hapd = HostapdGlobal()
@@ -286,15 +287,12 @@ def main():
                 else:
                     res = t(dev)
                 if res == "skip":
-                    skipped.append(name)
                     result = "SKIP"
                 else:
-                    passed.append(name)
                     result = "PASS"
             except Exception, e:
                 logger.info(e)
                 result = "FAIL"
-                failed.append(name)
             for d in dev:
                 try:
                     d.request("NOTE TEST-STOP " + name)
@@ -314,6 +312,18 @@ def main():
 
         end = datetime.now()
         diff = end - start
+
+        if result == 'PASS' and args.dmesg:
+            if not check_kernel(os.path.join(args.logdir, name + '.dmesg')):
+                result = 'FAIL'
+
+        if result == 'PASS':
+            passed.append(name)
+        elif result == 'SKIP':
+            skipped.append(name)
+        else:
+            failed.append(name)
+
         report(conn, args.prefill, args.build, args.commit, run, name, result, diff.total_seconds())
         result = "{} {} {} {}".format(result, name, diff.total_seconds(), end)
         logger.info(result)
-- 
1.8.4.rc3




More information about the Hostap mailing list