archiver: Speed up tests

When running tests locally without the advantage of a populated sstate
cache, the archiver tests can take an unnecessarily long time. Using
different target recipes can speed things up a lot by reducing the
number of dependencies that are built.

For the test case test_archiver_srpm_mode we can still test the
conditions described in bug #11121 by using a target recipe that is
known to inherit the nopackages class as well as a more normal recipe,
instead of having to compute all the depepndencies of core-image-sato.

Before:
    archiver.Archiver.test_archiver_allows_to_filter_on_recipe_name: PASSED (20.50s)
    archiver.Archiver.test_archiver_filters_by_type: PASSED (14.16s)
    archiver.Archiver.test_archiver_filters_by_type_and_name: PASSED (79.08s)
    archiver.Archiver.test_archiver_mode_configured: PASSED (558.19s)
    archiver.Archiver.test_archiver_mode_diff: PASSED (14.59s)
    archiver.Archiver.test_archiver_mode_dumpdata: PASSED (14.41s)
    archiver.Archiver.test_archiver_mode_mirror: PASSED (14.02s)
    archiver.Archiver.test_archiver_mode_mirror_combined: PASSED (19.99s)
    archiver.Archiver.test_archiver_mode_mirror_excludes: PASSED (14.24s)
    archiver.Archiver.test_archiver_mode_mirror_gitsm: PASSED (13.47s)
    archiver.Archiver.test_archiver_mode_mirror_gitsm_shallow: PASSED (22.15s)
    archiver.Archiver.test_archiver_mode_original: PASSED (14.15s)
    archiver.Archiver.test_archiver_mode_patched: PASSED (14.57s)
    archiver.Archiver.test_archiver_mode_recipe: PASSED (14.56s)
    archiver.Archiver.test_archiver_srpm_mode: PASSED (83.03s)
    oe-selftest () - Ran 15 tests in 911.905s

After:
    archiver.Archiver.test_archiver_allows_to_filter_on_recipe_name: PASSED (23.66s)
    archiver.Archiver.test_archiver_filters_by_type: PASSED (15.16s)
    archiver.Archiver.test_archiver_filters_by_type_and_name: PASSED (15.33s)
    archiver.Archiver.test_archiver_mode_configured: PASSED (15.94s)
    archiver.Archiver.test_archiver_mode_diff: PASSED (15.79s)
    archiver.Archiver.test_archiver_mode_dumpdata: PASSED (15.39s)
    archiver.Archiver.test_archiver_mode_mirror: PASSED (15.28s)
    archiver.Archiver.test_archiver_mode_mirror_combined: PASSED (21.22s)
    archiver.Archiver.test_archiver_mode_mirror_excludes: PASSED (15.11s)
    archiver.Archiver.test_archiver_mode_mirror_gitsm: PASSED (13.61s)
    archiver.Archiver.test_archiver_mode_mirror_gitsm_shallow: PASSED (23.21s)
    archiver.Archiver.test_archiver_mode_original: PASSED (14.87s)
    archiver.Archiver.test_archiver_mode_patched: PASSED (15.50s)
    archiver.Archiver.test_archiver_mode_recipe: PASSED (15.62s)
    archiver.Archiver.test_archiver_srpm_mode: PASSED (20.66s)
    oe-selftest () - Ran 15 tests in 257.170s

(From OE-Core rev: 04b4e6e271c2c3e02b105edb3b0d8aae39dd3d7c)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Barker
2020-06-05 10:39:56 +01:00
committed by Richard Purdie
parent c7a85ba791
commit b1bb39c6e2

View File

