diff options
author | Klement Sekera <ksekera@cisco.com> | 2017-08-08 04:33:53 +0200 |
---|---|---|
committer | Dave Wallace <dwallacelf@gmail.com> | 2017-08-10 00:14:59 +0000 |
commit | 909a6a1eb92ceacb983bcff088fb512352929c46 (patch) | |
tree | 0c99faec79006ae9c4e7802e992d698d342b88be /test/sanity_run_vpp.py | |
parent | 52851e6aa9304054fd1059c8dd284abf8e532bf2 (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.py | 10 |
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) |