summaryrefslogtreecommitdiffstats
path: root/test/sanity_run_vpp.py
diff options
context:
space:
mode:
authorKlement Sekera <ksekera@cisco.com>2017-08-08 04:33:53 +0200
committerDave Wallace <dwallacelf@gmail.com>2017-08-10 00:14:59 +0000
commit909a6a1eb92ceacb983bcff088fb512352929c46 (patch)
tree0c99faec79006ae9c4e7802e992d698d342b88be /test/sanity_run_vpp.py
parent52851e6aa9304054fd1059c8dd284abf8e532bf2 (diff)
make test: detect hung tests
Run tests in a forked process with a set of pipes to communicate keep-alives and overall result. This allows us to detect when e.g. vpp dies mid-API call causing the test to hang waiting for response (which will never come since vpp died). Support setting a (per test case) TIMEOUT make test option to set timeout, with a default timeout of 120 seconds. Example - fail the test suite if any test-case fails to finish within 300s: make TIMEOUT=300 test Change-Id: I0d04f26a7232968f4bf043adf5d5b508f5018717 Signed-off-by: Klement Sekera <ksekera@cisco.com>
Diffstat (limited to 'test/sanity_run_vpp.py')
-rw-r--r--test/sanity_run_vpp.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/test/sanity_run_vpp.py b/test/sanity_run_vpp.py
index 527b618fbd9..156608c104a 100644
--- a/test/sanity_run_vpp.py
+++ b/test/sanity_run_vpp.py
@@ -1,9 +1,10 @@
#!/usr/bin/env python
from __future__ import print_function
-from framework import VppTestCase
-from hook import VppDiedError
+from multiprocessing import Pipe
from sys import exit
+from hook import VppDiedError
+from framework import VppTestCase, KeepAliveReporter
class SanityTestCase(VppTestCase):
@@ -13,6 +14,9 @@ class SanityTestCase(VppTestCase):
if __name__ == '__main__':
rc = 0
tc = SanityTestCase
+ x, y = Pipe()
+ reporter = KeepAliveReporter()
+ reporter.pipe = y
try:
tc.setUpClass()
except VppDiedError:
@@ -22,5 +26,7 @@ if __name__ == '__main__':
tc.tearDownClass()
except:
pass
+ x.close()
+ y.close()
exit(rc)