diff options
author | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2019-11-16 00:35:03 +0300 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2019-11-16 00:36:05 +0300 |
commit | 1d80a2eac54644288c7f2820d3c3fbcb5402b351 (patch) | |
tree | dbe2ecc74749cf37f66f9f7268bd7c16d32e9b9b /poky/meta/lib/oeqa/selftest | |
parent | 98f5315998ea2d2cba17ba9ebafd573902ea97cc (diff) | |
download | openbmc-1d80a2eac54644288c7f2820d3c3fbcb5402b351.tar.xz |
poky: subtree update:7035b4b21e..a616ffebdc
Adrian Bunk (3):
python3: Upgrade 3.7.4 -> 3.7.5
lz4: Whitelist CVE-2014-4715
iputils: Whitelist CVE-2000-1213 CVE-2000-1214
Alex Kube (1):
go: Refactor patches for 1.13.3
Andreas Müller (2):
vte: upgrade 0.56.3 -> 0.58.2
webkitgtk: upgrade 2.26.1 -> 2.26.2
Andreas Oberritter (3):
glibc: move ldconfig to its own package
package.bbclass: Always include ldconfig fragment
systemd: Add runtime dependency on new ldconfig package
André Draszik (1):
libevent: update packaging (one package per shared library)
Anuj Mittal (1):
libsdl2: fix race when building in parallel
Armin Kuster (13):
oeqa/core: Add a check for MACHINE
oeqa/core: Add qemu checks
oeqa/manual/bsp-qemu: remove rpm tests already done in runtime
oeqa/manual/bsp-qemu: remove KVM enabled which is already done in selftest runqemu
oeqa/manual/bsp-qemu: drop xserver test done at runtime
oeqa/manual/bsp-qemu: remove only_one_connmand_in_background test done at runtime
oeqa/manual/bsp-qemu: remove postinit test done w/selftest runtime
oeqa/manual/bsp-qemu: remove manual bash test
oeqa/manual/bsp-qemu: remove manual useradd test
oeqa/selftest/oescripts: move list-packageconfig-flags tests from manual to self
oeqa/manua/oe-core: remove manual PACKAGECONFIG_FLAGS tests
oeqa/selftest/runtime_test: add crosstab selftest
oeqa/manual/oe-core: remove crosstab test from manual
Changhyeok Bae (1):
iproute2: update 5.2.0 -> 5.3.0
Chee Yang Lee (1):
wic: beautify 'wic help'
Chris Laplante via bitbake-devel (7):
bitbake: contrib/vim: More Python indenting; move indent file to correct directory
bitbake: contrib/vim: Special handling of bb.fatal
bitbake: contrib/vim: don't redeclare indenter
bitbake: contrib/vim: renaming & comments
bitbake: contrib/vim: indenting for assignments; tweak Python indenting
bitbake: contrib/vim: handle shell indenting
bitbake: contrib/vim: Add copyright and license notice
Denys Dmytriyenko (1):
buildhistory: fix "version went backwards" QA error message
Gavin Li (1):
bitbake: prserv: fix ResourceWarning due to unclosed socket
Haris Okanovic (8):
isoimage-isohybrid.py: Parameterize ESP label
isoimage-isohybrid.py: Parameterize ESP partition size
initscripts/sysfs.sh: Mount /sys/firmware/efi/efivars when possible
gnupg: Split gpg and gpg-agent into a minimal gnupg-gpg package
opkg: RDEPEND "gnupg-gpg" instead of "gnupg"
gnupg/libksba/npth/pinentry: Add nativesdk to BBCLASSEXTEND
meta/lib/oe/package_manager.py: Enable sha256 checksums in opkg indexer
dhcp: Workaround busybox limitation in Linux dhclient-script
Ivan Efimov (1):
bitbake: bitbake-worker child process create group before registering SIGTERM handler
Jacob Kroon (2):
rm_work: Promote do_image_qa stamps to setscene versions
rm_work: Simplify logic for setscene promotion
Jagadeesh Krishnanjanappa (1):
tune-cortexa32: Fix libgcc-initial build issue for cortex-a32
Joshua Watt (4):
oeqa: reproducible: Add option to capture bad packages
icecc-create-env: Use OE patchelf in SDK
mc: Fix build reproducibility
wayland: Fix wayland-scanner build for MinGW
Khem Raj (4):
libtirpc: Do not include bits/endian.h directly
strace: Fix ptest build
libnsl2: Update to latest master
strace: Fix build found with 64bit time_t/musl
Liwei Song (1):
buildtools-tarball: export OPENSSL_CONF for openssl
Mark Hatle (1):
populate_sdk_ext.bbclass: Make integrated buildtools optional
Maxime Roussin-Bélanger (1):
meta: add missing description for some recipes in graphics
Mikko Rapeli (1):
harfbuzz: split libharfbuzz-subset.so to its own binary package
Oleksandr Kravchuk (1):
git: update to 2.24.0
Paul Barker (1):
scripts/native-intercept: Add chgrp intercept
Peter Kjellerstedt (3):
sysstat: Correct our systemd unit file
sysstat: Correct when to use the package provided systemd unit files
bitbake: cooker: Remove a left-over comment about expanded_data
Richard Purdie (9):
bitbake: fetch2: Ensure cached url data is matched to a datastore
staging: Handle files moving between dependencies
sstate: Add ability to hide summary output for sstate
selftest/signing: Fix test_locked_signatures to use a temporary layer
dhcp/ruby/ffpmeg: Use CFLAGS, not TARGET_CFLAGS
bitbake: runqueue: Improve sstate rehashing output
pseudo: Add statx support to fix fedora30 issues
pseudo: Drop static linking to sqlite3
sqlite3: Drop pic as we no longer need the sqlite3 static lib
Ross Burton (16):
file: fix CVE-2019-18218
file: remove redundant upstream check workaround
file: run test suite when building natively
patch: the CVE-2019-13638 fix also handles CVE-2018-20969
libpng: whitelist CVE-2019-17371
procps: whitelist CVE-2018-1121
libsndfile1: whitelist CVE-2018-13419
libpam: set CVE_PRODUCT
libsoup: set CVE_PRODUCT
libsoup-2.4: upgrade to 2.66.4
insane: improve textrel warning message
libsoup: update patch upstream status
acpica: upgrade to 20191018
ovmf: unify DEPENDS
cve-check: we don't actually need to unpack to check
cve-update-db-native: don't refresh more than once an hour
Samuli Piippo (1):
linux-firmware: update packaging for brcm files
Scott Rifenbark (3):
ref-manual: Completed the 3.0 migration section.
mega-manual: Updated mega-manual Bitbake manual search path
ref-manual: Removed blank lines from 3.0 migratrion section.
Stefan Agner (1):
dbus: drop unused group netdev
Torbjörn Svensson (1):
psplash: Do mount psplash tmpfs if not mounted
Trevor Gamblin (1):
python3-misc: add python3-audio to RDEPENDS
Volker Vogelhuber (1):
bitbake: fetch2/hg: Fix various runtime issues
Yeoh Ee Peng (4):
scripts/resulttool/report: Enable report to use regression_map
scripts/resulttool/report: Enable output raw test results
scripts/resulttool/report: Add total statistic to test result.
resulttool/store.py: Enable add extra test environment data
Yongxin Liu (2):
systemd: Fix invalid argument of pstore log entry
ltp: Add "udevadm trigger" before swap verification in mkswap01.sh
Zang Ruochen (8):
ruby:upgrade 2.6.4 -> 2.6.5
ethtool:upgrade 5.2 -> 5.3
libdrm:upgrade 2.4.99 -> 2.4.100
libcheck:upgrade 0.12.0 -> 0.13.0
curl:upgrade 7.66.0 -> 7.67.0
libinput:upgrade 1.14.1 -> 1.14.3
python3-six:upgrade 1.12.0 -> 1.13.0
libedit: upgrade 20190324 -> 20191025
Zhixiong Chi (1):
libtirpc: create the symbol link for rpc header files
grygorii tertychnyi (1):
archiver: avoid empty incfile in ar_recipe
Change-Id: Ice596e426e4533d7568a82bcbb21efdfc19e21e7
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'poky/meta/lib/oeqa/selftest')
-rw-r--r-- | poky/meta/lib/oeqa/selftest/cases/buildoptions.py | 2 | ||||
-rw-r--r-- | poky/meta/lib/oeqa/selftest/cases/oescripts.py | 59 | ||||
-rw-r--r-- | poky/meta/lib/oeqa/selftest/cases/reproducible.py | 20 | ||||
-rw-r--r-- | poky/meta/lib/oeqa/selftest/cases/runtime_test.py | 77 | ||||
-rw-r--r-- | poky/meta/lib/oeqa/selftest/cases/signing.py | 17 |
5 files changed, 168 insertions, 7 deletions
diff --git a/poky/meta/lib/oeqa/selftest/cases/buildoptions.py b/poky/meta/lib/oeqa/selftest/cases/buildoptions.py index 6a5378d3f..e91f0bd18 100644 --- a/poky/meta/lib/oeqa/selftest/cases/buildoptions.py +++ b/poky/meta/lib/oeqa/selftest/cases/buildoptions.py @@ -143,7 +143,7 @@ class BuildhistoryTests(BuildhistoryBase): def test_buildhistory_buildtime_pr_backwards(self): target = 'xcursor-transparent-theme' - error = "ERROR:.*QA Issue: Package version for package %s went backwards which would break package feeds from (.*-r1.* to .*-r0.*)" % target + error = "ERROR:.*QA Issue: Package version for package %s went backwards which would break package feeds \(from .*-r1.* to .*-r0.*\)" % target self.run_buildhistory_operation(target, target_config="PR = \"r1\"", change_bh_location=True) self.run_buildhistory_operation(target, target_config="PR = \"r0\"", change_bh_location=False, expect_error=True, error_regex=error) diff --git a/poky/meta/lib/oeqa/selftest/cases/oescripts.py b/poky/meta/lib/oeqa/selftest/cases/oescripts.py index 80d8b2c4c..41cbe0480 100644 --- a/poky/meta/lib/oeqa/selftest/cases/oescripts.py +++ b/poky/meta/lib/oeqa/selftest/cases/oescripts.py @@ -65,6 +65,7 @@ class OEPybootchartguyTests(OEScriptTests): runCmd('%s/pybootchartgui/pybootchartgui.py %s -o %s/charts -f pdf' % (self.scripts_dir, self.buildstats, self.tmpdir)) self.assertTrue(os.path.exists(self.tmpdir + "/charts.pdf")) + class OEGitproxyTests(OESelftestTestCase): scripts_dir = os.path.join(get_bb_var('COREBASE'), 'scripts') @@ -127,3 +128,61 @@ class OeRunNativeTest(OESelftestTestCase): bitbake("qemu-helper-native -c addto_recipe_sysroot") result = runCmd("oe-run-native qemu-helper-native tunctl -h") self.assertIn("Delete: tunctl -d device-name [-f tun-clone-device]", result.output) + +class OEListPackageconfigTests(OEScriptTests): + #oe-core.scripts.List_all_the_PACKAGECONFIG's_flags + def check_endlines(self, results, expected_endlines): + for line in results.output.splitlines(): + for el in expected_endlines: + if line == el: + expected_endlines.remove(el) + break + + if expected_endlines: + self.fail('Missing expected listings:\n %s' % '\n '.join(expected_endlines)) + + + #oe-core.scripts.List_all_the_PACKAGECONFIG's_flags + def test_packageconfig_flags_help(self): + runCmd('%s/contrib/list-packageconfig-flags.py -h' % self.scripts_dir) + + def test_packageconfig_flags_default(self): + results = runCmd('%s/contrib/list-packageconfig-flags.py' % self.scripts_dir) + expected_endlines = [] + expected_endlines.append("RECIPE NAME PACKAGECONFIG FLAGS") + expected_endlines.append("pinentry gtk2 libcap ncurses qt secret") + expected_endlines.append("tar acl") + + self.check_endlines(results, expected_endlines) + + + def test_packageconfig_flags_option_flags(self): + results = runCmd('%s/contrib/list-packageconfig-flags.py -f' % self.scripts_dir) + expected_endlines = [] + expected_endlines.append("PACKAGECONFIG FLAG RECIPE NAMES") + expected_endlines.append("qt nativesdk-pinentry pinentry pinentry-native") + expected_endlines.append("secret nativesdk-pinentry pinentry pinentry-native") + + self.check_endlines(results, expected_endlines) + + def test_packageconfig_flags_option_all(self): + results = runCmd('%s/contrib/list-packageconfig-flags.py -a' % self.scripts_dir) + expected_endlines = [] + expected_endlines.append("pinentry-1.1.0") + expected_endlines.append("PACKAGECONFIG ncurses libcap") + expected_endlines.append("PACKAGECONFIG[qt] --enable-pinentry-qt, --disable-pinentry-qt, qtbase-native qtbase") + expected_endlines.append("PACKAGECONFIG[gtk2] --enable-pinentry-gtk2, --disable-pinentry-gtk2, gtk+ glib-2.0") + expected_endlines.append("PACKAGECONFIG[libcap] --with-libcap, --without-libcap, libcap") + expected_endlines.append("PACKAGECONFIG[ncurses] --enable-ncurses --with-ncurses-include-dir=${STAGING_INCDIR}, --disable-ncurses, ncurses") + expected_endlines.append("PACKAGECONFIG[secret] --enable-libsecret, --disable-libsecret, libsecret") + + self.check_endlines(results, expected_endlines) + + def test_packageconfig_flags_optiins_preferred_only(self): + results = runCmd('%s/contrib/list-packageconfig-flags.py -p' % self.scripts_dir) + expected_endlines = [] + expected_endlines.append("RECIPE NAME PACKAGECONFIG FLAGS") + expected_endlines.append("pinentry gtk2 libcap ncurses qt secret") + + self.check_endlines(results, expected_endlines) + diff --git a/poky/meta/lib/oeqa/selftest/cases/reproducible.py b/poky/meta/lib/oeqa/selftest/cases/reproducible.py index c235c139e..a9110565a 100644 --- a/poky/meta/lib/oeqa/selftest/cases/reproducible.py +++ b/poky/meta/lib/oeqa/selftest/cases/reproducible.py @@ -5,11 +5,16 @@ from oeqa.selftest.case import OESelftestTestCase from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars +import bb.utils import functools import multiprocessing import textwrap import json import unittest +import tempfile +import shutil +import stat +import os MISSING = 'MISSING' DIFFERENT = 'DIFFERENT' @@ -74,6 +79,7 @@ def compare_file(reference, test, diffutils_sysroot): class ReproducibleTests(OESelftestTestCase): package_classes = ['deb', 'ipk'] images = ['core-image-minimal'] + save_results = False def setUpLocal(self): super().setUpLocal() @@ -117,9 +123,18 @@ class ReproducibleTests(OESelftestTestCase): self.extrasresults['reproducible']['files'].setdefault(package_class, {})[name] = [ {'reference': p.reference, 'test': p.test} for p in packages] + def copy_file(self, source, dest): + bb.utils.mkdirhier(os.path.dirname(dest)) + shutil.copyfile(source, dest) + def test_reproducible_builds(self): capture_vars = ['DEPLOY_DIR_' + c.upper() for c in self.package_classes] + if self.save_results: + save_dir = tempfile.mkdtemp(prefix='oe-reproducible-') + os.chmod(save_dir, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH) + self.logger.info('Non-reproducible packages will be copied to %s', save_dir) + # Build native utilities self.write_config('') bitbake("diffutils-native -c addto_recipe_sysroot") @@ -176,6 +191,11 @@ class ReproducibleTests(OESelftestTestCase): self.write_package_list(package_class, 'different', result.different) self.write_package_list(package_class, 'same', result.same) + if self.save_results: + for d in result.different: + self.copy_file(d.reference, '/'.join([save_dir, d.reference])) + self.copy_file(d.test, '/'.join([save_dir, d.test])) + if result.missing or result.different: self.fail("The following %s packages are missing or different: %s" % (c, ' '.join(r.test for r in (result.missing + result.different)))) diff --git a/poky/meta/lib/oeqa/selftest/cases/runtime_test.py b/poky/meta/lib/oeqa/selftest/cases/runtime_test.py index 7d3922ce4..4b56e5bec 100644 --- a/poky/meta/lib/oeqa/selftest/cases/runtime_test.py +++ b/poky/meta/lib/oeqa/selftest/cases/runtime_test.py @@ -322,3 +322,80 @@ class Postinst(OESelftestTestCase): self.assertFalse(os.path.isfile(os.path.join(hosttestdir, "rootfs-after-failure")), "rootfs-after-failure file was created") +class SystemTap(OESelftestTestCase): + """ + Summary: The purpose of this test case is to verify native crosstap + works while talking to a target. + Expected: The script should successfully connect to the qemu machine + and run some systemtap examples on a qemu machine. + """ + + @classmethod + def setUpClass(cls): + super(SystemTap, cls).setUpClass() + cls.image = "core-image-minimal" + + def default_config(self): + return """ +# These aren't the actual IP addresses but testexport class needs something defined +TEST_SERVER_IP = "192.168.7.1" +TEST_TARGET_IP = "192.168.7.2" + +EXTRA_IMAGE_FEATURES += "tools-profile dbg-pkgs" +IMAGE_FEATURES_append = " ssh-server-dropbear" + +# enables kernel debug symbols +KERNEL_EXTRA_FEATURES_append = " features/debug/debug-kernel.scc" +KERNEL_EXTRA_FEATURES_append = " features/systemtap/systemtap.scc" + +# add systemtap run-time into target image if it is not there yet +IMAGE_INSTALL_append = " systemtap" +""" + + def test_crosstap_helloworld(self): + self.write_config(self.default_config()) + bitbake('systemtap-native') + systemtap_examples = os.path.join(get_bb_var("WORKDIR","systemtap-native"), "usr/share/systemtap/examples") + bitbake(self.image) + + with runqemu(self.image) as qemu: + cmd = "crosstap -r root@192.168.7.2 -s %s/general/helloworld.stp " % systemtap_examples + result = runCmd(cmd) + self.assertEqual(0, result.status, 'crosstap helloworld returned a non 0 status:%s' % result.output) + + def test_crosstap_pstree(self): + self.write_config(self.default_config()) + + bitbake('systemtap-native') + systemtap_examples = os.path.join(get_bb_var("WORKDIR","systemtap-native"), "usr/share/systemtap/examples") + bitbake(self.image) + + with runqemu(self.image) as qemu: + cmd = "crosstap -r root@192.168.7.2 -s %s/process/pstree.stp" % systemtap_examples + result = runCmd(cmd) + self.assertEqual(0, result.status, 'crosstap pstree returned a non 0 status:%s' % result.output) + + def test_crosstap_syscalls_by_proc(self): + self.write_config(self.default_config()) + + bitbake('systemtap-native') + systemtap_examples = os.path.join(get_bb_var("WORKDIR","systemtap-native"), "usr/share/systemtap/examples") + bitbake(self.image) + + with runqemu(self.image) as qemu: + cmd = "crosstap -r root@192.168.7.2 -s %s/process/ syscalls_by_proc.stp" % systemtap_examples + result = runCmd(cmd) + self.assertEqual(0, result.status, 'crosstap syscalls_by_proc returned a non 0 status:%s' % result.output) + + def test_crosstap_syscalls_by_pid(self): + self.write_config(self.default_config()) + + bitbake('systemtap-native') + systemtap_examples = os.path.join(get_bb_var("WORKDIR","systemtap-native"), "usr/share/systemtap/examples") + bitbake(self.image) + + with runqemu(self.image) as qemu: + cmd = "crosstap -r root@192.168.7.2 -s %s/process/ syscalls_by_pid.stp" % systemtap_examples + result = runCmd(cmd) + self.assertEqual(0, result.status, 'crosstap syscalls_by_pid returned a non 0 status:%s' % result.output) + diff --git a/poky/meta/lib/oeqa/selftest/cases/signing.py b/poky/meta/lib/oeqa/selftest/cases/signing.py index 5c4e01b2c..93b15ae68 100644 --- a/poky/meta/lib/oeqa/selftest/cases/signing.py +++ b/poky/meta/lib/oeqa/selftest/cases/signing.py @@ -3,7 +3,7 @@ # from oeqa.selftest.case import OESelftestTestCase -from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars +from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars, create_temp_layer import os import oe import glob @@ -185,8 +185,6 @@ class LockedSignatures(OESelftestTestCase): test_recipe = 'ed' locked_sigs_file = 'locked-sigs.inc' - self.add_command_to_tearDown('rm -f %s' % os.path.join(self.builddir, locked_sigs_file)) - bitbake(test_recipe) # Generate locked sigs include file bitbake('-S none %s' % test_recipe) @@ -198,16 +196,23 @@ class LockedSignatures(OESelftestTestCase): # Build a locked recipe bitbake(test_recipe) + templayerdir = tempfile.mkdtemp(prefix='signingqa') + create_temp_layer(templayerdir, 'selftestsigning') + runCmd('bitbake-layers add-layer %s' % templayerdir) + # Make a change that should cause the locked task signature to change # Use uuid so hash equivalance server isn't triggered recipe_append_file = test_recipe + '_' + get_bb_var('PV', test_recipe) + '.bbappend' - recipe_append_path = os.path.join(self.testlayer_path, 'recipes-test', test_recipe, recipe_append_file) + recipe_append_path = os.path.join(templayerdir, 'recipes-test', test_recipe, recipe_append_file) feature = 'SUMMARY_${PN} = "test locked signature%s"\n' % uuid.uuid4() - os.mkdir(os.path.join(self.testlayer_path, 'recipes-test', test_recipe)) + os.mkdir(os.path.join(templayerdir, 'recipes-test')) + os.mkdir(os.path.join(templayerdir, 'recipes-test', test_recipe)) write_file(recipe_append_path, feature) - self.add_command_to_tearDown('rm -rf %s' % os.path.join(self.testlayer_path, 'recipes-test', test_recipe)) + self.add_command_to_tearDown('bitbake-layers remove-layer %s' % templayerdir) + self.add_command_to_tearDown('rm -f %s' % os.path.join(self.builddir, locked_sigs_file)) + self.add_command_to_tearDown('rm -rf %s' % templayerdir) # Build the recipe again ret = bitbake(test_recipe) |