make test: Copy api_post_mortem.$$ file tmp test dir for archiving.

Change-Id: I4baf89ef383dbc2f309081a6b56b13ebcb8fc2df
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
This commit is contained in:
Dave Wallace
2017-09-30 22:04:21 -04:00
committed by Florin Coras
parent 24db0ec78f
commit e2efd12b84
2 changed files with 13 additions and 7 deletions

View File

@ -135,7 +135,7 @@ class KeepAliveReporter(object):
if not desc: if not desc:
desc = str(test) desc = str(test)
self.pipe.send((desc, test.vpp_bin, test.tempdir)) self.pipe.send((desc, test.vpp_bin, test.tempdir, test.vpp.pid))
class VppTestCase(unittest.TestCase): class VppTestCase(unittest.TestCase):
@ -214,10 +214,10 @@ class VppTestCase(unittest.TestCase):
except: except:
pass pass
if coredump_size is None: if coredump_size is None:
coredump_size = "full-coredump" coredump_size = "coredump-size unlimited"
cls.vpp_cmdline = [cls.vpp_bin, "unix", cls.vpp_cmdline = [cls.vpp_bin, "unix",
"{", "nodaemon", debug_cli, coredump_size, "}", "{", "nodaemon", debug_cli, "full-coredump",
"api-trace", "{", "on", "}", coredump_size, "}", "api-trace", "{", "on", "}",
"api-segment", "{", "prefix", cls.shm_prefix, "}", "api-segment", "{", "prefix", cls.shm_prefix, "}",
"plugins", "{", "plugin", "dpdk_plugin.so", "{", "plugins", "{", "plugin", "dpdk_plugin.so", "{",
"disable", "}", "}"] "disable", "}", "}"]
@ -304,11 +304,11 @@ class VppTestCase(unittest.TestCase):
cls.registry = VppObjectRegistry() cls.registry = VppObjectRegistry()
cls.vpp_startup_failed = False cls.vpp_startup_failed = False
cls.reporter = KeepAliveReporter() cls.reporter = KeepAliveReporter()
cls.reporter.send_keep_alive(cls)
# need to catch exceptions here because if we raise, then the cleanup # need to catch exceptions here because if we raise, then the cleanup
# doesn't get called and we might end with a zombie vpp # doesn't get called and we might end with a zombie vpp
try: try:
cls.run_vpp() cls.run_vpp()
cls.reporter.send_keep_alive(cls)
cls.vpp_stdout_deque = deque() cls.vpp_stdout_deque = deque()
cls.vpp_stderr_deque = deque() cls.vpp_stderr_deque = deque()
cls.pump_thread_stop_flag = Event() cls.pump_thread_stop_flag = Event()

View File

@ -1,6 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
import sys import sys
import shutil
import os import os
import select import select
import unittest import unittest
@ -50,8 +51,8 @@ def run_forked(suite):
result = result_parent_end.recv() result = result_parent_end.recv()
elif keep_alive_parent_end.fileno() in readable: elif keep_alive_parent_end.fileno() in readable:
while keep_alive_parent_end.poll(): while keep_alive_parent_end.poll():
last_test, last_test_vpp_binary, last_test_temp_dir =\ last_test, last_test_vpp_binary,\
keep_alive_parent_end.recv() last_test_temp_dir, vpp_pid = keep_alive_parent_end.recv()
else: else:
global_logger.critical("Timeout while waiting for child test " global_logger.critical("Timeout while waiting for child test "
"runner process (last test running was " "runner process (last test running was "
@ -63,6 +64,11 @@ def run_forked(suite):
global_logger.error("Creating a link to the failed " + global_logger.error("Creating a link to the failed " +
"test: %s -> %s" % (link_path, lttd)) "test: %s -> %s" % (link_path, lttd))
os.symlink(last_test_temp_dir, link_path) os.symlink(last_test_temp_dir, link_path)
api_post_mortem_path = "/tmp/api_post_mortem.%d" % vpp_pid
if os.path.isfile(api_post_mortem_path):
global_logger.error("Copying api_post_mortem.%d to %s" %
(vpp_pid, last_test_temp_dir))
shutil.copy2(api_post_mortem_path, last_test_temp_dir)
if last_test_temp_dir and last_test_vpp_binary: if last_test_temp_dir and last_test_vpp_binary:
core_path = "%s/core" % last_test_temp_dir core_path = "%s/core" % last_test_temp_dir
if os.path.isfile(core_path): if os.path.isfile(core_path):