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:

committed by
Florin Coras

parent
24db0ec78f
commit
e2efd12b84
@ -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()
|
||||||
|
@ -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):
|
||||||
|
Reference in New Issue
Block a user