selftest: Optimize get_bb_var use

get_bb_var calls bitbake every time it is used and every call
would take about 7 seconds. There are tests that calls get_bb_var
several times when they can use get_bb_vars. Also there are tests
that calls it to fetch the same variable over and over again.

This will optimize the use of get_bb_var and get_bb_vars for a
little speed up in the tests.

[YOCTO #11037]

(From OE-Core rev: e53f86ba8aeb6d2e9eb259329001d27d62401072)

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:
Mariano Lopez 2017-02-21 14:33:08 +00:00 committed by Richard Purdie
parent ef010c1a1d
commit 19d23814e4
17 changed files with 206 additions and 174 deletions

View File

@ -1,5 +1,5 @@
from oeqa.selftest.base import oeSelfTest from oeqa.selftest.base import oeSelfTest
from oeqa.utils.commands import bitbake, get_bb_var from oeqa.utils.commands import bitbake, get_bb_vars
from oeqa.utils.decorators import testcase from oeqa.utils.decorators import testcase
import glob import glob
import os import os
@ -28,10 +28,11 @@ class Archiver(oeSelfTest):
features += 'COPYLEFT_PN_EXCLUDE = "%s"\n' % exclude_recipe features += 'COPYLEFT_PN_EXCLUDE = "%s"\n' % exclude_recipe
self.write_config(features) self.write_config(features)
shutil.rmtree(get_bb_var('TMPDIR')) bitbake('-c clean %s %s' % (include_recipe, exclude_recipe))
bitbake("%s %s" % (include_recipe, exclude_recipe)) bitbake("%s %s" % (include_recipe, exclude_recipe))
src_path = os.path.join(get_bb_var('DEPLOY_DIR_SRC'), get_bb_var('TARGET_SYS')) bb_vars = get_bb_vars(['DEPLOY_DIR_SRC', 'TARGET_SYS'])
src_path = os.path.join(bb_vars['DEPLOY_DIR_SRC'], bb_vars['TARGET_SYS'])
# Check that include_recipe was included # Check that include_recipe was included
included_present = len(glob.glob(src_path + '/%s-*' % include_recipe)) included_present = len(glob.glob(src_path + '/%s-*' % include_recipe))

View File

@ -3,7 +3,7 @@ import re
import oeqa.utils.ftools as ftools import oeqa.utils.ftools as ftools
from oeqa.selftest.base import oeSelfTest from oeqa.selftest.base import oeSelfTest
from oeqa.utils.commands import runCmd, bitbake, get_bb_var from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
from oeqa.utils.decorators import testcase from oeqa.utils.decorators import testcase
class BitbakeTests(oeSelfTest): class BitbakeTests(oeSelfTest):
@ -78,9 +78,10 @@ class BitbakeTests(oeSelfTest):
# test 1 from bug 5875 # test 1 from bug 5875
test_recipe = 'zlib' test_recipe = 'zlib'
test_data = "Microsoft Made No Profit From Anyone's Zunes Yo" test_data = "Microsoft Made No Profit From Anyone's Zunes Yo"
image_dir = get_bb_var('D', test_recipe) bb_vars = get_bb_vars(['D', 'PKGDEST', 'mandir'], test_recipe)
pkgsplit_dir = get_bb_var('PKGDEST', test_recipe) image_dir = bb_vars['D']
man_dir = get_bb_var('mandir', test_recipe) pkgsplit_dir = bb_vars['PKGDEST']
man_dir = bb_vars['mandir']
bitbake('-c clean %s' % test_recipe) bitbake('-c clean %s' % test_recipe)
bitbake('-c package -f %s' % test_recipe) bitbake('-c package -f %s' % test_recipe)
@ -121,8 +122,9 @@ class BitbakeTests(oeSelfTest):
@testcase(899) @testcase(899)
def test_image_manifest(self): def test_image_manifest(self):
bitbake('core-image-minimal') bitbake('core-image-minimal')
deploydir = get_bb_var("DEPLOY_DIR_IMAGE", target="core-image-minimal") bb_vars = get_bb_vars(["DEPLOY_DIR_IMAGE", "IMAGE_LINK_NAME"], "core-image-minimal")
imagename = get_bb_var("IMAGE_LINK_NAME", target="core-image-minimal") deploydir = bb_vars["DEPLOY_DIR_IMAGE"]
imagename = bb_vars["IMAGE_LINK_NAME"]
manifest = os.path.join(deploydir, imagename + ".manifest") manifest = os.path.join(deploydir, imagename + ".manifest")
self.assertTrue(os.path.islink(manifest), msg="No manifest file created for image. It should have been created in %s" % manifest) self.assertTrue(os.path.islink(manifest), msg="No manifest file created for image. It should have been created in %s" % manifest)
@ -160,8 +162,9 @@ SSTATE_DIR = \"${TOPDIR}/download-selftest\"
result = bitbake('-c fetch aspell', ignore_status=True) result = bitbake('-c fetch aspell', ignore_status=True)
self.delete_recipeinc('aspell') self.delete_recipeinc('aspell')
self.assertEqual(result.status, 0, msg = "Couldn't fetch aspell. %s" % result.output) self.assertEqual(result.status, 0, msg = "Couldn't fetch aspell. %s" % result.output)
self.assertTrue(os.path.isfile(os.path.join(get_bb_var("DL_DIR"), 'test-aspell.tar.gz')), msg = "File rename failed. No corresponding test-aspell.tar.gz file found under %s" % str(get_bb_var("DL_DIR"))) dl_dir = get_bb_var("DL_DIR")
self.assertTrue(os.path.isfile(os.path.join(get_bb_var("DL_DIR"), 'test-aspell.tar.gz.done')), "File rename failed. No corresponding test-aspell.tar.gz.done file found under %s" % str(get_bb_var("DL_DIR"))) self.assertTrue(os.path.isfile(os.path.join(dl_dir, 'test-aspell.tar.gz')), msg = "File rename failed. No corresponding test-aspell.tar.gz file found under %s" % dl_dir)
self.assertTrue(os.path.isfile(os.path.join(dl_dir, 'test-aspell.tar.gz.done')), "File rename failed. No corresponding test-aspell.tar.gz.done file found under %s" % dl_dir)
@testcase(1028) @testcase(1028)
def test_environment(self): def test_environment(self):
@ -253,8 +256,9 @@ INHERIT_remove = \"report-error\"
def test_bbappend_order(self): def test_bbappend_order(self):
""" Bitbake should bbappend to recipe in a predictable order """ """ Bitbake should bbappend to recipe in a predictable order """
test_recipe = 'ed' test_recipe = 'ed'
test_recipe_summary_before = get_bb_var('SUMMARY', test_recipe) bb_vars = get_bb_vars(['SUMMARY', 'PV'], test_recipe)
test_recipe_pv = get_bb_var('PV', test_recipe) test_recipe_summary_before = bb_vars['SUMMARY']
test_recipe_pv = bb_vars['PV']
recipe_append_file = test_recipe + '_' + test_recipe_pv + '.bbappend' recipe_append_file = test_recipe + '_' + test_recipe_pv + '.bbappend'
expected_recipe_summary = test_recipe_summary_before expected_recipe_summary = test_recipe_summary_before

View File

@ -3,14 +3,15 @@ import re
import datetime import datetime
from oeqa.selftest.base import oeSelfTest from oeqa.selftest.base import oeSelfTest
from oeqa.utils.commands import bitbake, get_bb_var from oeqa.utils.commands import bitbake, get_bb_vars
from oeqa.utils.decorators import testcase from oeqa.utils.decorators import testcase
class BuildhistoryBase(oeSelfTest): class BuildhistoryBase(oeSelfTest):
def config_buildhistory(self, tmp_bh_location=False): def config_buildhistory(self, tmp_bh_location=False):
if (not 'buildhistory' in get_bb_var('USER_CLASSES')) and (not 'buildhistory' in get_bb_var('INHERIT')): bb_vars = get_bb_vars(['USER_CLASSES', 'INHERIT'])
if (not 'buildhistory' in bb_vars['USER_CLASSES']) and (not 'buildhistory' in bb_vars['INHERIT']):
add_buildhistory_config = 'INHERIT += "buildhistory"\nBUILDHISTORY_COMMIT = "1"' add_buildhistory_config = 'INHERIT += "buildhistory"\nBUILDHISTORY_COMMIT = "1"'
self.append_config(add_buildhistory_config) self.append_config(add_buildhistory_config)

View File

@ -5,7 +5,7 @@ import shutil
import tempfile import tempfile
from oeqa.selftest.base import oeSelfTest from oeqa.selftest.base import oeSelfTest
from oeqa.selftest.buildhistory import BuildhistoryBase from oeqa.selftest.buildhistory import BuildhistoryBase
from oeqa.utils.commands import runCmd, bitbake, get_bb_var from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
import oeqa.utils.ftools as ftools import oeqa.utils.ftools as ftools
from oeqa.utils.decorators import testcase from oeqa.utils.decorators import testcase
@ -33,13 +33,15 @@ class ImageOptionsTests(oeSelfTest):
@testcase(286) @testcase(286)
def test_ccache_tool(self): def test_ccache_tool(self):
bitbake("ccache-native") bitbake("ccache-native")
p = get_bb_var('SYSROOT_DESTDIR', 'ccache-native') + get_bb_var('bindir', 'ccache-native') + "/" + "ccache" bb_vars = get_bb_vars(['SYSROOT_DESTDIR', 'bindir'], 'ccache-native')
p = bb_vars['SYSROOT_DESTDIR'] + bb_vars['bindir'] + "/" + "ccache"
self.assertTrue(os.path.isfile(p), msg = "No ccache found (%s)" % p) self.assertTrue(os.path.isfile(p), msg = "No ccache found (%s)" % p)
self.write_config('INHERIT += "ccache"') self.write_config('INHERIT += "ccache"')
self.add_command_to_tearDown('bitbake -c clean m4') self.add_command_to_tearDown('bitbake -c clean m4')
bitbake("m4 -f -c compile") bitbake("m4 -f -c compile")
res = runCmd("grep ccache %s" % (os.path.join(get_bb_var("WORKDIR","m4"),"temp/log.do_compile")), ignore_status=True) log_compile = os.path.join(get_bb_var("WORKDIR","m4"), "temp/log.do_compile")
self.assertEqual(0, res.status, msg="No match for ccache in m4 log.do_compile. For further details: %s" % os.path.join(get_bb_var("WORKDIR","m4"),"temp/log.do_compile")) res = runCmd("grep ccache %s" % log_compile, ignore_status=True)
self.assertEqual(0, res.status, msg="No match for ccache in m4 log.do_compile. For further details: %s" % log_compile)
@testcase(1435) @testcase(1435)
def test_read_only_image(self): def test_read_only_image(self):

View File

@ -213,9 +213,10 @@ class DevtoolTests(DevtoolBase):
bitbake('pv -c cleansstate') bitbake('pv -c cleansstate')
# Test devtool build # Test devtool build
result = runCmd('devtool build pv') result = runCmd('devtool build pv')
installdir = get_bb_var('D', 'pv') bb_vars = get_bb_vars(['D', 'bindir'], 'pv')
installdir = bb_vars['D']
self.assertTrue(installdir, 'Could not query installdir variable') self.assertTrue(installdir, 'Could not query installdir variable')
bindir = get_bb_var('bindir', 'pv') bindir = bb_vars['bindir']
self.assertTrue(bindir, 'Could not query bindir variable') self.assertTrue(bindir, 'Could not query bindir variable')
if bindir[0] == '/': if bindir[0] == '/':
bindir = bindir[1:] bindir = bindir[1:]
@ -296,11 +297,12 @@ class DevtoolTests(DevtoolBase):
f.write('\nTESTLIBOUTPUT = "${STAGING_DIR}-components/${TUNE_PKGARCH}/${PN}/${libdir}"\n') f.write('\nTESTLIBOUTPUT = "${STAGING_DIR}-components/${TUNE_PKGARCH}/${PN}/${libdir}"\n')
# Test devtool build # Test devtool build
result = runCmd('devtool build libftdi') result = runCmd('devtool build libftdi')
staging_libdir = get_bb_var('TESTLIBOUTPUT', 'libftdi') bb_vars = get_bb_vars(['TESTLIBOUTPUT', 'STAMP'], 'libftdi')
staging_libdir = bb_vars['TESTLIBOUTPUT']
self.assertTrue(staging_libdir, 'Could not query TESTLIBOUTPUT variable') self.assertTrue(staging_libdir, 'Could not query TESTLIBOUTPUT variable')
self.assertTrue(os.path.isfile(os.path.join(staging_libdir, 'libftdi1.so.2.1.0')), "libftdi binary not found in STAGING_LIBDIR. Output of devtool build libftdi %s" % result.output) self.assertTrue(os.path.isfile(os.path.join(staging_libdir, 'libftdi1.so.2.1.0')), "libftdi binary not found in STAGING_LIBDIR. Output of devtool build libftdi %s" % result.output)
# Test devtool reset # Test devtool reset
stampprefix = get_bb_var('STAMP', 'libftdi') stampprefix = bb_vars['STAMP']
result = runCmd('devtool reset libftdi') result = runCmd('devtool reset libftdi')
result = runCmd('devtool status') result = runCmd('devtool status')
self.assertNotIn('libftdi', result.output) self.assertNotIn('libftdi', result.output)
@ -463,9 +465,10 @@ class DevtoolTests(DevtoolBase):
self.assertNotIn(expected + '\n', f, message) self.assertNotIn(expected + '\n', f, message)
modfile = os.path.join(tempdir, 'mdadm.8.in') modfile = os.path.join(tempdir, 'mdadm.8.in')
pkgd = get_bb_var('PKGD', 'mdadm') bb_vars = get_bb_vars(['PKGD', 'mandir'], 'mdadm')
pkgd = bb_vars['PKGD']
self.assertTrue(pkgd, 'Could not query PKGD variable') self.assertTrue(pkgd, 'Could not query PKGD variable')
mandir = get_bb_var('mandir', 'mdadm') mandir = bb_vars['mandir']
self.assertTrue(mandir, 'Could not query mandir variable') self.assertTrue(mandir, 'Could not query mandir variable')
manfile = oe.path.join(pkgd, mandir, 'man8', 'mdadm.8') manfile = oe.path.join(pkgd, mandir, 'man8', 'mdadm.8')
@ -679,8 +682,9 @@ class DevtoolTests(DevtoolBase):
def test_devtool_update_recipe(self): def test_devtool_update_recipe(self):
# Check preconditions # Check preconditions
testrecipe = 'minicom' testrecipe = 'minicom'
recipefile = get_bb_var('FILE', testrecipe) bb_vars = get_bb_vars(['FILE', 'SRC_URI'], testrecipe)
src_uri = get_bb_var('SRC_URI', testrecipe) recipefile = bb_vars['FILE']
src_uri = bb_vars['SRC_URI']
self.assertNotIn('git://', src_uri, 'This test expects the %s recipe to NOT be a git recipe' % testrecipe) self.assertNotIn('git://', src_uri, 'This test expects the %s recipe to NOT be a git recipe' % testrecipe)
self._check_repo_status(os.path.dirname(recipefile), []) self._check_repo_status(os.path.dirname(recipefile), [])
# First, modify a recipe # First, modify a recipe
@ -711,8 +715,9 @@ class DevtoolTests(DevtoolBase):
def test_devtool_update_recipe_git(self): def test_devtool_update_recipe_git(self):
# Check preconditions # Check preconditions
testrecipe = 'mtd-utils' testrecipe = 'mtd-utils'
recipefile = get_bb_var('FILE', testrecipe) bb_vars = get_bb_vars(['FILE', 'SRC_URI'], testrecipe)
src_uri = get_bb_var('SRC_URI', testrecipe) recipefile = bb_vars['FILE']
src_uri = bb_vars['SRC_URI']
self.assertIn('git://', src_uri, 'This test expects the %s recipe to be a git recipe' % testrecipe) self.assertIn('git://', src_uri, 'This test expects the %s recipe to be a git recipe' % testrecipe)
patches = [] patches = []
for entry in src_uri.split(): for entry in src_uri.split():
@ -780,8 +785,9 @@ class DevtoolTests(DevtoolBase):
def test_devtool_update_recipe_append(self): def test_devtool_update_recipe_append(self):
# Check preconditions # Check preconditions
testrecipe = 'mdadm' testrecipe = 'mdadm'
recipefile = get_bb_var('FILE', testrecipe) bb_vars = get_bb_vars(['FILE', 'SRC_URI'], testrecipe)
src_uri = get_bb_var('SRC_URI', testrecipe) recipefile = bb_vars['FILE']
src_uri = bb_vars['SRC_URI']
self.assertNotIn('git://', src_uri, 'This test expects the %s recipe to NOT be a git recipe' % testrecipe) self.assertNotIn('git://', src_uri, 'This test expects the %s recipe to NOT be a git recipe' % testrecipe)
self._check_repo_status(os.path.dirname(recipefile), []) self._check_repo_status(os.path.dirname(recipefile), [])
# First, modify a recipe # First, modify a recipe
@ -848,8 +854,9 @@ class DevtoolTests(DevtoolBase):
def test_devtool_update_recipe_append_git(self): def test_devtool_update_recipe_append_git(self):
# Check preconditions # Check preconditions
testrecipe = 'mtd-utils' testrecipe = 'mtd-utils'
recipefile = get_bb_var('FILE', testrecipe) bb_vars = get_bb_vars(['FILE', 'SRC_URI'], testrecipe)
src_uri = get_bb_var('SRC_URI', testrecipe) recipefile = bb_vars['FILE']
src_uri = bb_vars['SRC_URI']
self.assertIn('git://', src_uri, 'This test expects the %s recipe to be a git recipe' % testrecipe) self.assertIn('git://', src_uri, 'This test expects the %s recipe to be a git recipe' % testrecipe)
for entry in src_uri.split(): for entry in src_uri.split():
if entry.startswith('git://'): if entry.startswith('git://'):
@ -1009,8 +1016,9 @@ class DevtoolTests(DevtoolBase):
def test_devtool_update_recipe_local_files_3(self): def test_devtool_update_recipe_local_files_3(self):
# First, modify the recipe # First, modify the recipe
testrecipe = 'devtool-test-localonly' testrecipe = 'devtool-test-localonly'
recipefile = get_bb_var('FILE', testrecipe) bb_vars = get_bb_vars(['FILE', 'SRC_URI'], testrecipe)
src_uri = get_bb_var('SRC_URI', testrecipe) recipefile = bb_vars['FILE']
src_uri = bb_vars['SRC_URI']
tempdir = tempfile.mkdtemp(prefix='devtoolqa') tempdir = tempfile.mkdtemp(prefix='devtoolqa')
self.track_for_cleanup(tempdir) self.track_for_cleanup(tempdir)
self.track_for_cleanup(self.workspacedir) self.track_for_cleanup(self.workspacedir)
@ -1027,8 +1035,9 @@ class DevtoolTests(DevtoolBase):
def test_devtool_update_recipe_local_patch_gz(self): def test_devtool_update_recipe_local_patch_gz(self):
# First, modify the recipe # First, modify the recipe
testrecipe = 'devtool-test-patch-gz' testrecipe = 'devtool-test-patch-gz'
recipefile = get_bb_var('FILE', testrecipe) bb_vars = get_bb_vars(['FILE', 'SRC_URI'], testrecipe)
src_uri = get_bb_var('SRC_URI', testrecipe) recipefile = bb_vars['FILE']
src_uri = bb_vars['SRC_URI']
tempdir = tempfile.mkdtemp(prefix='devtoolqa') tempdir = tempfile.mkdtemp(prefix='devtoolqa')
self.track_for_cleanup(tempdir) self.track_for_cleanup(tempdir)
self.track_for_cleanup(self.workspacedir) self.track_for_cleanup(self.workspacedir)
@ -1054,8 +1063,9 @@ class DevtoolTests(DevtoolBase):
# was also in SRC_URI # was also in SRC_URI
# First, modify the recipe # First, modify the recipe
testrecipe = 'devtool-test-subdir' testrecipe = 'devtool-test-subdir'
recipefile = get_bb_var('FILE', testrecipe) bb_vars = get_bb_vars(['FILE', 'SRC_URI'], testrecipe)
src_uri = get_bb_var('SRC_URI', testrecipe) recipefile = bb_vars['FILE']
src_uri = bb_vars['SRC_URI']
tempdir = tempfile.mkdtemp(prefix='devtoolqa') tempdir = tempfile.mkdtemp(prefix='devtoolqa')
self.track_for_cleanup(tempdir) self.track_for_cleanup(tempdir)
self.track_for_cleanup(self.workspacedir) self.track_for_cleanup(self.workspacedir)
@ -1184,9 +1194,10 @@ class DevtoolTests(DevtoolBase):
result = runCmd('ssh %s root@%s %s' % (sshargs, qemu.ip, testcommand)) result = runCmd('ssh %s root@%s %s' % (sshargs, qemu.ip, testcommand))
# Check if it deployed all of the files with the right ownership/perms # Check if it deployed all of the files with the right ownership/perms
# First look on the host - need to do this under pseudo to get the correct ownership/perms # First look on the host - need to do this under pseudo to get the correct ownership/perms
installdir = get_bb_var('D', testrecipe) bb_vars = get_bb_vars(['D', 'FAKEROOTENV', 'FAKEROOTCMD'], testrecipe)
fakerootenv = get_bb_var('FAKEROOTENV', testrecipe) installdir = bb_vars['D']
fakerootcmd = get_bb_var('FAKEROOTCMD', testrecipe) fakerootenv = bb_vars['FAKEROOTENV']
fakerootcmd = bb_vars['FAKEROOTCMD']
result = runCmd('%s %s find . -type f -exec ls -l {} \;' % (fakerootenv, fakerootcmd), cwd=installdir) result = runCmd('%s %s find . -type f -exec ls -l {} \;' % (fakerootenv, fakerootcmd), cwd=installdir)
filelist1 = self._process_ls_output(result.output) filelist1 = self._process_ls_output(result.output)

View File

@ -6,9 +6,9 @@ import glob
import logging import logging
import subprocess import subprocess
import oeqa.utils.ftools as ftools import oeqa.utils.ftools as ftools
from oeqa.utils.decorators import testcase from oeqa.utils.decorators import testcase
from oeqa.selftest.base import oeSelfTest from oeqa.selftest.base import oeSelfTest
from oeqa.utils.commands import runCmd, bitbake, get_bb_var from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
from oeqa.utils.httpserver import HTTPService from oeqa.utils.httpserver import HTTPService
class oeSDKExtSelfTest(oeSelfTest): class oeSDKExtSelfTest(oeSelfTest):
@ -24,7 +24,7 @@ class oeSDKExtSelfTest(oeSelfTest):
# what environment load oe-selftest, i586, x86_64 # what environment load oe-selftest, i586, x86_64
pattern = os.path.join(tmpdir_eSDKQA, 'environment-setup-*') pattern = os.path.join(tmpdir_eSDKQA, 'environment-setup-*')
return glob.glob(pattern)[0] return glob.glob(pattern)[0]
@staticmethod @staticmethod
def run_esdk_cmd(env_eSDK, tmpdir_eSDKQA, cmd, postconfig=None, **options): def run_esdk_cmd(env_eSDK, tmpdir_eSDKQA, cmd, postconfig=None, **options):
if postconfig: if postconfig:
@ -47,10 +47,11 @@ class oeSDKExtSelfTest(oeSelfTest):
def get_eSDK_toolchain(image): def get_eSDK_toolchain(image):
pn_task = '%s -c populate_sdk_ext' % image pn_task = '%s -c populate_sdk_ext' % image
sdk_deploy = get_bb_var('SDK_DEPLOY', pn_task) bb_vars = get_bb_vars(['SDK_DEPLOY', 'TOOLCHAINEXT_OUTPUTNAME'], pn_task)
toolchain_name = get_bb_var('TOOLCHAINEXT_OUTPUTNAME', pn_task) sdk_deploy = bb_vars['SDK_DEPLOY']
toolchain_name = bb_vars['TOOLCHAINEXT_OUTPUTNAME']
return os.path.join(sdk_deploy, toolchain_name + '.sh') return os.path.join(sdk_deploy, toolchain_name + '.sh')
@staticmethod @staticmethod
def update_configuration(cls, image, tmpdir_eSDKQA, env_eSDK, ext_sdk_path): def update_configuration(cls, image, tmpdir_eSDKQA, env_eSDK, ext_sdk_path):
sstate_dir = os.path.join(os.environ['BUILDDIR'], 'sstate-cache') sstate_dir = os.path.join(os.environ['BUILDDIR'], 'sstate-cache')
@ -119,7 +120,7 @@ SSTATE_MIRRORS = "file://.* http://%s/PATH"
bitbake(pn_sstate) bitbake(pn_sstate)
cmd = "devtool sdk-install %s " % pn_sstate cmd = "devtool sdk-install %s " % pn_sstate
oeSDKExtSelfTest.run_esdk_cmd(self.env_eSDK, self.tmpdir_eSDKQA, cmd) oeSDKExtSelfTest.run_esdk_cmd(self.env_eSDK, self.tmpdir_eSDKQA, cmd)
@testcase(1603) @testcase(1603)
def test_image_generation_binary_feeds(self): def test_image_generation_binary_feeds(self):
image = 'core-image-minimal' image = 'core-image-minimal'

View File

@ -1,11 +1,16 @@
from oeqa.selftest.base import oeSelfTest from oeqa.selftest.base import oeSelfTest
from oeqa.utils.commands import get_bb_var, bitbake, runCmd from oeqa.utils.commands import get_bb_var, get_bb_vars, bitbake, runCmd
import oe.path import oe.path
import glob import glob
import os import os
import os.path import os.path
class LibOE(oeSelfTest): class LibOE(oeSelfTest):
@classmethod
def setUpClass(cls):
cls.tmp_dir = get_bb_var('TMPDIR')
def test_copy_tree_special(self): def test_copy_tree_special(self):
""" """
Summary: oe.path.copytree() should copy files with special character Summary: oe.path.copytree() should copy files with special character
@ -14,8 +19,7 @@ class LibOE(oeSelfTest):
Product: OE-Core Product: OE-Core
Author: Joshua Lock <joshua.g.lock@intel.com> Author: Joshua Lock <joshua.g.lock@intel.com>
""" """
tmp_dir = get_bb_var('TMPDIR') testloc = oe.path.join(self.tmp_dir, 'liboetests')
testloc = oe.path.join(tmp_dir, 'liboetests')
src = oe.path.join(testloc, 'src') src = oe.path.join(testloc, 'src')
dst = oe.path.join(testloc, 'dst') dst = oe.path.join(testloc, 'dst')
bb.utils.mkdirhier(testloc) bb.utils.mkdirhier(testloc)
@ -40,8 +44,7 @@ class LibOE(oeSelfTest):
Product: OE-Core Product: OE-Core
Author: Joshua Lock <joshua.g.lock@intel.com> Author: Joshua Lock <joshua.g.lock@intel.com>
""" """
tmp_dir = get_bb_var('TMPDIR') testloc = oe.path.join(self.tmp_dir, 'liboetests')
testloc = oe.path.join(tmp_dir, 'liboetests')
src = oe.path.join(testloc, 'src') src = oe.path.join(testloc, 'src')
dst = oe.path.join(testloc, 'dst') dst = oe.path.join(testloc, 'dst')
bb.utils.mkdirhier(testloc) bb.utils.mkdirhier(testloc)
@ -51,8 +54,9 @@ class LibOE(oeSelfTest):
# ensure we have setfattr available # ensure we have setfattr available
bitbake("attr-native") bitbake("attr-native")
destdir = get_bb_var('SYSROOT_DESTDIR', 'attr-native') bb_vars = get_bb_vars(['SYSROOT_DESTDIR', 'bindir'], 'attr-native')
bindir = get_bb_var('bindir', 'attr-native') destdir = bb_vars['SYSROOT_DESTDIR']
bindir = bb_vars['bindir']
bindir = destdir + bindir bindir = destdir + bindir
# create a file with xattr and copy it # create a file with xattr and copy it
@ -73,8 +77,7 @@ class LibOE(oeSelfTest):
Product: OE-Core Product: OE-Core
Author: Joshua Lock <joshua.g.lock@intel.com> Author: Joshua Lock <joshua.g.lock@intel.com>
""" """
tmp_dir = get_bb_var('TMPDIR') testloc = oe.path.join(self.tmp_dir, 'liboetests')
testloc = oe.path.join(tmp_dir, 'liboetests')
src = oe.path.join(testloc, 'src') src = oe.path.join(testloc, 'src')
dst = oe.path.join(testloc, 'dst') dst = oe.path.join(testloc, 'dst')
bb.utils.mkdirhier(testloc) bb.utils.mkdirhier(testloc)

View File

@ -2,7 +2,7 @@ import unittest
import os import os
from oeqa.selftest.base import oeSelfTest from oeqa.selftest.base import oeSelfTest
from oeqa.utils.commands import get_bb_var, bitbake from oeqa.utils.commands import get_bb_var, get_bb_vars, bitbake
from oeqa.utils.decorators import testcase from oeqa.utils.decorators import testcase
class ManifestEntry: class ManifestEntry:
@ -84,9 +84,10 @@ class VerifyManifest(oeSelfTest):
try: try:
mdir = self.get_dir_from_bb_var('SDK_DEPLOY', self.buildtarget) mdir = self.get_dir_from_bb_var('SDK_DEPLOY', self.buildtarget)
for k in d_target.keys(): for k in d_target.keys():
bb_vars = get_bb_vars(['SDK_NAME', 'SDK_VERSION'], self.buildtarget)
mfilename[k] = "{}-toolchain-{}.{}.manifest".format( mfilename[k] = "{}-toolchain-{}.{}.manifest".format(
get_bb_var("SDK_NAME", self.buildtarget), bb_vars['SDK_NAME'],
get_bb_var("SDK_VERSION", self.buildtarget), bb_vars['SDK_VERSION'],
k) k)
mpath[k] = os.path.join(mdir, mfilename[k]) mpath[k] = os.path.join(mdir, mfilename[k])
if not os.path.isfile(mpath[k]): if not os.path.isfile(mpath[k]):

View File

@ -6,7 +6,7 @@ import fnmatch
import oeqa.utils.ftools as ftools import oeqa.utils.ftools as ftools
from oeqa.selftest.base import oeSelfTest from oeqa.selftest.base import oeSelfTest
from oeqa.utils.commands import runCmd, bitbake, get_bb_var from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
from oeqa.utils.decorators import testcase from oeqa.utils.decorators import testcase
class OePkgdataUtilTests(oeSelfTest): class OePkgdataUtilTests(oeSelfTest):
@ -126,10 +126,11 @@ class OePkgdataUtilTests(oeSelfTest):
curpkg = line.split(':')[0] curpkg = line.split(':')[0]
files[curpkg] = [] files[curpkg] = []
return files return files
base_libdir = get_bb_var('base_libdir') bb_vars = get_bb_vars(['base_libdir', 'libdir', 'includedir', 'mandir'])
libdir = get_bb_var('libdir') base_libdir = bb_vars['base_libdir']
includedir = get_bb_var('includedir') libdir = bb_vars['libdir']
mandir = get_bb_var('mandir') includedir = bb_vars['includedir']
mandir = bb_vars['mandir']
# Test recipe-space package name # Test recipe-space package name
result = runCmd('oe-pkgdata-util list-pkg-files zlib-dev zlib-doc') result = runCmd('oe-pkgdata-util list-pkg-files zlib-dev zlib-doc')
files = splitoutput(result.output) files = splitoutput(result.output)

View File

@ -12,10 +12,13 @@ from oeqa.utils.decorators import testcase
from oeqa.utils.network import get_free_port from oeqa.utils.network import get_free_port
class BitbakePrTests(oeSelfTest): class BitbakePrTests(oeSelfTest):
@classmethod
def setUpClass(cls):
cls.pkgdata_dir = get_bb_var('PKGDATA_DIR')
def get_pr_version(self, package_name): def get_pr_version(self, package_name):
pkgdata_dir = get_bb_var('PKGDATA_DIR') package_data_file = os.path.join(self.pkgdata_dir, 'runtime', package_name)
package_data_file = os.path.join(pkgdata_dir, 'runtime', package_name)
package_data = ftools.read_file(package_data_file) package_data = ftools.read_file(package_data_file)
find_pr = re.search("PKGR: r[0-9]+\.([0-9]+)", package_data) find_pr = re.search("PKGR: r[0-9]+\.([0-9]+)", package_data)
self.assertTrue(find_pr, "No PKG revision found in %s" % package_data_file) self.assertTrue(find_pr, "No PKG revision found in %s" % package_data_file)

View File

@ -4,7 +4,8 @@ import shutil
import tempfile import tempfile
import urllib.parse import urllib.parse
from oeqa.utils.commands import runCmd, bitbake, get_bb_var, create_temp_layer from oeqa.utils.commands import runCmd, bitbake, get_bb_var
from oeqa.utils.commands import get_bb_vars, create_temp_layer
from oeqa.utils.decorators import testcase from oeqa.utils.decorators import testcase
from oeqa.selftest import devtool from oeqa.selftest import devtool
@ -25,6 +26,7 @@ def tearDownModule():
class RecipetoolBase(devtool.DevtoolBase): class RecipetoolBase(devtool.DevtoolBase):
def setUpLocal(self): def setUpLocal(self):
self.templayerdir = templayerdir self.templayerdir = templayerdir
self.tempdir = tempfile.mkdtemp(prefix='recipetoolqa') self.tempdir = tempfile.mkdtemp(prefix='recipetoolqa')
@ -65,12 +67,16 @@ class RecipetoolBase(devtool.DevtoolBase):
class RecipetoolTests(RecipetoolBase): class RecipetoolTests(RecipetoolBase):
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
# Ensure we have the right data in shlibs/pkgdata # Ensure we have the right data in shlibs/pkgdata
logger = logging.getLogger("selftest") logger = logging.getLogger("selftest")
logger.info('Running bitbake to generate pkgdata') logger.info('Running bitbake to generate pkgdata')
bitbake('-c packagedata base-files coreutils busybox selftest-recipetool-appendfile') bitbake('-c packagedata base-files coreutils busybox selftest-recipetool-appendfile')
bb_vars = get_bb_vars(['COREBASE', 'BBPATH'])
cls.corebase = bb_vars['COREBASE']
cls.bbpath = bb_vars['BBPATH']
def _try_recipetool_appendfile(self, testrecipe, destfile, newfile, options, expectedlines, expectedfiles): def _try_recipetool_appendfile(self, testrecipe, destfile, newfile, options, expectedlines, expectedfiles):
cmd = 'recipetool appendfile %s %s %s %s' % (self.templayerdir, destfile, newfile, options) cmd = 'recipetool appendfile %s %s %s %s' % (self.templayerdir, destfile, newfile, options)
@ -104,9 +110,8 @@ class RecipetoolTests(RecipetoolBase):
# Now try with a file we know should be an alternative # Now try with a file we know should be an alternative
# (this is very much a fake example, but one we know is reliably an alternative) # (this is very much a fake example, but one we know is reliably an alternative)
self._try_recipetool_appendfile_fail('/bin/ls', self.testfile, ['ERROR: File /bin/ls is an alternative possibly provided by the following recipes:', 'coreutils', 'busybox']) self._try_recipetool_appendfile_fail('/bin/ls', self.testfile, ['ERROR: File /bin/ls is an alternative possibly provided by the following recipes:', 'coreutils', 'busybox'])
corebase = get_bb_var('COREBASE')
# Need a test file - should be executable # Need a test file - should be executable
testfile2 = os.path.join(corebase, 'oe-init-build-env') testfile2 = os.path.join(self.corebase, 'oe-init-build-env')
testfile2name = os.path.basename(testfile2) testfile2name = os.path.basename(testfile2)
expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n', expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n',
'\n', '\n',
@ -135,7 +140,6 @@ class RecipetoolTests(RecipetoolBase):
@testcase(1173) @testcase(1173)
def test_recipetool_appendfile_add(self): def test_recipetool_appendfile_add(self):
corebase = get_bb_var('COREBASE')
# Try arbitrary file add to a recipe # Try arbitrary file add to a recipe
expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n', expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n',
'\n', '\n',
@ -148,7 +152,7 @@ class RecipetoolTests(RecipetoolBase):
self._try_recipetool_appendfile('netbase', '/usr/share/something', self.testfile, '-r netbase', expectedlines, ['testfile']) self._try_recipetool_appendfile('netbase', '/usr/share/something', self.testfile, '-r netbase', expectedlines, ['testfile'])
# Try adding another file, this time where the source file is executable # Try adding another file, this time where the source file is executable
# (so we're testing that, plus modifying an existing bbappend) # (so we're testing that, plus modifying an existing bbappend)
testfile2 = os.path.join(corebase, 'oe-init-build-env') testfile2 = os.path.join(self.corebase, 'oe-init-build-env')
testfile2name = os.path.basename(testfile2) testfile2name = os.path.basename(testfile2)
expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n', expectedlines = ['FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"\n',
'\n', '\n',
@ -500,8 +504,7 @@ class RecipetoolTests(RecipetoolBase):
recipetool = runCmd("which recipetool") recipetool = runCmd("which recipetool")
fromname = runCmd("recipetool --quiet pluginfile") fromname = runCmd("recipetool --quiet pluginfile")
srcfile = fromname.output srcfile = fromname.output
bbpath = get_bb_var('BBPATH') searchpath = self.bbpath.split(':') + [os.path.dirname(recipetool.output)]
searchpath = bbpath.split(':') + [os.path.dirname(recipetool.output)]
plugincontent = [] plugincontent = []
with open(srcfile) as fh: with open(srcfile) as fh:
plugincontent = fh.readlines() plugincontent = fh.readlines()
@ -597,17 +600,18 @@ class RecipetoolAppendsrcBase(RecipetoolBase):
self._try_recipetool_appendsrcfiles(testrecipe, newfiles, expectedfiles=expectedfiles, destdir=destdir, options=options) self._try_recipetool_appendsrcfiles(testrecipe, newfiles, expectedfiles=expectedfiles, destdir=destdir, options=options)
src_uri = get_bb_var('SRC_URI', testrecipe).split() bb_vars = get_bb_vars(['SRC_URI', 'FILE', 'FILESEXTRAPATHS'], testrecipe)
src_uri = bb_vars['SRC_URI'].split()
for f in expectedfiles: for f in expectedfiles:
if destdir: if destdir:
self.assertIn('file://%s;subdir=%s' % (f, destdir), src_uri) self.assertIn('file://%s;subdir=%s' % (f, destdir), src_uri)
else: else:
self.assertIn('file://%s' % f, src_uri) self.assertIn('file://%s' % f, src_uri)
recipefile = get_bb_var('FILE', testrecipe) recipefile = bb_vars['FILE']
bbappendfile = self._check_bbappend(testrecipe, recipefile, self.templayerdir) bbappendfile = self._check_bbappend(testrecipe, recipefile, self.templayerdir)
filesdir = os.path.join(os.path.dirname(bbappendfile), testrecipe) filesdir = os.path.join(os.path.dirname(bbappendfile), testrecipe)
filesextrapaths = get_bb_var('FILESEXTRAPATHS', testrecipe).split(':') filesextrapaths = bb_vars['FILESEXTRAPATHS'].split(':')
self.assertIn(filesdir, filesextrapaths) self.assertIn(filesdir, filesextrapaths)
@ -638,8 +642,9 @@ class RecipetoolAppendsrcTests(RecipetoolAppendsrcBase):
@testcase(1280) @testcase(1280)
def test_recipetool_appendsrcfile_srcdir_basic(self): def test_recipetool_appendsrcfile_srcdir_basic(self):
testrecipe = 'bash' testrecipe = 'bash'
srcdir = get_bb_var('S', testrecipe) bb_vars = get_bb_vars(['S', 'WORKDIR'], testrecipe)
workdir = get_bb_var('WORKDIR', testrecipe) srcdir = bb_vars['S']
workdir = bb_vars['WORKDIR']
subdir = os.path.relpath(srcdir, workdir) subdir = os.path.relpath(srcdir, workdir)
self._test_appendsrcfile(testrecipe, 'a-file', srcdir=subdir) self._test_appendsrcfile(testrecipe, 'a-file', srcdir=subdir)
@ -664,8 +669,9 @@ class RecipetoolAppendsrcTests(RecipetoolAppendsrcBase):
def test_recipetool_appendsrcfile_replace_file_srcdir(self): def test_recipetool_appendsrcfile_replace_file_srcdir(self):
testrecipe = 'bash' testrecipe = 'bash'
filepath = 'Makefile.in' filepath = 'Makefile.in'
srcdir = get_bb_var('S', testrecipe) bb_vars = get_bb_vars(['S', 'WORKDIR'], testrecipe)
workdir = get_bb_var('WORKDIR', testrecipe) srcdir = bb_vars['S']
workdir = bb_vars['WORKDIR']
subdir = os.path.relpath(srcdir, workdir) subdir = os.path.relpath(srcdir, workdir)
self._test_appendsrcfile(testrecipe, filepath, srcdir=subdir) self._test_appendsrcfile(testrecipe, filepath, srcdir=subdir)

View File

@ -1,5 +1,5 @@
from oeqa.selftest.base import oeSelfTest from oeqa.selftest.base import oeSelfTest
from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars, runqemu
from oeqa.utils.decorators import testcase from oeqa.utils.decorators import testcase
import os import os
import re import re
@ -31,8 +31,9 @@ class TestExport(oeSelfTest):
bitbake('core-image-minimal') bitbake('core-image-minimal')
bitbake('-c testexport core-image-minimal') bitbake('-c testexport core-image-minimal')
# Verify if TEST_EXPORT_DIR was created
testexport_dir = get_bb_var('TEST_EXPORT_DIR', 'core-image-minimal') testexport_dir = get_bb_var('TEST_EXPORT_DIR', 'core-image-minimal')
# Verify if TEST_EXPORT_DIR was created
isdir = os.path.isdir(testexport_dir) isdir = os.path.isdir(testexport_dir)
self.assertEqual(True, isdir, 'Failed to create testexport dir: %s' % testexport_dir) self.assertEqual(True, isdir, 'Failed to create testexport dir: %s' % testexport_dir)
@ -73,10 +74,14 @@ class TestExport(oeSelfTest):
bitbake('core-image-minimal') bitbake('core-image-minimal')
bitbake('-c testexport core-image-minimal') bitbake('-c testexport core-image-minimal')
needed_vars = ['TEST_EXPORT_DIR', 'TEST_EXPORT_SDK_DIR', 'TEST_EXPORT_SDK_NAME']
bb_vars = get_bb_vars(needed_vars, 'core-image-minimal')
testexport_dir = bb_vars['TEST_EXPORT_DIR']
sdk_dir = bb_vars['TEST_EXPORT_SDK_DIR']
sdk_name = bb_vars['TEST_EXPORT_SDK_NAME']
# Check for SDK # Check for SDK
testexport_dir = get_bb_var('TEST_EXPORT_DIR', 'core-image-minimal') tarball_name = "%s.sh" % sdk_name
sdk_dir = get_bb_var('TEST_EXPORT_SDK_DIR', 'core-image-minimal')
tarball_name = "%s.sh" % get_bb_var('TEST_EXPORT_SDK_NAME', 'core-image-minimal')
tarball_path = os.path.join(testexport_dir, sdk_dir, tarball_name) tarball_path = os.path.join(testexport_dir, sdk_dir, tarball_name)
msg = "Couldn't find SDK tarball: %s" % tarball_path msg = "Couldn't find SDK tarball: %s" % tarball_path
self.assertEqual(os.path.isfile(tarball_path), True, msg) self.assertEqual(os.path.isfile(tarball_path), True, msg)

View File

@ -1,5 +1,5 @@
from oeqa.selftest.base import oeSelfTest from oeqa.selftest.base import oeSelfTest
from oeqa.utils.commands import runCmd, bitbake, get_bb_var from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
import os import os
import glob import glob
import re import re
@ -59,15 +59,17 @@ class Signing(oeSelfTest):
self.add_command_to_tearDown('bitbake -c clean %s' % test_recipe) self.add_command_to_tearDown('bitbake -c clean %s' % test_recipe)
pkgdatadir = get_bb_var('PKGDATA_DIR', test_recipe) needed_vars = ['PKGDATA_DIR', 'DEPLOY_DIR_RPM', 'PACKAGE_ARCH', 'STAGING_BINDIR_NATIVE']
bb_vars = get_bb_vars(needed_vars, test_recipe)
pkgdatadir = bb_vars['PKGDATA_DIR']
pkgdata = oe.packagedata.read_pkgdatafile(pkgdatadir + "/runtime/ed") pkgdata = oe.packagedata.read_pkgdatafile(pkgdatadir + "/runtime/ed")
if 'PKGE' in pkgdata: if 'PKGE' in pkgdata:
pf = pkgdata['PN'] + "-" + pkgdata['PKGE'] + pkgdata['PKGV'] + '-' + pkgdata['PKGR'] pf = pkgdata['PN'] + "-" + pkgdata['PKGE'] + pkgdata['PKGV'] + '-' + pkgdata['PKGR']
else: else:
pf = pkgdata['PN'] + "-" + pkgdata['PKGV'] + '-' + pkgdata['PKGR'] pf = pkgdata['PN'] + "-" + pkgdata['PKGV'] + '-' + pkgdata['PKGR']
deploy_dir_rpm = get_bb_var('DEPLOY_DIR_RPM', test_recipe) deploy_dir_rpm = bb_vars['DEPLOY_DIR_RPM']
package_arch = get_bb_var('PACKAGE_ARCH', test_recipe).replace('-', '_') package_arch = bb_vars['PACKAGE_ARCH'].replace('-', '_')
staging_bindir_native = get_bb_var('STAGING_BINDIR_NATIVE', test_recipe) staging_bindir_native = bb_vars['STAGING_BINDIR_NATIVE']
pkg_deploy = os.path.join(deploy_dir_rpm, package_arch, '.'.join((pf, package_arch, 'rpm'))) pkg_deploy = os.path.join(deploy_dir_rpm, package_arch, '.'.join((pf, package_arch, 'rpm')))

View File

@ -6,17 +6,24 @@ import shutil
import oeqa.utils.ftools as ftools import oeqa.utils.ftools as ftools
from oeqa.selftest.base import oeSelfTest from oeqa.selftest.base import oeSelfTest
from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_test_layer from oeqa.utils.commands import runCmd, bitbake, get_bb_vars, get_test_layer
class SStateBase(oeSelfTest): class SStateBase(oeSelfTest):
def setUpLocal(self): def setUpLocal(self):
self.temp_sstate_location = None self.temp_sstate_location = None
self.sstate_path = get_bb_var('SSTATE_DIR') needed_vars = ['SSTATE_DIR', 'NATIVELSBSTRING', 'TCLIBC', 'TUNE_ARCH',
self.hostdistro = get_bb_var('NATIVELSBSTRING') 'TOPDIR', 'TARGET_VENDOR', 'TARGET_OS']
bb_vars = get_bb_vars(needed_vars)
self.sstate_path = bb_vars['SSTATE_DIR']
self.hostdistro = bb_vars['NATIVELSBSTRING']
self.tclibc = bb_vars['TCLIBC']
self.tune_arch = bb_vars['TUNE_ARCH']
self.topdir = bb_vars['TOPDIR']
self.target_vendor = bb_vars['TARGET_VENDOR']
self.target_os = bb_vars['TARGET_OS']
self.distro_specific_sstate = os.path.join(self.sstate_path, self.hostdistro) self.distro_specific_sstate = os.path.join(self.sstate_path, self.hostdistro)
self.tclibc = get_bb_var('TCLIBC')
# Creates a special sstate configuration with the option to add sstate mirrors # Creates a special sstate configuration with the option to add sstate mirrors
def config_sstate(self, temp_sstate_location=False, add_local_mirrors=[]): def config_sstate(self, temp_sstate_location=False, add_local_mirrors=[]):
@ -27,8 +34,9 @@ class SStateBase(oeSelfTest):
config_temp_sstate = "SSTATE_DIR = \"%s\"" % temp_sstate_path config_temp_sstate = "SSTATE_DIR = \"%s\"" % temp_sstate_path
self.append_config(config_temp_sstate) self.append_config(config_temp_sstate)
self.track_for_cleanup(temp_sstate_path) self.track_for_cleanup(temp_sstate_path)
self.sstate_path = get_bb_var('SSTATE_DIR') bb_vars = get_bb_vars(['SSTATE_DIR', 'NATIVELSBSTRING'])
self.hostdistro = get_bb_var('NATIVELSBSTRING') self.sstate_path = bb_vars['SSTATE_DIR']
self.hostdistro = bb_vars['NATIVELSBSTRING']
self.distro_specific_sstate = os.path.join(self.sstate_path, self.hostdistro) self.distro_specific_sstate = os.path.join(self.sstate_path, self.hostdistro)
if add_local_mirrors: if add_local_mirrors:

View File

@ -41,13 +41,11 @@ class SStateTests(SStateBase):
@testcase(975) @testcase(975)
def test_sstate_creation_distro_specific_pass(self): def test_sstate_creation_distro_specific_pass(self):
targetarch = get_bb_var('TUNE_ARCH') self.run_test_sstate_creation(['binutils-cross-'+ self.tune_arch, 'binutils-native'], distro_specific=True, distro_nonspecific=False, temp_sstate_location=True)
self.run_test_sstate_creation(['binutils-cross-'+ targetarch, 'binutils-native'], distro_specific=True, distro_nonspecific=False, temp_sstate_location=True)
@testcase(1374) @testcase(1374)
def test_sstate_creation_distro_specific_fail(self): def test_sstate_creation_distro_specific_fail(self):
targetarch = get_bb_var('TUNE_ARCH') self.run_test_sstate_creation(['binutils-cross-'+ self.tune_arch, 'binutils-native'], distro_specific=False, distro_nonspecific=True, temp_sstate_location=True, should_pass=False)
self.run_test_sstate_creation(['binutils-cross-'+ targetarch, 'binutils-native'], distro_specific=False, distro_nonspecific=True, temp_sstate_location=True, should_pass=False)
@testcase(976) @testcase(976)
def test_sstate_creation_distro_nonspecific_pass(self): def test_sstate_creation_distro_nonspecific_pass(self):
@ -80,8 +78,7 @@ class SStateTests(SStateBase):
@testcase(977) @testcase(977)
def test_cleansstate_task_distro_specific_nonspecific(self): def test_cleansstate_task_distro_specific_nonspecific(self):
targetarch = get_bb_var('TUNE_ARCH') targets = ['binutils-cross-'+ self.tune_arch, 'binutils-native']
targets = ['binutils-cross-'+ targetarch, 'binutils-native']
# glibc-initial is intended only for the glibc C library # glibc-initial is intended only for the glibc C library
if self.tclibc == 'glibc': if self.tclibc == 'glibc':
targets.append('glibc-initial') targets.append('glibc-initial')
@ -95,8 +92,7 @@ class SStateTests(SStateBase):
@testcase(1377) @testcase(1377)
def test_cleansstate_task_distro_specific(self): def test_cleansstate_task_distro_specific(self):
targetarch = get_bb_var('TUNE_ARCH') targets = ['binutils-cross-'+ self.tune_arch, 'binutils-native']
targets = ['binutils-cross-'+ targetarch, 'binutils-native']
# glibc-initial is intended only for the glibc C library # glibc-initial is intended only for the glibc C library
if self.tclibc == 'glibc': if self.tclibc == 'glibc':
targets.append('glibc-initial') targets.append('glibc-initial')
@ -137,13 +133,11 @@ class SStateTests(SStateBase):
@testcase(175) @testcase(175)
def test_rebuild_distro_specific_sstate_cross_native_targets(self): def test_rebuild_distro_specific_sstate_cross_native_targets(self):
targetarch = get_bb_var('TUNE_ARCH') self.run_test_rebuild_distro_specific_sstate(['binutils-cross-' + self.tune_arch, 'binutils-native'], temp_sstate_location=True)
self.run_test_rebuild_distro_specific_sstate(['binutils-cross-' + targetarch, 'binutils-native'], temp_sstate_location=True)
@testcase(1372) @testcase(1372)
def test_rebuild_distro_specific_sstate_cross_target(self): def test_rebuild_distro_specific_sstate_cross_target(self):
targetarch = get_bb_var('TUNE_ARCH') self.run_test_rebuild_distro_specific_sstate(['binutils-cross-' + self.tune_arch], temp_sstate_location=True)
self.run_test_rebuild_distro_specific_sstate(['binutils-cross-' + targetarch], temp_sstate_location=True)
@testcase(1373) @testcase(1373)
def test_rebuild_distro_specific_sstate_native_target(self): def test_rebuild_distro_specific_sstate_native_target(self):
@ -158,10 +152,9 @@ class SStateTests(SStateBase):
self.assertTrue(len(global_config) == len(target_config), msg='Lists global_config and target_config should have the same number of elements') self.assertTrue(len(global_config) == len(target_config), msg='Lists global_config and target_config should have the same number of elements')
self.config_sstate(temp_sstate_location=True, add_local_mirrors=[self.sstate_path]) self.config_sstate(temp_sstate_location=True, add_local_mirrors=[self.sstate_path])
# If buildhistory is enabled, we need to disable version-going-backwards QA checks for this test. It may report errors otherwise. # If buildhistory is enabled, we need to disable version-going-backwards
if ('buildhistory' in get_bb_var('USER_CLASSES')) or ('buildhistory' in get_bb_var('INHERIT')): # QA checks for this test. It may report errors otherwise.
remove_errors_config = 'ERROR_QA_remove = "version-going-backwards"' self.append_config('ERROR_QA_remove = "version-going-backwards"')
self.append_config(remove_errors_config)
# For not this only checks if random sstate tasks are handled correctly as a group. # For not this only checks if random sstate tasks are handled correctly as a group.
# In the future we should add control over what tasks we check for. # In the future we should add control over what tasks we check for.
@ -242,8 +235,6 @@ class SStateTests(SStateBase):
manually and check using bitbake -S. manually and check using bitbake -S.
""" """
topdir = get_bb_var('TOPDIR')
targetvendor = get_bb_var('TARGET_VENDOR')
self.write_config(""" self.write_config("""
MACHINE = "qemux86" MACHINE = "qemux86"
TMPDIR = "${TOPDIR}/tmp-sstatesamehash" TMPDIR = "${TOPDIR}/tmp-sstatesamehash"
@ -252,7 +243,7 @@ BUILD_OS = "linux"
SDKMACHINE = "x86_64" SDKMACHINE = "x86_64"
PACKAGE_CLASSES = "package_rpm package_ipk package_deb" PACKAGE_CLASSES = "package_rpm package_ipk package_deb"
""") """)
self.track_for_cleanup(topdir + "/tmp-sstatesamehash") self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
bitbake("core-image-sato -S none") bitbake("core-image-sato -S none")
self.write_config(""" self.write_config("""
MACHINE = "qemux86" MACHINE = "qemux86"
@ -262,7 +253,7 @@ BUILD_OS = "linux"
SDKMACHINE = "i686" SDKMACHINE = "i686"
PACKAGE_CLASSES = "package_rpm package_ipk package_deb" PACKAGE_CLASSES = "package_rpm package_ipk package_deb"
""") """)
self.track_for_cleanup(topdir + "/tmp-sstatesamehash2") self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
bitbake("core-image-sato -S none") bitbake("core-image-sato -S none")
def get_files(d): def get_files(d):
@ -275,9 +266,9 @@ PACKAGE_CLASSES = "package_rpm package_ipk package_deb"
continue continue
f.extend(os.path.join(root, name) for name in files) f.extend(os.path.join(root, name) for name in files)
return f return f
files1 = get_files(topdir + "/tmp-sstatesamehash/stamps/") files1 = get_files(self.topdir + "/tmp-sstatesamehash/stamps/")
files2 = get_files(topdir + "/tmp-sstatesamehash2/stamps/") files2 = get_files(self.topdir + "/tmp-sstatesamehash2/stamps/")
files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash").replace("i686-linux", "x86_64-linux").replace("i686" + targetvendor + "-linux", "x86_64" + targetvendor + "-linux", ) for x in files2] files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash").replace("i686-linux", "x86_64-linux").replace("i686" + self.target_vendor + "-linux", "x86_64" + self.target_vendor + "-linux", ) for x in files2]
self.maxDiff = None self.maxDiff = None
self.assertCountEqual(files1, files2) self.assertCountEqual(files1, files2)
@ -290,18 +281,17 @@ PACKAGE_CLASSES = "package_rpm package_ipk package_deb"
builds, override the variables manually and check using bitbake -S. builds, override the variables manually and check using bitbake -S.
""" """
topdir = get_bb_var('TOPDIR')
self.write_config(""" self.write_config("""
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\" TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\"
NATIVELSBSTRING = \"DistroA\" NATIVELSBSTRING = \"DistroA\"
""") """)
self.track_for_cleanup(topdir + "/tmp-sstatesamehash") self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
bitbake("core-image-sato -S none") bitbake("core-image-sato -S none")
self.write_config(""" self.write_config("""
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\" TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
NATIVELSBSTRING = \"DistroB\" NATIVELSBSTRING = \"DistroB\"
""") """)
self.track_for_cleanup(topdir + "/tmp-sstatesamehash2") self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
bitbake("core-image-sato -S none") bitbake("core-image-sato -S none")
def get_files(d): def get_files(d):
@ -309,8 +299,8 @@ NATIVELSBSTRING = \"DistroB\"
for root, dirs, files in os.walk(d): for root, dirs, files in os.walk(d):
f.extend(os.path.join(root, name) for name in files) f.extend(os.path.join(root, name) for name in files)
return f return f
files1 = get_files(topdir + "/tmp-sstatesamehash/stamps/") files1 = get_files(self.topdir + "/tmp-sstatesamehash/stamps/")
files2 = get_files(topdir + "/tmp-sstatesamehash2/stamps/") files2 = get_files(self.topdir + "/tmp-sstatesamehash2/stamps/")
files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash") for x in files2] files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash") for x in files2]
self.maxDiff = None self.maxDiff = None
self.assertCountEqual(files1, files2) self.assertCountEqual(files1, files2)
@ -359,14 +349,11 @@ MULTILIBS = \"\"
def sstate_allarch_samesigs(self, configA, configB): def sstate_allarch_samesigs(self, configA, configB):
topdir = get_bb_var('TOPDIR')
targetos = get_bb_var('TARGET_OS')
targetvendor = get_bb_var('TARGET_VENDOR')
self.write_config(configA) self.write_config(configA)
self.track_for_cleanup(topdir + "/tmp-sstatesamehash") self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
bitbake("world meta-toolchain -S none") bitbake("world meta-toolchain -S none")
self.write_config(configB) self.write_config(configB)
self.track_for_cleanup(topdir + "/tmp-sstatesamehash2") self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
bitbake("world meta-toolchain -S none") bitbake("world meta-toolchain -S none")
def get_files(d): def get_files(d):
@ -380,15 +367,15 @@ MULTILIBS = \"\"
(_, task, _, shash) = name.rsplit(".", 3) (_, task, _, shash) = name.rsplit(".", 3)
f[os.path.join(os.path.basename(root), task)] = shash f[os.path.join(os.path.basename(root), task)] = shash
return f return f
files1 = get_files(topdir + "/tmp-sstatesamehash/stamps/all" + targetvendor + "-" + targetos) files1 = get_files(self.topdir + "/tmp-sstatesamehash/stamps/all" + self.target_vendor + "-" + self.target_os)
files2 = get_files(topdir + "/tmp-sstatesamehash2/stamps/all" + targetvendor + "-" + targetos) files2 = get_files(self.topdir + "/tmp-sstatesamehash2/stamps/all" + self.target_vendor + "-" + self.target_os)
self.maxDiff = None self.maxDiff = None
self.assertEqual(files1, files2) self.assertEqual(files1, files2)
nativesdkdir = os.path.basename(glob.glob(topdir + "/tmp-sstatesamehash/stamps/*-nativesdk*-linux")[0]) nativesdkdir = os.path.basename(glob.glob(self.topdir + "/tmp-sstatesamehash/stamps/*-nativesdk*-linux")[0])
files1 = get_files(topdir + "/tmp-sstatesamehash/stamps/" + nativesdkdir) files1 = get_files(self.topdir + "/tmp-sstatesamehash/stamps/" + nativesdkdir)
files2 = get_files(topdir + "/tmp-sstatesamehash2/stamps/" + nativesdkdir) files2 = get_files(self.topdir + "/tmp-sstatesamehash2/stamps/" + nativesdkdir)
self.maxDiff = None self.maxDiff = None
self.assertEqual(files1, files2) self.assertEqual(files1, files2)
@ -400,9 +387,6 @@ MULTILIBS = \"\"
qemux86copy machine to test this. Also include multilibs in the test. qemux86copy machine to test this. Also include multilibs in the test.
""" """
topdir = get_bb_var('TOPDIR')
targetos = get_bb_var('TARGET_OS')
targetvendor = get_bb_var('TARGET_VENDOR')
self.write_config(""" self.write_config("""
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\" TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\"
MACHINE = \"qemux86\" MACHINE = \"qemux86\"
@ -410,7 +394,7 @@ require conf/multilib.conf
MULTILIBS = "multilib:lib32" MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86" DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
""") """)
self.track_for_cleanup(topdir + "/tmp-sstatesamehash") self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
bitbake("world meta-toolchain -S none") bitbake("world meta-toolchain -S none")
self.write_config(""" self.write_config("""
TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\" TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\"
@ -419,7 +403,7 @@ require conf/multilib.conf
MULTILIBS = "multilib:lib32" MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86" DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
""") """)
self.track_for_cleanup(topdir + "/tmp-sstatesamehash2") self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
bitbake("world meta-toolchain -S none") bitbake("world meta-toolchain -S none")
def get_files(d): def get_files(d):
@ -433,8 +417,8 @@ DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
if "do_build" not in name and "do_populate_sdk" not in name: if "do_build" not in name and "do_populate_sdk" not in name:
f.append(os.path.join(root, name)) f.append(os.path.join(root, name))
return f return f
files1 = get_files(topdir + "/tmp-sstatesamehash/stamps") files1 = get_files(self.topdir + "/tmp-sstatesamehash/stamps")
files2 = get_files(topdir + "/tmp-sstatesamehash2/stamps") files2 = get_files(self.topdir + "/tmp-sstatesamehash2/stamps")
files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash") for x in files2] files2 = [x.replace("tmp-sstatesamehash2", "tmp-sstatesamehash") for x in files2]
self.maxDiff = None self.maxDiff = None
self.assertCountEqual(files1, files2) self.assertCountEqual(files1, files2)
@ -446,8 +430,6 @@ DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
classes inherits should be the same. classes inherits should be the same.
""" """
topdir = get_bb_var('TOPDIR')
targetvendor = get_bb_var('TARGET_VENDOR')
self.write_config(""" self.write_config("""
TMPDIR = "${TOPDIR}/tmp-sstatesamehash" TMPDIR = "${TOPDIR}/tmp-sstatesamehash"
BB_NUMBER_THREADS = "1" BB_NUMBER_THREADS = "1"
@ -458,8 +440,8 @@ DATE = "20161111"
INHERIT_remove = "buildstats-summary buildhistory uninative" INHERIT_remove = "buildstats-summary buildhistory uninative"
http_proxy = "" http_proxy = ""
""") """)
self.track_for_cleanup(topdir + "/tmp-sstatesamehash") self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash")
self.track_for_cleanup(topdir + "/download1") self.track_for_cleanup(self.topdir + "/download1")
bitbake("world meta-toolchain -S none") bitbake("world meta-toolchain -S none")
self.write_config(""" self.write_config("""
TMPDIR = "${TOPDIR}/tmp-sstatesamehash2" TMPDIR = "${TOPDIR}/tmp-sstatesamehash2"
@ -473,8 +455,8 @@ INHERIT_remove = "uninative"
INHERIT += "buildstats-summary buildhistory" INHERIT += "buildstats-summary buildhistory"
http_proxy = "http://example.com/" http_proxy = "http://example.com/"
""") """)
self.track_for_cleanup(topdir + "/tmp-sstatesamehash2") self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2")
self.track_for_cleanup(topdir + "/download2") self.track_for_cleanup(self.topdir + "/download2")
bitbake("world meta-toolchain -S none") bitbake("world meta-toolchain -S none")
def get_files(d): def get_files(d):
@ -486,8 +468,8 @@ http_proxy = "http://example.com/"
base = os.sep.join(root.rsplit(os.sep, 2)[-2:] + [name]) base = os.sep.join(root.rsplit(os.sep, 2)[-2:] + [name])
f[base] = shash f[base] = shash
return f return f
files1 = get_files(topdir + "/tmp-sstatesamehash/stamps/") files1 = get_files(self.topdir + "/tmp-sstatesamehash/stamps/")
files2 = get_files(topdir + "/tmp-sstatesamehash2/stamps/") files2 = get_files(self.topdir + "/tmp-sstatesamehash2/stamps/")
# Remove items that are identical in both sets # Remove items that are identical in both sets
for k,v in files1.items() & files2.items(): for k,v in files1.items() & files2.items():
del files1[k] del files1[k]
@ -500,8 +482,8 @@ http_proxy = "http://example.com/"
if k in files1 and k in files2: if k in files1 and k in files2:
print("%s differs:" % k) print("%s differs:" % k)
print(subprocess.check_output(("bitbake-diffsigs", print(subprocess.check_output(("bitbake-diffsigs",
topdir + "/tmp-sstatesamehash/stamps/" + k + "." + files1[k], self.topdir + "/tmp-sstatesamehash/stamps/" + k + "." + files1[k],
topdir + "/tmp-sstatesamehash2/stamps/" + k + "." + files2[k]))) self.topdir + "/tmp-sstatesamehash2/stamps/" + k + "." + files2[k])))
elif k in files1 and k not in files2: elif k in files1 and k not in files2:
print("%s in files1" % k) print("%s in files1" % k)
elif k not in files1 and k in files2: elif k not in files1 and k in files2:

