tests: Generate a tarball of test results if a test fails
authorJouni Malinen <j@w1.fi>
Fri, 26 Apr 2013 10:48:48 +0000 (13:48 +0300)
committerJouni Malinen <j@w1.fi>
Fri, 26 Apr 2013 10:48:48 +0000 (13:48 +0300)
This makes it easier to collect failure data from test servers for
further analysis.

Signed-hostap: Jouni Malinen <j@w1.fi>

tests/hwsim/run-all.sh
tests/hwsim/run-tests.py

index 51b230b..3ef4666 100755 (executable)
@@ -3,8 +3,10 @@
 errors=0
 umask 0002
 ./start.sh
-./run-tests.py || errors=1
+DATE=`ls -1tr logs | tail -1 | cut -f1 -d-`
+./run-tests.py -e logs/$DATE-failed || errors=1
 ./stop-wifi.sh
 if [ $errors -gt 0 ]; then
+    tar czf /tmp/hwsim-tests-$DATE-FAILED.tar.gz logs/$DATE*
     exit 1
 fi
index c1de330..7bdd414 100755 (executable)
@@ -25,6 +25,7 @@ def reset_devs(dev, apdev):
 
 def main():
     test_file = None
+    error_file = None
     idx = 1
     if len(sys.argv) > 1 and sys.argv[1] == '-d':
         logging.basicConfig(level=logging.DEBUG)
@@ -35,6 +36,10 @@ def main():
     else:
         logging.basicConfig(level=logging.INFO)
 
+    if len(sys.argv) > idx + 1 and sys.argv[idx] == '-e':
+        error_file = sys.argv[idx + 1]
+        idx = idx + 2
+
     if len(sys.argv) > idx + 1 and sys.argv[idx] == '-f':
         test_file = sys.argv[idx + 1]
         idx = idx + 2
@@ -107,6 +112,10 @@ def main():
     if len(failed):
         print "passed " + str(len(passed)) + " test case(s)"
         print "failed tests: " + str(failed)
+        if error_file:
+            f = open(error_file, 'w')
+            f.write(str(failed) + '\n')
+            f.close()
         sys.exit(1)
     print "passed all " + str(len(passed)) + " test case(s)"