From: Richard Purdie Date: Mon, 6 Oct 2025 13:14:52 +0000 (+0100) Subject: oeqa/selftest/bblock/fitimage/sstatetests: Fix changing MACHINE during the test X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2323fe87eefc8017ac93ed98b1bea24996f2276b;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git oeqa/selftest/bblock/fitimage/sstatetests: Fix changing MACHINE during the test With config fragments, changing MACHINE in the test like this no longer works. Use the forcevarable override to allow it to work. This also needs a tweak to bitbake to work correctly, sent seperately. Whilst ugly, this avoids the need to start changing config fragments within oeqa right now. Signed-off-by: Richard Purdie --- diff --git a/meta/lib/oeqa/selftest/cases/bblock.py b/meta/lib/oeqa/selftest/cases/bblock.py index 2b62d2a0aa2..cb99d32bb5d 100644 --- a/meta/lib/oeqa/selftest/cases/bblock.py +++ b/meta/lib/oeqa/selftest/cases/bblock.py @@ -122,11 +122,11 @@ class BBLock(OESelftestTestCase): else: machine = "qemux86-64" - self.write_config('MACHINE = "%s"\n' % machine) + self.write_config('MACHINE:forcevariable = "%s"\n' % machine) self.lock_recipes(recipes, tasks) - self.write_config('MACHINE = "%s"\n' % self.td["MACHINE"]) + self.write_config('MACHINE:forcevariable = "%s"\n' % self.td["MACHINE"]) # modify quilt's do_compile task self.modify_tasks(recipes, tasks) diff --git a/meta/lib/oeqa/selftest/cases/fitimage.py b/meta/lib/oeqa/selftest/cases/fitimage.py index 3c408577476..195b9ee8b59 100644 --- a/meta/lib/oeqa/selftest/cases/fitimage.py +++ b/meta/lib/oeqa/selftest/cases/fitimage.py @@ -787,7 +787,7 @@ FIT_CONF_PREFIX = "foo-" config = """ DISTRO = "poky" -MACHINE = "beaglebone-yocto" +MACHINE:forcevariable = "beaglebone-yocto" """ self.write_config(config) @@ -828,7 +828,7 @@ MACHINE = "beaglebone-yocto" """ config = """ # Enable creation of fitImage -MACHINE = "beaglebone-yocto" +MACHINE:forcevariable = "beaglebone-yocto" # Add a devicetree overlay which does not need kernel sources PREFERRED_PROVIDER_virtual/dtb = "bbb-dtbs-as-ext" """ @@ -855,7 +855,7 @@ PREFERRED_PROVIDER_virtual/dtb = "bbb-dtbs-as-ext" # Generate a configuration section which gets included into the local.conf file config = """ # Enable creation of fitImage -MACHINE = "beaglebone-yocto" +MACHINE:forcevariable = "beaglebone-yocto" UBOOT_SIGN_ENABLE = "1" UBOOT_SIGN_KEYDIR = "${TOPDIR}/signing-keys" UBOOT_SIGN_KEYNAME = "dev" @@ -903,7 +903,7 @@ FIT_CONF_DEFAULT_DTB = "am335x-bonegreen.dtb" # Generate a configuration section which gets included into the local.conf file config = """ # Enable creation of fitImage -MACHINE = "beaglebone-yocto" +MACHINE:forcevariable = "beaglebone-yocto" UBOOT_SIGN_ENABLE = "1" FIT_GENERATE_KEYS = "1" UBOOT_SIGN_KEYDIR = "${TOPDIR}/signing-keys" @@ -939,7 +939,7 @@ UBOOT_MKIMAGE_SIGN_ARGS = "-c 'a smart comment'" config = """ DISTRO = "poky" -MACHINE = "beaglebone-yocto" +MACHINE:forcevariable = "beaglebone-yocto" INITRAMFS_IMAGE = "core-image-minimal-initramfs" INITRAMFS_SCRIPTS = "" UBOOT_MACHINE = "am335x_evm_defconfig" @@ -993,7 +993,7 @@ FIT_HASH_ALG = "sha256" config = """ DISTRO = "poky" -MACHINE = "beaglebone-yocto" +MACHINE:forcevariable = "beaglebone-yocto" INITRAMFS_IMAGE_BUNDLE = "1" INITRAMFS_IMAGE = "core-image-minimal-initramfs" INITRAMFS_SCRIPTS = "" @@ -1412,7 +1412,7 @@ class UBootFitImageTests(FitImageTestCase): """ config = """ # We need at least CONFIG_SPL_LOAD_FIT and CONFIG_SPL_OF_CONTROL set -MACHINE = "qemuarm" +MACHINE:forcevariable = "qemuarm" UBOOT_MACHINE = "am57xx_evm_defconfig" SPL_BINARY = "MLO" @@ -1451,7 +1451,7 @@ UBOOT_FIT_DESC = "A model description" config = """ # There's no U-boot defconfig with CONFIG_FIT_SIGNATURE yet, so we need at # least CONFIG_SPL_LOAD_FIT and CONFIG_SPL_OF_CONTROL set -MACHINE = "qemuarm" +MACHINE:forcevariable = "qemuarm" UBOOT_MACHINE = "am57xx_evm_defconfig" SPL_BINARY = "MLO" # Enable creation and signing of the U-Boot fitImage @@ -1498,7 +1498,7 @@ UBOOT_FIT_HASH_ALG = "sha256" config = """ # There's no U-boot deconfig with CONFIG_FIT_SIGNATURE yet, so we need at # least CONFIG_SPL_LOAD_FIT and CONFIG_SPL_OF_CONTROL set -MACHINE = "qemuarm" +MACHINE:forcevariable = "qemuarm" UBOOT_MACHINE = "am57xx_evm_defconfig" SPL_BINARY = "MLO" # Enable creation and signing of the U-Boot fitImage @@ -1546,7 +1546,7 @@ UBOOT_SIGN_KEYNAME = "cfg-oe-selftest" """ config = """ # We need at least CONFIG_SPL_LOAD_FIT and CONFIG_SPL_OF_CONTROL set -MACHINE = "qemuarm" +MACHINE:forcevariable = "qemuarm" UBOOT_MACHINE = "am57xx_evm_defconfig" SPL_BINARY = "MLO" @@ -1612,7 +1612,7 @@ UBOOT_FIT_ARM_TRUSTED_FIRMWARE_ENTRYPOINT = "0x80280000" config = """ # There's no U-boot deconfig with CONFIG_FIT_SIGNATURE yet, so we need at # least CONFIG_SPL_LOAD_FIT and CONFIG_SPL_OF_CONTROL set -MACHINE = "qemuarm" +MACHINE:forcevariable = "qemuarm" UBOOT_MACHINE = "am57xx_evm_defconfig" SPL_BINARY = "MLO" # Enable creation and signing of the U-Boot fitImage @@ -1676,7 +1676,7 @@ UBOOT_FIT_ARM_TRUSTED_FIRMWARE_ENTRYPOINT = "0x80280000" """ config = """ # Enable creation of fitImage -MACHINE = "beaglebone-yocto" +MACHINE:forcevariable = "beaglebone-yocto" UBOOT_SIGN_ENABLE = "1" UBOOT_SIGN_KEYDIR = "${TOPDIR}/signing-keys" UBOOT_SIGN_KEYNAME = "the-kernel-config-key" @@ -1715,7 +1715,7 @@ FIT_SIGN_INDIVIDUAL = "1" config = """ # There's no U-boot defconfig with CONFIG_FIT_SIGNATURE yet, so we need at # least CONFIG_SPL_LOAD_FIT and CONFIG_SPL_OF_CONTROL set -MACHINE = "qemuarm" +MACHINE:forcevariable = "qemuarm" UBOOT_MACHINE = "am57xx_evm_defconfig" # Enable creation and signing of the U-Boot fitImage (no SPL) UBOOT_FITIMAGE_ENABLE = "1" diff --git a/meta/lib/oeqa/selftest/cases/sstatetests.py b/meta/lib/oeqa/selftest/cases/sstatetests.py index 08f94b168a8..44dd674a325 100644 --- a/meta/lib/oeqa/selftest/cases/sstatetests.py +++ b/meta/lib/oeqa/selftest/cases/sstatetests.py @@ -336,20 +336,20 @@ class SStateCacheManagement(SStateBase): def test_sstate_cache_management_script_using_pr_3(self): global_config = [] target_config = [] - global_config.append('MACHINE = "qemux86-64"') + global_config.append('MACHINE:forcevariable = "qemux86-64"') target_config.append('PR = "0"') global_config.append(global_config[0]) target_config.append('PR = "1"') - global_config.append('MACHINE = "qemux86"') + global_config.append('MACHINE:forcevariable = "qemux86"') target_config.append('PR = "1"') self.run_test_sstate_cache_management_script('m4', global_config, target_config, ignore_patterns=['populate_lic']) def test_sstate_cache_management_script_using_machine(self): global_config = [] target_config = [] - global_config.append('MACHINE = "qemux86-64"') + global_config.append('MACHINE:forcevariable = "qemux86-64"') target_config.append('') - global_config.append('MACHINE = "qemux86"') + global_config.append('MACHINE:forcevariable = "qemux86"') target_config.append('') self.run_test_sstate_cache_management_script('m4', global_config, target_config, ignore_patterns=['populate_lic']) @@ -357,7 +357,7 @@ class SStateHashSameSigs(SStateBase): def sstate_hashtest(self, sdkmachine): self.write_config(""" -MACHINE = "qemux86" +MACHINE:forcevariable = "qemux86" TMPDIR = "${TOPDIR}/tmp-sstatesamehash" BUILD_ARCH = "x86_64" BUILD_OS = "linux" @@ -368,7 +368,7 @@ BB_SIGNATURE_HANDLER = "OEBasicHash" self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash") bitbake("core-image-weston -S none") self.write_config(""" -MACHINE = "qemux86" +MACHINE:forcevariable = "qemux86" TMPDIR = "${TOPDIR}/tmp-sstatesamehash2" BUILD_ARCH = "i686" BUILD_OS = "linux" @@ -454,13 +454,13 @@ class SStateHashSameSigs2(SStateBase): configA = """ TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\" -MACHINE = \"qemux86-64\" +MACHINE:forcevariable = \"qemux86-64\" BB_SIGNATURE_HANDLER = "OEBasicHash" """ #OLDEST_KERNEL is arch specific so set to a different value here for testing configB = """ TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\" -MACHINE = \"qemuarm\" +MACHINE:forcevariable = \"qemuarm\" OLDEST_KERNEL = \"3.3.0\" BB_SIGNATURE_HANDLER = "OEBasicHash" ERROR_QA:append = " somenewoption" @@ -475,7 +475,7 @@ WARN_QA:append = " someotheroption" configA = """ TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\" -MACHINE = \"qemux86-64\" +MACHINE:forcevariable = \"qemux86-64\" require conf/multilib.conf MULTILIBS = \"multilib:lib32\" DEFAULTTUNE:virtclass-multilib-lib32 = \"x86\" @@ -483,7 +483,7 @@ BB_SIGNATURE_HANDLER = "OEBasicHash" """ configB = """ TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\" -MACHINE = \"qemuarm\" +MACHINE:forcevariable = \"qemuarm\" require conf/multilib.conf MULTILIBS = \"\" BB_SIGNATURE_HANDLER = "OEBasicHash" @@ -500,7 +500,7 @@ class SStateHashSameSigs3(SStateBase): self.write_config(""" TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\" -MACHINE = \"qemux86\" +MACHINE:forcevariable = \"qemux86\" require conf/multilib.conf MULTILIBS = "multilib:lib32" DEFAULTTUNE:virtclass-multilib-lib32 = "x86" @@ -510,7 +510,7 @@ BB_SIGNATURE_HANDLER = "OEBasicHash" bitbake("world meta-toolchain -S none") self.write_config(""" TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\" -MACHINE = \"qemux86copy\" +MACHINE:forcevariable = \"qemux86copy\" require conf/multilib.conf MULTILIBS = "multilib:lib32" DEFAULTTUNE:virtclass-multilib-lib32 = "x86" @@ -546,7 +546,7 @@ BB_SIGNATURE_HANDLER = "OEBasicHash" self.write_config(""" TMPDIR = \"${TOPDIR}/tmp-sstatesamehash\" -MACHINE = \"qemux86\" +MACHINE:forcevariable = \"qemux86\" require conf/multilib.conf MULTILIBS = "multilib:lib32" DEFAULTTUNE:virtclass-multilib-lib32 = "x86" @@ -556,7 +556,7 @@ BB_SIGNATURE_HANDLER = "OEBasicHash" bitbake("binutils-native -S none") self.write_config(""" TMPDIR = \"${TOPDIR}/tmp-sstatesamehash2\" -MACHINE = \"qemux86copy\" +MACHINE:forcevariable = \"qemux86copy\" BB_SIGNATURE_HANDLER = "OEBasicHash" """) self.track_for_cleanup(self.topdir + "/tmp-sstatesamehash2") @@ -707,7 +707,7 @@ class SStateFindSiginfo(SStateBase): """ self.write_config(""" TMPDIR = \"${TOPDIR}/tmp-sstates-findsiginfo\" -MACHINE = \"qemux86-64\" +MACHINE:forcevariable = \"qemux86-64\" require conf/multilib.conf MULTILIBS = "multilib:lib32" DEFAULTTUNE:virtclass-multilib-lib32 = "x86" @@ -957,13 +957,13 @@ class SStateMirrors(SStateCheckObjectPresence): if check_cdn: self.config_sstate(True) self.append_config(""" -MACHINE = "{}" +MACHINE:forcevariable = "{}" BB_HASHSERVE_UPSTREAM = "hashserv.yoctoproject.org:8686" SSTATE_MIRRORS ?= "file://.* http://sstate.yoctoproject.org/all/PATH;downloadfilename=PATH" """.format(machine)) else: self.append_config(""" -MACHINE = "{}" +MACHINE:forcevariable = "{}" """.format(machine)) result = bitbake("-DD -n {}".format(targets)) bitbake("-S none {}".format(targets))