[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