selftest/context: Avoid tracebacks from tests using multiprocessing

We can see tracebacks where the SIGTERM handler catches things
it shouldn't. Avoid exit(1) unless we're the process that
it was intended for.

[YOCTO #13664]

(From OE-Core rev: d9c62ffac611310efd47ed6397d31dccb72fe868)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2020-02-19 17:27:26 +00:00
parent fe4f4ac4da
commit dba8c1d5ef

View File

@@ -280,11 +280,15 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
return rc
def _signal_clean_handler(self, signum, frame):
sys.exit(1)
if self.ourpid == os.getpid():
sys.exit(1)
def run(self, logger, args):
self._process_args(logger, args)
# Setup a SIGTERM handler to allow restoration of files like local.conf and bblayers.conf
# but don't interfer with other processes
self.ourpid = os.getpid()
signal.signal(signal.SIGTERM, self._signal_clean_handler)
rc = None