1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-08 17:19:20 +00:00

oeqa/selftest: Drop 'backup' code and SIGTERM handler

Now selftest is using its own copied build directory, we can stop worrying about
copying files around as backup, and drop the SIGTERM handler to try and restore
them, simplifying the code.

(From OE-Core rev: b8ea8a910267fee4bb9e57f24ba829064e22d016)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2020-02-19 18:32:19 +00:00
parent c569157d9d
commit bf745476ea
2 changed files with 4 additions and 73 deletions
+1 -29
View File
@@ -6,7 +6,6 @@
import sys
import os
import shutil
import glob
import errno
from unittest.util import safe_repr
@@ -30,9 +29,7 @@ class OESelftestTestCase(OETestCase):
cls.builddir = cls.tc.config_paths['builddir']
cls.localconf_path = cls.tc.config_paths['localconf']
cls.localconf_backup = cls.tc.config_paths['localconf_class_backup']
cls.local_bblayers_path = cls.tc.config_paths['bblayers']
cls.local_bblayers_backup = cls.tc.config_paths['bblayers_class_backup']
cls.testinc_path = os.path.join(cls.tc.config_paths['builddir'],
"conf/selftest.inc")
@@ -43,8 +40,7 @@ class OESelftestTestCase(OETestCase):
cls._track_for_cleanup = [
cls.testinc_path, cls.testinc_bblayers_path,
cls.machineinc_path, cls.localconf_backup,
cls.local_bblayers_backup]
cls.machineinc_path]
cls.add_include()
@@ -102,30 +98,6 @@ class OESelftestTestCase(OETestCase):
def setUp(self):
super(OESelftestTestCase, self).setUp()
os.chdir(self.builddir)
# Check if local.conf or bblayers.conf files backup exists
# from a previous failed test and restore them
if os.path.isfile(self.localconf_backup) or os.path.isfile(
self.local_bblayers_backup):
self.logger.debug("\
Found a local.conf and/or bblayers.conf backup from a previously aborted test.\
Restoring these files now, but tests should be re-executed from a clean environment\
to ensure accurate results.")
try:
shutil.copyfile(self.localconf_backup, self.localconf_path)
except OSError as e:
if e.errno != errno.ENOENT:
raise
try:
shutil.copyfile(self.local_bblayers_backup,
self.local_bblayers_path)
except OSError as e:
if e.errno != errno.ENOENT:
raise
else:
# backup local.conf and bblayers.conf
shutil.copyfile(self.localconf_path, self.localconf_backup)
shutil.copyfile(self.local_bblayers_path, self.local_bblayers_backup)
self.logger.debug("Creating local.conf and bblayers.conf backups.")
# we don't know what the previous test left around in config or inc files
# if it failed so we need a fresh start
try:
+3 -44
View File
@@ -9,9 +9,7 @@ import time
import glob
import sys
import importlib
import signal
import subprocess
from shutil import copyfile
from random import choice
import oeqa
@@ -185,26 +183,10 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
builddir = os.environ.get("BUILDDIR")
self.tc_kwargs['init']['config_paths'] = {}
self.tc_kwargs['init']['config_paths']['testlayer_path'] = \
get_test_layer()
self.tc_kwargs['init']['config_paths']['testlayer_path'] = get_test_layer()
self.tc_kwargs['init']['config_paths']['builddir'] = builddir
self.tc_kwargs['init']['config_paths']['localconf'] = \
os.path.join(builddir, "conf/local.conf")
self.tc_kwargs['init']['config_paths']['localconf_backup'] = \
os.path.join(builddir, "conf/local.conf.orig")
self.tc_kwargs['init']['config_paths']['localconf_class_backup'] = \
os.path.join(builddir, "conf/local.conf.bk")
self.tc_kwargs['init']['config_paths']['bblayers'] = \
os.path.join(builddir, "conf/bblayers.conf")
self.tc_kwargs['init']['config_paths']['bblayers_backup'] = \
os.path.join(builddir, "conf/bblayers.conf.orig")
self.tc_kwargs['init']['config_paths']['bblayers_class_backup'] = \
os.path.join(builddir, "conf/bblayers.conf.bk")
copyfile(self.tc_kwargs['init']['config_paths']['localconf'],
self.tc_kwargs['init']['config_paths']['localconf_backup'])
copyfile(self.tc_kwargs['init']['config_paths']['bblayers'],
self.tc_kwargs['init']['config_paths']['bblayers_backup'])
self.tc_kwargs['init']['config_paths']['localconf'] = os.path.join(builddir, "conf/local.conf")
self.tc_kwargs['init']['config_paths']['bblayers'] = os.path.join(builddir, "conf/bblayers.conf")
def tag_filter(tags):
if args.exclude_tags:
@@ -329,18 +311,9 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
return rc
def _signal_clean_handler(self, signum, frame):
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
try:
if args.machine:
@@ -369,20 +342,6 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
rc = self._internal_run(logger, args)
finally:
config_paths = self.tc_kwargs['init']['config_paths']
if os.path.exists(config_paths['localconf_backup']):
copyfile(config_paths['localconf_backup'],
config_paths['localconf'])
os.remove(config_paths['localconf_backup'])
if os.path.exists(config_paths['bblayers_backup']):
copyfile(config_paths['bblayers_backup'],
config_paths['bblayers'])
os.remove(config_paths['bblayers_backup'])
if os.path.exists(config_paths['localconf_class_backup']):
os.remove(config_paths['localconf_class_backup'])
if os.path.exists(config_paths['bblayers_class_backup']):
os.remove(config_paths['bblayers_class_backup'])
output_link = os.path.join(os.path.dirname(args.output_log),
"%s-results.log" % self.name)