diff options
author | Paul Vinciguerra <pvinci@vinciconsulting.com> | 2019-06-20 12:24:12 -0400 |
---|---|---|
committer | Andrew Yourtchenko <ayourtch@gmail.com> | 2019-06-24 16:03:09 +0000 |
commit | 496b0dee7f6fe4a0b18c5a5993c11840fd9a1ccc (patch) | |
tree | 167dd4fbddfcc41980f175381f719be75b4d8cf5 /test/hook.py | |
parent | b98dbb1f2f94aba78a1b37c70721b562d13e1d7c (diff) |
tests: refactor VppDiedError.
- Move Exception into same module as TestCase.
- Move the error reporting logic inside the error.
- Allows testing of the returncode and signal_name for tests to consume.
- Fix the signal reporting code:
VppDiedError: VPP subprocess died unexpectedly with returncode -6 [unknown].
displays as:
VppDiedError: VPP subprocess died unexpectedly with return code: -6 [SIGABRT].
Type: test
Change-Id: I8488ab318a596c9b737308829cedfb7e96e57302
Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Diffstat (limited to 'test/hook.py')
-rw-r--r-- | test/hook.py | 24 |
1 files changed, 4 insertions, 20 deletions
diff --git a/test/hook.py b/test/hook.py index ccc5c86b9c3..97b05d05153 100644 --- a/test/hook.py +++ b/test/hook.py @@ -1,13 +1,12 @@ -import signal import os import sys import traceback -from log import RED, single_line_delim, double_line_delim import ipaddress from subprocess import check_output, CalledProcessError import scapy.compat - +import framework +from log import RED, single_line_delim, double_line_delim from util import check_core_path, get_core_path @@ -72,10 +71,6 @@ class Hook(object): pass -class VppDiedError(Exception): - pass - - class PollHook(Hook): """ Hook which checks if the vpp subprocess is alive """ @@ -117,22 +112,11 @@ class PollHook(Hook): self.test.vpp.poll() if self.test.vpp.returncode is not None: - signaldict = dict( - (k, v) for v, k in reversed(sorted(signal.__dict__.items())) - if v.startswith('SIG') and not v.startswith('SIG_')) - - if self.test.vpp.returncode in signaldict: - s = signaldict[abs(self.test.vpp.returncode)] - else: - s = "unknown" - msg = "VPP subprocess died unexpectedly with returncode %d [%s]." \ - % (self.test.vpp.returncode, s) - self.logger.critical(msg) + self.test.vpp_dead = True + raise framework.VppDiedError(rv=self.test.vpp.returncode) core_path = get_core_path(self.test.tempdir) if os.path.isfile(core_path): self.on_crash(core_path) - self.test.vpp_dead = True - raise VppDiedError(msg) def before_api(self, api_name, api_args): """ |