summaryrefslogtreecommitdiff
path: root/poky/meta/lib/oeqa
diff options
context:
space:
mode:
Diffstat (limited to 'poky/meta/lib/oeqa')
-rw-r--r--poky/meta/lib/oeqa/runtime/cases/suspend.py33
-rw-r--r--poky/meta/lib/oeqa/runtime/cases/terminal.py7
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/buildoptions.py8
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/devtool.py2
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/fitimage.py233
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/imagefeatures.py74
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/oelib/elf.py2
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/package.py3
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/pkgdata.py6
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/pseudo.py27
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/reproducible.py90
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/wic.py20
-rw-r--r--poky/meta/lib/oeqa/selftest/context.py17
-rw-r--r--poky/meta/lib/oeqa/utils/commands.py3
14 files changed, 91 insertions, 434 deletions
diff --git a/poky/meta/lib/oeqa/runtime/cases/suspend.py b/poky/meta/lib/oeqa/runtime/cases/suspend.py
deleted file mode 100644
index 67b6f7e56..000000000
--- a/poky/meta/lib/oeqa/runtime/cases/suspend.py
+++ /dev/null
@@ -1,33 +0,0 @@
-from oeqa.runtime.case import OERuntimeTestCase
-from oeqa.core.decorator.depends import OETestDepends
-from oeqa.core.decorator.data import skipIfQemu
-import threading
-import time
-
-class Suspend_Test(OERuntimeTestCase):
-
- def test_date(self):
- (status, output) = self.target.run('date')
- self.assertEqual(status, 0, msg = 'Failed to run date command, output : %s' % output)
-
- def test_ping(self):
- t_thread = threading.Thread(target=self.target.run, args=("ping 8.8.8.8",))
- t_thread.start()
- time.sleep(2)
-
- status, output = self.target.run('pidof ping')
- self.target.run('kill -9 %s' % output)
- self.assertEqual(status, 0, msg = 'Not able to find process that runs ping, output : %s' % output)
-
- def set_suspend(self):
- (status, output) = self.target.run('sudo rtcwake -m mem -s 10')
- self.assertEqual(status, 0, msg = 'Failed to suspends your system to RAM, output : %s' % output)
-
- @skipIfQemu('qemuall', 'Test only runs on real hardware')
- @OETestDepends(['ssh.SSHTest.test_ssh'])
- def test_suspend(self):
- self.test_date()
- self.test_ping()
- self.set_suspend()
- self.test_date()
- self.test_ping()
diff --git a/poky/meta/lib/oeqa/runtime/cases/terminal.py b/poky/meta/lib/oeqa/runtime/cases/terminal.py
index 8fcca99f4..a268f2688 100644
--- a/poky/meta/lib/oeqa/runtime/cases/terminal.py
+++ b/poky/meta/lib/oeqa/runtime/cases/terminal.py
@@ -10,12 +10,9 @@ class TerminalTest(OERuntimeTestCase):
@OEHasPackage(['matchbox-terminal'])
@OETestDepends(['ssh.SSHTest.test_ssh'])
def test_terminal_running(self):
- t_thread = threading.Thread(target=self.target.run, args=("export DISPLAY=:0 && matchbox-terminal -e 'sh -c \"uname -a && exec sh\"'",))
+ t_thread = threading.Thread(target=self.target.run, args=('export DISPLAY=:0 && matchbox-terminal',))
t_thread.start()
time.sleep(2)
-
status, output = self.target.run('pidof matchbox-terminal')
- number_of_terminal = len(output.split())
- self.assertEqual(number_of_terminal, 1, msg='There should be only one terminal being launched. Number of terminal launched : %s' % number_of_terminal)
self.target.run('kill -9 %s' % output)
- self.assertEqual(status, 0, msg='Not able to find process that runs terminal.')
+ self.assertEqual(status, 0, msg='Not able to find process that runs terminal.')
diff --git a/poky/meta/lib/oeqa/selftest/cases/buildoptions.py b/poky/meta/lib/oeqa/selftest/cases/buildoptions.py
index d0f647730..e91f0bd18 100644
--- a/poky/meta/lib/oeqa/selftest/cases/buildoptions.py
+++ b/poky/meta/lib/oeqa/selftest/cases/buildoptions.py
@@ -33,10 +33,10 @@ class ImageOptionsTests(OESelftestTestCase):
self.assertTrue(incremental_removed, msg = "Match failed in:\n%s" % log_data_removed)
def test_ccache_tool(self):
- bb_vars = get_bb_vars(['HOSTTOOLS_DIR'], 'm4-native')
- p = bb_vars['HOSTTOOLS_DIR'] + "/" + "ccache"
- if not os.path.isfile(p):
- self.skipTest("No ccache binary found in %s" % bb_vars['HOSTTOOLS_DIR'])
+ bitbake("ccache-native")
+ 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.write_config('INHERIT += "ccache"')
self.add_command_to_tearDown('bitbake -c clean m4-native')
bitbake("m4-native -c clean")
diff --git a/poky/meta/lib/oeqa/selftest/cases/devtool.py b/poky/meta/lib/oeqa/selftest/cases/devtool.py
index 4eba23890..b8edc8976 100644
--- a/poky/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/poky/meta/lib/oeqa/selftest/cases/devtool.py
@@ -57,7 +57,7 @@ def setUpModule():
if relpth.endswith('/'):
destdir = os.path.join(corecopydir, relpth)
# avoid race condition by not copying .pyc files YPBZ#13421,13803
- shutil.copytree(pth, destdir, ignore=shutil.ignore_patterns('*.pyc', '__pycache__'))
+ shutil.copytree(pth, destdir, ignore=ignore_patterns('*.pyc', '__pycache__'))
else:
destdir = os.path.join(corecopydir, os.path.dirname(relpth))
bb.utils.mkdirhier(destdir)
diff --git a/poky/meta/lib/oeqa/selftest/cases/fitimage.py b/poky/meta/lib/oeqa/selftest/cases/fitimage.py
deleted file mode 100644
index 19b9f53ee..000000000
--- a/poky/meta/lib/oeqa/selftest/cases/fitimage.py
+++ /dev/null
@@ -1,233 +0,0 @@
-#
-# SPDX-License-Identifier: MIT
-#
-
-from oeqa.selftest.case import OESelftestTestCase
-from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu
-import os
-import json
-import re
-
-class FitImageTests(OESelftestTestCase):
-
- def test_fit_image(self):
- """
- Summary: Check if FIT image and Image Tree Source (its) are built
- and the Image Tree Source has the correct fields.
- Expected: 1. fitImage and fitImage-its can be built
- 2. The type, load address, entrypoint address and
- default values of kernel and ramdisk are as expected
- in the Image Tree Source. Not all the fields are tested,
- only the key fields that wont vary between different
- architectures.
- Product: oe-core
- Author: Usama Arif <usama.arif@arm.com>
- """
- config = """
-# Enable creation of fitImage
-KERNEL_IMAGETYPE = "Image"
-KERNEL_IMAGETYPES += " fitImage "
-KERNEL_CLASSES = " kernel-fitimage "
-
-# RAM disk variables including load address and entrypoint for kernel and RAM disk
-IMAGE_FSTYPES += "cpio.gz"
-INITRAMFS_IMAGE = "core-image-minimal"
-UBOOT_RD_LOADADDRESS = "0x88000000"
-UBOOT_RD_ENTRYPOINT = "0x88000000"
-UBOOT_LOADADDRESS = "0x80080000"
-UBOOT_ENTRYPOINT = "0x80080000"
-FIT_DESC = "A model description"
-"""
- self.write_config(config)
-
- # fitImage is created as part of linux recipe
- bitbake("virtual/kernel")
-
- image_type = "core-image-minimal"
- deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
- machine = get_bb_var('MACHINE')
- fitimage_its_path = os.path.join(deploy_dir_image,
- "fitImage-its-%s-%s-%s" % (image_type, machine, machine))
- fitimage_path = os.path.join(deploy_dir_image,
- "fitImage-%s-%s-%s" % (image_type, machine, machine))
-
- self.assertTrue(os.path.exists(fitimage_its_path),
- "%s image tree source doesn't exist" % (fitimage_its_path))
- self.assertTrue(os.path.exists(fitimage_path),
- "%s FIT image doesn't exist" % (fitimage_path))
-
- # Check that the type, load address, entrypoint address and default
- # values for kernel and ramdisk in Image Tree Source are as expected.
- # The order of fields in the below array is important. Not all the
- # fields are tested, only the key fields that wont vary between
- # different architectures.
- its_field_check = [
- 'description = "A model description";',
- 'type = "kernel";',
- 'load = <0x80080000>;',
- 'entry = <0x80080000>;',
- 'type = "ramdisk";',
- 'load = <0x88000000>;',
- 'entry = <0x88000000>;',
- 'default = "conf@1";',
- 'kernel = "kernel@1";',
- 'ramdisk = "ramdisk@1";'
- ]
-
- with open(fitimage_its_path) as its_file:
- field_index = 0
- for line in its_file:
- if field_index == len(its_field_check):
- break
- if its_field_check[field_index] in line:
- field_index +=1
-
- if field_index != len(its_field_check): # if its equal, the test passed
- self.assertTrue(field_index == len(its_field_check),
- "Fields in Image Tree Source File %s did not match, error in finding %s"
- % (fitimage_its_path, its_field_check[field_index]))
-
-
- def test_sign_fit_image(self):
- """
- Summary: Check if FIT image and Image Tree Source (its) are created
- and signed correctly.
- Expected: 1) its and FIT image are built successfully
- 2) Scanning the its file indicates signing is enabled
- as requested by UBOOT_SIGN_ENABLE (using keys generated
- via FIT_GENERATE_KEYS)
- 3) Dumping the FIT image indicates signature values
- are present (including for images as enabled via
- FIT_SIGN_INDIVIDUAL)
- 4) Examination of the do_assemble_fitimage runfile/logfile
- indicate that UBOOT_MKIMAGE, UBOOT_MKIMAGE_SIGN and
- UBOOT_MKIMAGE_SIGN_ARGS are working as expected.
- Product: oe-core
- Author: Paul Eggleton <paul.eggleton@microsoft.com> based upon
- work by Usama Arif <usama.arif@arm.com>
- """
- config = """
-# Enable creation of fitImage
-MACHINE = "beaglebone-yocto"
-KERNEL_IMAGETYPES += " fitImage "
-KERNEL_CLASSES = " kernel-fitimage test-mkimage-wrapper "
-UBOOT_SIGN_ENABLE = "1"
-FIT_GENERATE_KEYS = "1"
-UBOOT_SIGN_KEYDIR = "${TOPDIR}/signing-keys"
-UBOOT_SIGN_KEYNAME = "oe-selftest"
-FIT_SIGN_INDIVIDUAL = "1"
-UBOOT_MKIMAGE_SIGN_ARGS = "-c 'a smart comment'"
-"""
- self.write_config(config)
-
- # fitImage is created as part of linux recipe
- bitbake("virtual/kernel")
-
- image_type = "core-image-minimal"
- deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
- machine = get_bb_var('MACHINE')
- fitimage_its_path = os.path.join(deploy_dir_image,
- "fitImage-its-%s" % (machine,))
- fitimage_path = os.path.join(deploy_dir_image,
- "fitImage-%s.bin" % (machine,))
-
- self.assertTrue(os.path.exists(fitimage_its_path),
- "%s image tree source doesn't exist" % (fitimage_its_path))
- self.assertTrue(os.path.exists(fitimage_path),
- "%s FIT image doesn't exist" % (fitimage_path))
-
- req_itspaths = [
- ['/', 'images', 'kernel@1'],
- ['/', 'images', 'kernel@1', 'signature@1'],
- ['/', 'images', 'fdt@am335x-boneblack.dtb'],
- ['/', 'images', 'fdt@am335x-boneblack.dtb', 'signature@1'],
- ['/', 'configurations', 'conf@am335x-boneblack.dtb'],
- ['/', 'configurations', 'conf@am335x-boneblack.dtb', 'signature@1'],
- ]
-
- itspath = []
- itspaths = []
- linect = 0
- sigs = {}
- with open(fitimage_its_path) as its_file:
- linect += 1
- for line in its_file:
- line = line.strip()
- if line.endswith('};'):
- itspath.pop()
- elif line.endswith('{'):
- itspath.append(line[:-1].strip())
- itspaths.append(itspath[:])
- elif itspath and itspath[-1] == 'signature@1':
- itsdotpath = '.'.join(itspath)
- if not itsdotpath in sigs:
- sigs[itsdotpath] = {}
- if not '=' in line or not line.endswith(';'):
- self.fail('Unexpected formatting in %s sigs section line %d:%s' % (fitimage_its_path, linect, line))
- key, value = line.split('=', 1)
- sigs[itsdotpath][key.rstrip()] = value.lstrip().rstrip(';')
-
- for reqpath in req_itspaths:
- if not reqpath in itspaths:
- self.fail('Missing section in its file: %s' % reqpath)
-
- reqsigvalues_image = {
- 'algo': '"sha256,rsa2048"',
- 'key-name-hint': '"oe-selftest"',
- }
- reqsigvalues_config = {
- 'algo': '"sha256,rsa2048"',
- 'key-name-hint': '"oe-selftest"',
- 'sign-images': '"kernel", "fdt"',
- }
-
- for itspath, values in sigs.items():
- if 'conf@' in itspath:
- reqsigvalues = reqsigvalues_config
- else:
- reqsigvalues = reqsigvalues_image
- for reqkey, reqvalue in reqsigvalues.items():
- value = values.get(reqkey, None)
- if value is None:
- self.fail('Missing key "%s" in its file signature section %s' % (reqkey, itspath))
- self.assertEqual(value, reqvalue)
-
- # Dump the image to see if it really got signed
- bitbake("u-boot-tools-native -c addto_recipe_sysroot")
- result = runCmd('bitbake -e u-boot-tools-native | grep ^RECIPE_SYSROOT_NATIVE=')
- recipe_sysroot_native = result.output.split('=')[1].strip('"')
- dumpimage_path = os.path.join(recipe_sysroot_native, 'usr', 'bin', 'dumpimage')
- result = runCmd('%s -l %s' % (dumpimage_path, fitimage_path))
- in_signed = None
- signed_sections = {}
- for line in result.output.splitlines():
- if line.startswith((' Configuration', ' Image')):
- in_signed = re.search('\((.*)\)', line).groups()[0]
- elif re.match('^ *', line) in (' ', ''):
- in_signed = None
- elif in_signed:
- if not in_signed in signed_sections:
- signed_sections[in_signed] = {}
- key, value = line.split(':', 1)
- signed_sections[in_signed][key.strip()] = value.strip()
- self.assertIn('kernel@1', signed_sections)
- self.assertIn('fdt@am335x-boneblack.dtb', signed_sections)
- self.assertIn('conf@am335x-boneblack.dtb', signed_sections)
- for signed_section, values in signed_sections.items():
- value = values.get('Sign algo', None)
- self.assertEqual(value, 'sha256,rsa2048:oe-selftest', 'Signature algorithm for %s not expected value' % signed_section)
- value = values.get('Sign value', None)
- self.assertEqual(len(value), 512, 'Signature value for section %s not expected length' % signed_section)
-
- # Check for UBOOT_MKIMAGE_SIGN_ARGS
- result = runCmd('bitbake -e virtual/kernel | grep ^T=')
- tempdir = result.output.split('=', 1)[1].strip().strip('')
- result = runCmd('grep "a smart comment" %s/run.do_assemble_fitimage' % tempdir, ignore_status=True)
- self.assertEqual(result.status, 0, 'UBOOT_MKIMAGE_SIGN_ARGS value did not get used')
-
- # Check for evidence of test-mkimage-wrapper class
- result = runCmd('grep "### uboot-mkimage wrapper message" %s/log.do_assemble_fitimage' % tempdir, ignore_status=True)
- self.assertEqual(result.status, 0, 'UBOOT_MKIMAGE did not work')
- result = runCmd('grep "### uboot-mkimage signing wrapper message" %s/log.do_assemble_fitimage' % tempdir, ignore_status=True)
- self.assertEqual(result.status, 0, 'UBOOT_MKIMAGE_SIGN did not work')
-
diff --git a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
index 6723a8198..415e0315f 100644
--- a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
+++ b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
@@ -264,6 +264,80 @@ PNBLACKLIST[busybox] = "Don't build this"
bitbake("--graphviz core-image-sato")
+ def test_fit_image(self):
+ """
+ Summary: Check if FIT image and Image Tree Source (its) are built
+ and the Image Tree Source has the correct fields.
+ Expected: 1. fitImage and fitImage-its can be built
+ 2. The type, load address, entrypoint address and
+ default values of kernel and ramdisk are as expected
+ in the Image Tree Source. Not all the fields are tested,
+ only the key fields that wont vary between different
+ architectures.
+ Product: oe-core
+ Author: Usama Arif <usama.arif@arm.com>
+ """
+ config = """
+# Enable creation of fitImage
+KERNEL_IMAGETYPE = "Image"
+KERNEL_IMAGETYPES += " fitImage "
+KERNEL_CLASSES = " kernel-fitimage "
+
+# RAM disk variables including load address and entrypoint for kernel and RAM disk
+IMAGE_FSTYPES += "cpio.gz"
+INITRAMFS_IMAGE = "core-image-minimal"
+UBOOT_RD_LOADADDRESS = "0x88000000"
+UBOOT_RD_ENTRYPOINT = "0x88000000"
+UBOOT_LOADADDRESS = "0x80080000"
+UBOOT_ENTRYPOINT = "0x80080000"
+"""
+ self.write_config(config)
+
+ # fitImage is created as part of linux recipe
+ bitbake("virtual/kernel")
+
+ image_type = "core-image-minimal"
+ deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
+ machine = get_bb_var('MACHINE')
+ fitimage_its_path = os.path.join(deploy_dir_image,
+ "fitImage-its-%s-%s-%s" % (image_type, machine, machine))
+ fitimage_path = os.path.join(deploy_dir_image,
+ "fitImage-%s-%s-%s" % (image_type, machine, machine))
+
+ self.assertTrue(os.path.exists(fitimage_its_path),
+ "%s image tree source doesn't exist" % (fitimage_its_path))
+ self.assertTrue(os.path.exists(fitimage_path),
+ "%s FIT image doesn't exist" % (fitimage_path))
+
+ # Check that the type, load address, entrypoint address and default
+ # values for kernel and ramdisk in Image Tree Source are as expected.
+ # The order of fields in the below array is important. Not all the
+ # fields are tested, only the key fields that wont vary between
+ # different architectures.
+ its_field_check = ['type = "kernel";',
+ 'load = <0x80080000>;',
+ 'entry = <0x80080000>;',
+ 'type = "ramdisk";',
+ 'load = <0x88000000>;',
+ 'entry = <0x88000000>;',
+ 'default = "conf@1";',
+ 'kernel = "kernel@1";',
+ 'ramdisk = "ramdisk@1";'
+ ]
+
+ with open(fitimage_its_path) as its_file:
+ field_index = 0
+ for line in its_file:
+ if field_index == len(its_field_check):
+ break
+ if its_field_check[field_index] in line:
+ field_index +=1
+
+ if field_index != len(its_field_check): # if its equal, the test passed
+ self.assertTrue(field_index == len(its_field_check),
+ "Fields in Image Tree Source File %s did not match, error in finding %s"
+ % (fitimage_its_path, its_field_check[field_index]))
+
def test_image_gen_debugfs(self):
"""
Summary: Check debugfs generation
diff --git a/poky/meta/lib/oeqa/selftest/cases/oelib/elf.py b/poky/meta/lib/oeqa/selftest/cases/oelib/elf.py
index 5a5f9b4fd..d0a28090f 100644
--- a/poky/meta/lib/oeqa/selftest/cases/oelib/elf.py
+++ b/poky/meta/lib/oeqa/selftest/cases/oelib/elf.py
@@ -21,6 +21,6 @@ class TestElf(TestCase):
self.assertEqual(oe.qa.elf_machine_to_string(0xB7), "AArch64")
self.assertEqual(oe.qa.elf_machine_to_string(0xF7), "BPF")
- self.assertEqual(oe.qa.elf_machine_to_string(0x00), "Unset")
+ self.assertEqual(oe.qa.elf_machine_to_string(0x00), "Unknown (0)")
self.assertEqual(oe.qa.elf_machine_to_string(0xDEADBEEF), "Unknown (3735928559)")
self.assertEqual(oe.qa.elf_machine_to_string("foobar"), "Unknown ('foobar')")
diff --git a/poky/meta/lib/oeqa/selftest/cases/package.py b/poky/meta/lib/oeqa/selftest/cases/package.py
index 7166c3991..3010b1af4 100644
--- a/poky/meta/lib/oeqa/selftest/cases/package.py
+++ b/poky/meta/lib/oeqa/selftest/cases/package.py
@@ -168,7 +168,6 @@ class PackageTests(OESelftestTestCase):
with runqemu('core-image-minimal') as qemu:
for path in [ sysconfdir + "/selftest-chown/file",
sysconfdir + "/selftest-chown/dir",
- sysconfdir + "/selftest-chown/symlink",
- sysconfdir + "/selftest-chown/fifotest/fifo"]:
+ sysconfdir + "/selftest-chown/symlink"]:
if not check_ownership(qemu, "test", "test", path):
self.fail('Test ownership %s failed' % path)
diff --git a/poky/meta/lib/oeqa/selftest/cases/pkgdata.py b/poky/meta/lib/oeqa/selftest/cases/pkgdata.py
index 254abc40c..833a1803b 100644
--- a/poky/meta/lib/oeqa/selftest/cases/pkgdata.py
+++ b/poky/meta/lib/oeqa/selftest/cases/pkgdata.py
@@ -218,9 +218,3 @@ class OePkgdataUtilTests(OESelftestTestCase):
def test_specify_pkgdatadir(self):
result = runCmd('oe-pkgdata-util -p %s lookup-pkg zlib' % get_bb_var('PKGDATA_DIR'))
self.assertEqual(result.output, 'libz1')
-
- def test_no_param(self):
- result = runCmd('oe-pkgdata-util', ignore_status=True)
- self.assertEqual(result.status, 2, "Status different than 2. output: %s" % result.output)
- currpos = result.output.find('usage: oe-pkgdata-util')
- self.assertTrue(currpos != -1, msg = "Test is Failed. Help is not Displayed in %s" % result.output)
diff --git a/poky/meta/lib/oeqa/selftest/cases/pseudo.py b/poky/meta/lib/oeqa/selftest/cases/pseudo.py
deleted file mode 100644
index 33593d5ce..000000000
--- a/poky/meta/lib/oeqa/selftest/cases/pseudo.py
+++ /dev/null
@@ -1,27 +0,0 @@
-#
-# SPDX-License-Identifier: MIT
-#
-
-import glob
-import os
-import shutil
-from oeqa.utils.commands import bitbake, get_test_layer
-from oeqa.selftest.case import OESelftestTestCase
-
-class Pseudo(OESelftestTestCase):
-
- def test_pseudo_pyc_creation(self):
- self.write_config("")
-
- metaselftestpath = get_test_layer()
- pycache_path = os.path.join(metaselftestpath, 'lib/__pycache__')
- if os.path.exists(pycache_path):
- shutil.rmtree(pycache_path)
-
- bitbake('pseudo-pyc-test -c install')
-
- test1_pyc_present = len(glob.glob(os.path.join(pycache_path, 'pseudo_pyc_test1.*.pyc')))
- self.assertTrue(test1_pyc_present, 'test1 pyc file missing, should be created outside of pseudo context.')
-
- test2_pyc_present = len(glob.glob(os.path.join(pycache_path, 'pseudo_pyc_test2.*.pyc')))
- self.assertFalse(test2_pyc_present, 'test2 pyc file present, should not be created in pseudo context.')
diff --git a/poky/meta/lib/oeqa/selftest/cases/reproducible.py b/poky/meta/lib/oeqa/selftest/cases/reproducible.py
index eee494e5c..a7ef33614 100644
--- a/poky/meta/lib/oeqa/selftest/cases/reproducible.py
+++ b/poky/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -17,72 +17,6 @@ import stat
import os
import datetime
-# For sample packages, see:
-# https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20201127-0t7wr_oo/
-# https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20201127-4s9ejwyp/
-# https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20201127-haiwdlbr/
-# https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20201127-hwds3mcl/
-# https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20201203-sua0pzvc/
-# (both packages/ and packages-excluded/)
-exclude_packages = [
- 'acpica-src',
- 'babeltrace2-ptest',
- 'bootchart2-doc',
- 'cups',
- 'cwautomacros',
- 'dtc',
- 'efivar',
- 'epiphany',
- 'gcr',
- 'git',
- 'glide',
- 'go-dep',
- 'go-helloworld',
- 'go-runtime',
- 'go_',
- 'groff',
- 'gst-devtools',
- 'gstreamer1.0-python',
- 'gtk-doc',
- 'igt-gpu-tools',
- 'kernel-devsrc',
- 'libaprutil',
- 'libcap-ng',
- 'libhandy-1-src',
- 'libid3tag',
- 'libproxy',
- 'libsecret-dev',
- 'libsecret-src',
- 'lttng-tools-dbg',
- 'lttng-tools-ptest',
- 'ltp',
- 'meson',
- 'ovmf-shell-efi',
- 'parted-ptest',
- 'perf',
- 'python3-cython',
- 'qemu',
- 'quilt-ptest',
- 'rsync',
- 'ruby',
- 'spirv-tools-dev',
- 'swig',
- 'syslinux-misc',
- 'systemd-bootchart',
- 'valgrind-ptest',
- 'vim',
- 'watchdog',
- 'xmlto',
- 'xorg-minimal-fonts'
- ]
-
-def is_excluded(package):
- package_name = os.path.basename(package)
- for i in exclude_packages:
- if package_name.startswith(i):
- return True
- return False
-
MISSING = 'MISSING'
DIFFERENT = 'DIFFERENT'
SAME = 'SAME'
@@ -105,7 +39,6 @@ class PackageCompareResults(object):
self.total = []
self.missing = []
self.different = []
- self.different_excluded = []
self.same = []
def add_result(self, r):
@@ -113,10 +46,7 @@ class PackageCompareResults(object):
if r.status == MISSING:
self.missing.append(r)
elif r.status == DIFFERENT:
- if is_excluded(r.reference):
- self.different_excluded.append(r)
- else:
- self.different.append(r)
+ self.different.append(r)
else:
self.same.append(r)
@@ -124,11 +54,10 @@ class PackageCompareResults(object):
self.total.sort()
self.missing.sort()
self.different.sort()
- self.different_excluded.sort()
self.same.sort()
def __str__(self):
- return 'same=%i different=%i different_excluded=%i missing=%i total=%i' % (len(self.same), len(self.different), len(self.different_excluded), len(self.missing), len(self.total))
+ return 'same=%i different=%i missing=%i total=%i' % (len(self.same), len(self.different), len(self.missing), len(self.total))
def compare_file(reference, test, diffutils_sysroot):
result = CompareResult()
@@ -176,7 +105,7 @@ class DiffoscopeTests(OESelftestTestCase):
class ReproducibleTests(OESelftestTestCase):
package_classes = ['deb', 'ipk']
- images = ['core-image-minimal', 'core-image-sato', 'core-image-full-cmdline', 'world']
+ images = ['core-image-minimal', 'core-image-sato', 'core-image-full-cmdline']
save_results = False
if 'OEQA_DEBUGGING_SAVED_OUTPUT' in os.environ:
save_results = os.environ['OEQA_DEBUGGING_SAVED_OUTPUT']
@@ -247,12 +176,6 @@ class ReproducibleTests(OESelftestTestCase):
PACKAGE_CLASSES = "{package_classes}"
INHIBIT_PACKAGE_STRIP = "1"
TMPDIR = "{tmpdir}"
- LICENSE_FLAGS_WHITELIST = "commercial"
- DISTRO_FEATURES_append = ' systemd pam'
- USERADDEXTENSION = "useradd-staticids"
- USERADD_ERROR_DYNAMIC = "skip"
- USERADD_UID_TABLES += "files/static-passwd"
- USERADD_GID_TABLES += "files/static-group"
''').format(package_classes=' '.join('package_%s' % c for c in self.package_classes),
tmpdir=tmpdir)
@@ -312,7 +235,6 @@ class ReproducibleTests(OESelftestTestCase):
self.write_package_list(package_class, 'missing', result.missing)
self.write_package_list(package_class, 'different', result.different)
- self.write_package_list(package_class, 'different_excluded', result.different_excluded)
self.write_package_list(package_class, 'same', result.same)
if self.save_results:
@@ -320,12 +242,8 @@ class ReproducibleTests(OESelftestTestCase):
self.copy_file(d.reference, '/'.join([save_dir, 'packages', strip_topdir(d.reference)]))
self.copy_file(d.test, '/'.join([save_dir, 'packages', strip_topdir(d.test)]))
- for d in result.different_excluded:
- self.copy_file(d.reference, '/'.join([save_dir, 'packages-excluded', strip_topdir(d.reference)]))
- self.copy_file(d.test, '/'.join([save_dir, 'packages-excluded', strip_topdir(d.test)]))
-
if result.missing or result.different:
- fails.append("The following %s packages are missing or different and not in exclusion list: %s" %
+ fails.append("The following %s packages are missing or different: %s" %
(c, '\n'.join(r.test for r in (result.missing + result.different))))
# Clean up empty directories
diff --git a/poky/meta/lib/oeqa/selftest/cases/wic.py b/poky/meta/lib/oeqa/selftest/cases/wic.py
index 091f0ab47..714637ec1 100644
--- a/poky/meta/lib/oeqa/selftest/cases/wic.py
+++ b/poky/meta/lib/oeqa/selftest/cases/wic.py
@@ -990,26 +990,6 @@ class Wic2(WicTestCase):
out = glob(self.resultdir + "%s-*direct" % wksname)
self.assertEqual(1, len(out))
- def test_empty_plugin(self):
- """Test empty plugin"""
- config = 'IMAGE_FSTYPES = "wic"\nWKS_FILE = "test_empty_plugin.wks"\n'
- self.append_config(config)
- self.assertEqual(0, bitbake('core-image-minimal').status)
- self.remove_config(config)
-
- bb_vars = get_bb_vars(['DEPLOY_DIR_IMAGE', 'MACHINE'])
- deploy_dir = bb_vars['DEPLOY_DIR_IMAGE']
- machine = bb_vars['MACHINE']
- image_path = os.path.join(deploy_dir, 'core-image-minimal-%s.wic' % machine)
- self.assertEqual(True, os.path.exists(image_path))
-
- sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'wic-tools')
-
- # Fstype column from 'wic ls' should be empty for the second partition
- # as listed in test_empty_plugin.wks
- result = runCmd("wic ls %s -n %s | awk -F ' ' '{print $1 \" \" $5}' | grep '^2' | wc -w" % (image_path, sysroot))
- self.assertEqual('1', result.output)
-
@only_for_arch(['i586', 'i686', 'x86_64'])
def test_biosplusefi_plugin_qemu(self):
"""Test biosplusefi plugin in qemu"""
diff --git a/poky/meta/lib/oeqa/selftest/context.py b/poky/meta/lib/oeqa/selftest/context.py
index 165992697..dd3609c1d 100644
--- a/poky/meta/lib/oeqa/selftest/context.py
+++ b/poky/meta/lib/oeqa/selftest/context.py
@@ -34,7 +34,7 @@ class NonConcurrentTestSuite(unittest.TestSuite):
(builddir, newbuilddir) = self.setupfunc("-st", None, self.suite)
ret = super().run(result)
os.chdir(builddir)
- if newbuilddir and ret.wasSuccessful() and self.removefunc:
+ if newbuilddir and ret.wasSuccessful():
self.removefunc(newbuilddir)
def removebuilddir(d):
@@ -54,7 +54,7 @@ def removebuilddir(d):
bb.utils.prunedir(d, ionice=True)
class OESelftestTestContext(OETestContext):
- def __init__(self, td=None, logger=None, machines=None, config_paths=None, newbuilddir=None, keep_builddir=None):
+ def __init__(self, td=None, logger=None, machines=None, config_paths=None, newbuilddir=None):
super(OESelftestTestContext, self).__init__(td, logger)
self.machines = machines
@@ -62,11 +62,6 @@ class OESelftestTestContext(OETestContext):
self.config_paths = config_paths
self.newbuilddir = newbuilddir
- if keep_builddir:
- self.removebuilddir = None
- else:
- self.removebuilddir = removebuilddir
-
def setup_builddir(self, suffix, selftestdir, suite):
builddir = os.environ['BUILDDIR']
if not selftestdir:
@@ -124,9 +119,9 @@ class OESelftestTestContext(OETestContext):
if processes:
from oeqa.core.utils.concurrencytest import ConcurrentTestSuite
- return ConcurrentTestSuite(suites, processes, self.setup_builddir, self.removebuilddir)
+ return ConcurrentTestSuite(suites, processes, self.setup_builddir, removebuilddir)
else:
- return NonConcurrentTestSuite(suites, processes, self.setup_builddir, self.removebuilddir)
+ return NonConcurrentTestSuite(suites, processes, self.setup_builddir, removebuilddir)
def runTests(self, processes=None, machine=None, skips=[]):
if machine:
@@ -184,9 +179,6 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
action='append', default=None,
help='Exclude all (unhidden) tests that match any of the specified tag(s). (exclude applies before select)')
- parser.add_argument('-K', '--keep-builddir', action='store_true',
- help='Keep the test build directory even if all tests pass')
-
parser.add_argument('-B', '--newbuilddir', help='New build directory to use for tests.')
parser.add_argument('-v', '--verbose', action='store_true')
parser.set_defaults(func=self.run)
@@ -244,7 +236,6 @@ class OESelftestTestContextExecutor(OETestContextExecutor):
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")
self.tc_kwargs['init']['newbuilddir'] = args.newbuilddir
- self.tc_kwargs['init']['keep_builddir'] = args.keep_builddir
def tag_filter(tags):
if args.exclude_tags:
diff --git a/poky/meta/lib/oeqa/utils/commands.py b/poky/meta/lib/oeqa/utils/commands.py
index a71c16ab1..6c1535ddf 100644
--- a/poky/meta/lib/oeqa/utils/commands.py
+++ b/poky/meta/lib/oeqa/utils/commands.py
@@ -188,10 +188,7 @@ def runCmd(command, ignore_status=False, timeout=None, assert_error=True, sync=T
# call sync around the tests to ensure the IO queue doesn't get too large, taking any IO
# hit here rather than in bitbake shutdown.
if sync:
- p = os.environ['PATH']
- os.environ['PATH'] = "/usr/bin:/bin:/usr/sbin:/sbin:" + p
os.system("sync")
- os.environ['PATH'] = p
result.command = command
result.status = cmd.status