mirror of
https://git.yoctoproject.org/poky
synced 2026-09-14 03:49:32 +02:00
selftest: Avoid sstate corruption by calling cleansstate
Currently selftest doesn't use sstates because some tests clean sstate cache; using sstates would give a performance boost instead of building everything from scratch. With this sstates are not corrupted using different methods depending on tests: devtool: These tests needed to delete the cache so SSTATE_DIR as SSTATE_MIRRORS and set a temporal SSTATE_DIR. sstatetests: This module already used a temporal SSTATE_DIR, so just set up the SSTATE_MIRRORS. Rest: Removed cleansstate, some of them required to force a certain task, others were just removed or changed for another task. [YOCTO #10929] (From OE-Core rev: 62c61087a10cc3b26fbff32c9e2efd1704a39724) (From OE-Core rev: 44ca8b1c23e4b2cf470e9be42705e3cca23b7f85) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
078915fbf5
commit
48a8c893ad
@@ -9,7 +9,8 @@ import fnmatch
|
||||
|
||||
import oeqa.utils.ftools as ftools
|
||||
from oeqa.selftest.base import oeSelfTest
|
||||
from oeqa.utils.commands import runCmd, bitbake, get_bb_var, create_temp_layer, runqemu, get_test_layer
|
||||
from oeqa.utils.commands import runCmd, bitbake, get_bb_var, create_temp_layer
|
||||
from oeqa.utils.commands import get_bb_vars, runqemu, get_test_layer
|
||||
from oeqa.utils.decorators import testcase
|
||||
|
||||
class DevtoolBase(oeSelfTest):
|
||||
@@ -114,6 +115,20 @@ class DevtoolBase(oeSelfTest):
|
||||
|
||||
class DevtoolTests(DevtoolBase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
bb_vars = get_bb_vars(['TOPDIR', 'SSTATE_DIR'])
|
||||
cls.original_sstate = bb_vars['SSTATE_DIR']
|
||||
cls.devtool_sstate = os.path.join(bb_vars['TOPDIR'], 'sstate_devtool')
|
||||
cls.sstate_conf = 'SSTATE_DIR = "%s"\n' % cls.devtool_sstate
|
||||
cls.sstate_conf += ('SSTATE_MIRRORS += "file://.* file:///%s/PATH"\n'
|
||||
% cls.original_sstate)
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
cls.log.debug('Deleting devtool sstate cache on %s' % cls.devtool_sstate)
|
||||
runCmd('rm -rf %s' % cls.devtool_sstate)
|
||||
|
||||
def setUp(self):
|
||||
"""Test case setup function"""
|
||||
super(DevtoolTests, self).setUp()
|
||||
@@ -121,6 +136,7 @@ class DevtoolTests(DevtoolBase):
|
||||
self.assertTrue(not os.path.exists(self.workspacedir),
|
||||
'This test cannot be run with a workspace directory '
|
||||
'under the build directory')
|
||||
self.append_config(self.sstate_conf)
|
||||
|
||||
def _check_src_repo(self, repo_dir):
|
||||
"""Check srctree git repository"""
|
||||
|
||||
Reference in New Issue
Block a user