@@ -19,8 +19,8 @@ class Archiver(OESelftestTestCase):
AutomatedBy: Daniel Istrate <daniel.alexandrux.istrate@intel.com>
"""
include_recipe = 'busybox'
exclude_recipe = 'zlib'
include_recipe = 'selftest-ed'
exclude_recipe = 'initscripts'
features = 'INHERIT += "archiver"\n'
features += 'ARCHIVER_MODE[src] = "original"\n'
@@ -51,8 +51,8 @@ class Archiver(OESelftestTestCase):
Author: André Draszik <adraszik@tycoint.com>
"""
target_recipe = 'initscripts'
native_recipe = 'zlib-native'
target_recipe = 'selftest-ed'
native_recipe = 'selftest-ed-native'
features = 'INHERIT += "archiver"\n'
features += 'ARCHIVER_MODE[src] = "original"\n'
@@ -86,8 +86,8 @@ class Archiver(OESelftestTestCase):
Author: André Draszik <adraszik@tycoint.com>
"""
target_recipes = [ 'initscripts', 'zlib' ]
native_recipes = [ 'update-rc.d-native', 'zlib-native' ]
target_recipes = [ 'initscripts', 'selftest-ed' ]
native_recipes = [ 'update-rc.d-native', 'selftest-ed-native' ]
features = 'INHERIT += "archiver"\n'
features += 'ARCHIVER_MODE[src] = "original"\n'
@@ -129,10 +129,10 @@ class Archiver(OESelftestTestCase):
features += 'PACKAGE_CLASSES = "package_rpm"\n'
self.write_config(features)
bitbake('-n core-image-sato')
bitbake('-n selftest-nopackages selftest-ed')
def _test_archiver_mode(self, mode, target_file_name, extra_config=None):
target = "selftest-ed"
target = 'selftest-ed-native'
features = 'INHERIT += "archiver"\n'
features += 'ARCHIVER_MODE[src] = "%s"\n' % (mode)
@@ -143,8 +143,8 @@ class Archiver(OESelftestTestCase):
bitbake('-c clean %s' % (target))
bitbake('-c deploy_archives %s' % (target))
bb_vars = get_bb_vars(['DEPLOY_DIR_SRC', 'TARGET_SYS'])
glob_str = os.path.join(bb_vars['DEPLOY_DIR_SRC'], bb_vars['TARGET_SYS'], '%s-*' % (target))
bb_vars = get_bb_vars(['DEPLOY_DIR_SRC', 'BUILD_SYS'])
glob_str = os.path.join(bb_vars['DEPLOY_DIR_SRC'], bb_vars['BUILD_SYS'], '%s-*' % (target))
glob_result = glob.glob(glob_str)
self.assertTrue(glob_result, 'Missing archiver directory for %s' % (target))
@@ -163,21 +163,21 @@ class Archiver(OESelftestTestCase):
Test that the archiver works with `ARCHIVER_MODE[src] = "patched"`.
"""
self._test_archiver_mode('patched', 'selftest-ed-1.14.1-r0-patched.tar.gz')
self._test_archiver_mode('patched', 'selftest-ed-native-1.14.1-r0-patched.tar.gz')
def test_archiver_mode_configured(self):
"""
Test that the archiver works with `ARCHIVER_MODE[src] = "configured"`.
"""
self._test_archiver_mode('configured', 'selftest-ed-1.14.1-r0-configured.tar.gz')
self._test_archiver_mode('configured', 'selftest-ed-native-1.14.1-r0-configured.tar.gz')
def test_archiver_mode_recipe(self):
"""
Test that the archiver works with `ARCHIVER_MODE[recipe] = "1"`.
"""
self._test_archiver_mode('patched', 'selftest-ed-1.14.1-r0-recipe.tar.gz',
self._test_archiver_mode('patched', 'selftest-ed-native-1.14.1-r0-recipe.tar.gz',
'ARCHIVER_MODE[recipe] = "1"\n')
def test_archiver_mode_diff(self):
@@ -186,7 +186,7 @@ class Archiver(OESelftestTestCase):
Exclusions controlled by `ARCHIVER_MODE[diff-exclude]` are not yet tested.
"""
self._test_archiver_mode('patched', 'selftest-ed-1.14.1-r0-diff.gz',
self._test_archiver_mode('patched', 'selftest-ed-native-1.14.1-r0-diff.gz',
'ARCHIVER_MODE[diff] = "1"\n')
def test_archiver_mode_dumpdata(self):
@@ -194,7 +194,7 @@ class Archiver(OESelftestTestCase):
Test that the archiver works with `ARCHIVER_MODE[dumpdata] = "1"`.
"""
self._test_archiver_mode('patched', 'selftest-ed-1.14.1-r0-showdata.dump',
self._test_archiver_mode('patched', 'selftest-ed-native-1.14.1-r0-showdata.dump',
'ARCHIVER_MODE[dumpdata] = "1"\n')
def test_archiver_mode_mirror(self):