View File

@ -4,7 +4,7 @@ import re
import bb.tinfoil import bb.tinfoil
from oeqa.selftest.base import oeSelfTest from oeqa.selftest.base import oeSelfTest
from oeqa.utils.commands import runCmd, get_bb_var from oeqa.utils.commands import runCmd
from oeqa.utils.decorators import testcase from oeqa.utils.decorators import testcase
class TinfoilTests(oeSelfTest): class TinfoilTests(oeSelfTest):

View File

@ -29,7 +29,7 @@ from glob import glob
from shutil import rmtree from shutil import rmtree
from oeqa.selftest.base import oeSelfTest from oeqa.selftest.base import oeSelfTest
from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars, runqemu
from oeqa.utils.decorators import testcase from oeqa.utils.decorators import testcase
@ -212,12 +212,11 @@ class Wic(oeSelfTest):
@testcase(1212) @testcase(1212)
def test_build_artifacts(self): def test_build_artifacts(self):
"""Test wic create directdisk providing all artifacts.""" """Test wic create directdisk providing all artifacts."""
variables = (('STAGING_DATADIR', 'wic-tools'), bb_vars = get_bb_vars(['STAGING_DATADIR', 'RECIPE_SYSROOT_NATIVE'],
('RECIPE_SYSROOT_NATIVE', 'wic-tools'), 'wic-tools')
('DEPLOY_DIR_IMAGE', 'core-image-minimal'), bb_vars.update(get_bb_vars(['DEPLOY_DIR_IMAGE', 'IMAGE_ROOTFS'],
('IMAGE_ROOTFS', 'core-image-minimal')) 'core-image-minimal'))
bbvars = {var.lower(): get_bb_var(var, recipe) \ bbvars = {key.lower(): value for key, value in bb_vars.items()}
for var, recipe in variables}
bbvars['resultdir'] = self.resultdir bbvars['resultdir'] = self.resultdir
status = runCmd("wic create directdisk " status = runCmd("wic create directdisk "
"-b %(staging_datadir)s " "-b %(staging_datadir)s "
@ -321,12 +320,11 @@ class Wic(oeSelfTest):
@testcase(1269) @testcase(1269)
def test_rootfs_artifacts(self): def test_rootfs_artifacts(self):
"""Test usage of rootfs plugin with rootfs paths""" """Test usage of rootfs plugin with rootfs paths"""
variables = (('STAGING_DATADIR', 'wic-tools'), bb_vars = get_bb_vars(['STAGING_DATADIR', 'RECIPE_SYSROOT_NATIVE'],
('RECIPE_SYSROOT_NATIVE', 'wic-tools'), 'wic-tools')
('DEPLOY_DIR_IMAGE', 'core-image-minimal'), bb_vars.update(get_bb_vars(['DEPLOY_DIR_IMAGE', 'IMAGE_ROOTFS'],
('IMAGE_ROOTFS', 'core-image-minimal')) 'core-image-minimal'))
bbvars = {var.lower(): get_bb_var(var, recipe) \ bbvars = {key.lower(): value for key, value in bb_vars.items()}
for var, recipe in variables}
bbvars['wks'] = "directdisk-multi-rootfs" bbvars['wks'] = "directdisk-multi-rootfs"
bbvars['resultdir'] = self.resultdir bbvars['resultdir'] = self.resultdir
status = runCmd("wic create %(wks)s " status = runCmd("wic create %(wks)s "
@ -464,8 +462,9 @@ part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --r
"""Generate and obtain the path to <image>.env""" """Generate and obtain the path to <image>.env"""
if image not in self.wicenv_cache: if image not in self.wicenv_cache:
self.assertEqual(0, bitbake('%s -c do_rootfs_wicenv' % image).status) self.assertEqual(0, bitbake('%s -c do_rootfs_wicenv' % image).status)
stdir = get_bb_var('STAGING_DIR', image) bb_vars = get_bb_vars(['STAGING_DIR', 'MACHINE'], image)
machine = get_bb_var('MACHINE', image) stdir = bb_vars['STAGING_DIR']
machine = bb_vars['MACHINE']
self.wicenv_cache[image] = os.path.join(stdir, machine, 'imgdata') self.wicenv_cache[image] = os.path.join(stdir, machine, 'imgdata')
return self.wicenv_cache[image] return self.wicenv_cache[image]
@ -475,12 +474,13 @@ part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --r
image = 'core-image-minimal' image = 'core-image-minimal'
imgdatadir = self._get_image_env_path(image) imgdatadir = self._get_image_env_path(image)
basename = get_bb_var('IMAGE_BASENAME', image) bb_vars = get_bb_vars(['IMAGE_BASENAME', 'WICVARS'], image)
basename = bb_vars['IMAGE_BASENAME']
self.assertEqual(basename, image) self.assertEqual(basename, image)
path = os.path.join(imgdatadir, basename) + '.env' path = os.path.join(imgdatadir, basename) + '.env'
self.assertTrue(os.path.isfile(path)) self.assertTrue(os.path.isfile(path))
wicvars = set(get_bb_var('WICVARS', image).split()) wicvars = set(bb_vars['WICVARS'].split())
# filter out optional variables # filter out optional variables
wicvars = wicvars.difference(('DEPLOY_DIR_IMAGE', 'IMAGE_BOOT_FILES', wicvars = wicvars.difference(('DEPLOY_DIR_IMAGE', 'IMAGE_BOOT_FILES',
'INITRD', 'INITRD_LIVE', 'ISODIR')) 'INITRD', 'INITRD_LIVE', 'ISODIR'))
@ -522,8 +522,9 @@ part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --r
self.assertEqual(0, bitbake('wic-image-minimal').status) self.assertEqual(0, bitbake('wic-image-minimal').status)
self.remove_config(config) self.remove_config(config)
deploy_dir = get_bb_var('DEPLOY_DIR_IMAGE') bb_vars = get_bb_vars(['DEPLOY_DIR_IMAGE', 'MACHINE'])
machine = get_bb_var('MACHINE') deploy_dir = bb_vars['DEPLOY_DIR_IMAGE']
machine = bb_vars['MACHINE']
prefix = os.path.join(deploy_dir, 'wic-image-minimal-%s.' % machine) prefix = os.path.join(deploy_dir, 'wic-image-minimal-%s.' % machine)
# check if we have result image and manifests symlinks # check if we have result image and manifests symlinks
# pointing to existing files # pointing to existing files