summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa
AgeCommit message (Collapse)Author
2021-10-16oeqa: Update cleanup code to wait for hashserv exitRichard Purdie
We sometimes see exceptions from code seeing the hashserv DB files being removed at directory cleanup time. Add a check to ensure the hashserv has written the data base journal (and hence likely exited) before cleaning up. This will hopefully avoid errors like: Traceback (most recent call last): File "[...]/meta/lib/oeqa/sdk/buildtools-cases/build.py", line 30, in test_libc delay = delay - 1 File "/usr/lib/python3.6/tempfile.py", line 948, in __exit__ self.cleanup() File "/usr/lib/python3.6/tempfile.py", line 952, in cleanup _rmtree(self.name) File "/usr/lib/python3.6/shutil.py", line 486, in rmtree _rmtree_safe_fd(fd, path, onerror) File "/usr/lib/python3.6/shutil.py", line 424, in _rmtree_safe_fd _rmtree_safe_fd(dirfd, fullname, onerror) File "/usr/lib/python3.6/shutil.py", line 444, in _rmtree_safe_fd onerror(os.unlink, fullname, sys.exc_info()) File "/usr/lib/python3.6/shutil.py", line 442, in _rmtree_safe_fd os.unlink(name, dir_fd=topfd) FileNotFoundError: [Errno 2] No such file or directory: 'hashserv.db-wal' Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-16reproducible: Merge code into base.bbclassRichard Purdie
Reproducibility is here to stay and needs to be part of our default workflow. Move the remaining code to base.bbclass so it is always a first class citizen and it is clear people need to be mindful of it. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-14sstate: Switch to ZStandard compressor supportHenry Kleynhans
This patch switches the compressor from Gzip to ZStandard for ssate cache files. Zstandard compression provides a significant improvement in decompression speed as well as improvement in compression speed and disk usage over the 'tgz' format in use. Furthermore, its configurable compression level offers a trade-off between time spent compressing sstate cache files and disk space used by those files. The reduced disk usage also contributes to saving network traffic for those sharing their sstate cache with others. Zstandard should therefore be a good choice when: * disk space is at a premium * network speed / resources are limited * the CI server can sstate packages can be created at high compression * less CPU on the build server should be used for sstate decompression Signed-off-by: Henry Kleynhans <hkleynhans@fb.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-14base: Use repr() for printing exceptionsRichard Purdie
Exceptions print more clearly using repr() instead of str(), fix in fetch and unpack tasks. Drop part of the test which no longer makes sense after this change. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-13qemu: install qmp module without hardcoding the python version in oeqa scriptsAlexander Kanavin
Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-11oeqa/selftest/sstatetests: fix typo ware -> wereAlexandre Belloni
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
2021-10-11pinentry: update 1.1.1 -> 1.2.0Alexander Kanavin
Rebase patches. Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-11rpm: update 4.16.1.3 -> 4.17.0Alexander Kanavin
The flagship features are migration from bdb to sqlite and zstd support, both are enabled and taken into use. The relationship and upstream preference between sqlite and ndb formats isn't quite clear. Lua is now a hard dependency. Added packageconfig option for r/o support for bdb (that doesn't need bdb itself), but not enabled it as upstream marks it EXPERIMENTAL in capital letters. Drop sed adjustment for a file that is not anymore installed. Adjust oeqa test to check for sqlite database instead of bdb. Drop 0001-Fix-build-with-musl-C-library.patch (nss support removed upstream) 0001-rpm-rpmio.c-restrict-virtual-memory-usage-if-limit-s.patch (difficult to undersand and rebase; obsolete with the move to zstd) 0011-Do-not-require-that-ELF-binaries-are-executable-to-b.patch (upstream made the same change) Portions of 0001-tools-Add-error.h-for-non-glibc-case.patch dropped (upstream moved the files to a separate component). Added 0001-docs-do-not-build-manpages-requires-pandoc.patch to avoid pandoc dependency. Added 0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch to restore reproducibility when compression thread amount varies between hosts. Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-08oeqa/manual: Fix no longer valid URLsJon Mason
autobuilder.yoctoproject.org URLS no longer work. Update them to a working location. Signed-off-by: Jon Mason <jdmason@kudzu.us> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-01wic/bootimg-efi: Add Unified Kernel Image optionKristian Klausen
"A unified kernel image is a single EFI PE executable combining an EFI stub loader, a kernel image, an initramfs image, and the kernel command line. [...] Images of this type have the advantage that all metadata and payload that makes up the boot entry is monopolized in a single PE file that can be signed cryptographically as one for the purpose of EFI SecureBoot."[1] This commit adds a create-unified-kernel-image=true option to the bootimg-efi plugin for creating a Unified Kernel Image[1] and installing it into $BOOT/EFI/Linux/ with a .efi extension per the the Boot Loader Specification[1][2]. This is useful for implementing Secure Boot. systemd-boot is the only mainstream bootloader implementing the specification, but GRUB should be able to boot the EFI binary, this commit however doesn't implement the necessary changes to the GRUB config generation logic to boot the Unified Kernel Image. [1] https://systemd.io/BOOT_LOADER_SPECIFICATION/#type-2-efi-unified-kernel-images [2] https://systemd.io/BOOT_LOADER_SPECIFICATION/ Signed-off-by: Kristian Klausen <kristian@klausen.dk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-10-01oeqa/selftest/bbtests: Add uuid to force build testRichard Purdie
With hash equivalence working properly, this test breaks as it detects an unchanged tasks and doesn't rerun subsequent tasks. Add a uuid to the payload to ensure it doesn't ever match equivalence and the test works as intended. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-26oeqa/selftest/tinfoil: Update to use test commandRichard Purdie
We've had IO load issues on the autobuilder with this test. Avoid those by using a specilised test command instead. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-26oeqa/buildproject: Ensure temp directories are cleaned upRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-26oeqa/selftest/gotoolchain: Fix temp file cleanupRichard Purdie
The go tests leave readonly files and directories behind. Fix this to allow cleanup. [YOCTO #14575] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-26oeqa/qemurunner: Use oe._exit(), not sys.exit()Richard Purdie
sys.exit will cause finally statements and other code to run at exit. Since we're using os.fork() here, os._exit() is apprioriate in this codepath. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-23oeqa/selftest: Add tests for bitbake shell/python task outputRichard Purdie
We've seen issues where shell/python tasks lose their log file entries or output and also where output is duplicated. Add some tests to attempt to spot regressions in this area in future. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-23meta: Drop useless classRichard Purdie
This class was added by me back in 2007 and has changed one for a whitespace issue since. It only has two lines and neither are particularly useful, one was replaced by the nopackages class, the other adding recursive dependencies also is now mainly problematic adding tons of unneeded dependencies. The name is hard to understand and the class doesn't have a clear purpose. Drop it. Remove the references in devtool (which may be the one reason to keep it around but in my view still not worth it). Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-21oeqa/target/ssh: don't assume target_dumper is setRoss Burton
The target_dumper property is only set by the QemuTarget subclass, so assign a default value and check it isn't None before calling it. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-10oeqa/oescripts: Fix after tar recipe changesRichard Purdie
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-04wic: Add extra-space argumentKristian Klausen
This allows extra space to be added after the last partition and is especially useful when free space is needed for ex: adding partitions on first boot with ex: systemd-repart[1] and the image is tested in QEMU. [1] https://www.freedesktop.org/software/systemd/man/systemd-repart.html Signed-off-by: Kristian Klausen <kristian@klausen.dk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03oeqa/selftest/recipetool: update for license changesRoss Burton
Now that recipetool writes BSD-3-Clause, update the test appropriately. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03oeqa/recipeutils: update for license change to python-async-testRoss Burton
The python-async-test recipe is now BSD-3-Clause. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03oeqa/runtime/parselogs: Make DVD ata error apply to all qemux86 machinesRichard Purdie
This log checking fix is needed for both qemux86 and qemux86-64 so move to the common section. [YOCTO #14528] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-01oeqa/buildtools-cases: Allow bitbake time to shutdownRichard Purdie
bitbake may still be shutting down when the UI exits. Wait for the lock to disappear before trying to delete the directory to avoid errors. Traceback (most recent call last): File "/home/pokybuild/yocto-worker/buildtools/build/meta/lib/oeqa/sdk/buildtools-cases/build.py", line 23, in test_libc self._run('. %s/oe-init-build-env %s && bitbake virtual/libc' % (corebase, testdir)) File "/usr/lib64/python3.7/tempfile.py", line 807, in __exit__ self.cleanup() File "/usr/lib64/python3.7/tempfile.py", line 811, in cleanup _shutil.rmtree(self.name) File "/usr/lib64/python3.7/shutil.py", line 494, in rmtree _rmtree_safe_fd(fd, path, onerror) File "/usr/lib64/python3.7/shutil.py", line 452, in _rmtree_safe_fd onerror(os.unlink, fullname, sys.exc_info()) File "/usr/lib64/python3.7/shutil.py", line 450, in _rmtree_safe_fd os.unlink(entry.name, dir_fd=topfd) FileNotFoundError: [Errno 2] No such file or directory: 'bitbake.sock' Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-27parselogs.py: ignore intermittent CD/DVDROM identification failureBruce Ashfield
We don't use the CD/DVD ROM drive in any of our tests, but it periodically fails discovery and that leads to a QA error: [ 6.403477] ata3.00: failed to IDENTIFY (I/O error, err_mask=0x4) The only way to disable the optical ROM drive in qemu is to use the '-nodefaults' option, which disables the CDROM (among other things). We can't be sure that none of our tests, or extended users are relying on default devices, so using that option is more of a risk than adding the message to our ignore list. To date, no one has sent a patch to just disable the optical drive (either in qemu or the BIOS), but that is something we could consider in the future. [YOCTO #14528] Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-27qemurunner.py: handle getOutput() having nothing to readAlexander Kanavin
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-27qemurunner.py: print output from runqemu/qemu-system in stop()Alexander Kanavin
This is done when starting up qemu has failed, but is not done when qemu started ok, but fails later in QMP communication. Output from runqemu does contain valuable information to find out why, so rather than fix all the QMP fails to include it, let's just print it in stop(). Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-26oeqa/selftest/reproducibile: Exclude rust packagesRichard Purdie
rust-llvm-liblto and rust-llvm-staticdev sometimes vary in contents. Exclude them from the test for now until we can work on and resolve the issues. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-26oeqa/selftest/distrodata: Fix up rust maintainer testingRichard Purdie
Since the target rust recipe is skipped but the native variant is not, this confuses the test. Add rust to the list of special cases to avoid test failures as the current code can't handle the skip. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-23qemu: add a hint on how to enable CPU render nodes when a suitable GPU is absentAlexander Kanavin
This is particularly useful for llvm-accelerated GL rendering from qemu guest to an offscreen buffer (accessible over vnc or spice) using llvmpipe on the host, rather than using unaccelerated swrast renderer in the guest. This is the best that can be done in the absence of a host GPU with render node support (such as old Matrox cards common in servers, or fully virtualized cloud environments with no GPU at all). Note: even though NVidia blob drivers do support render nodes, they do not support gbm (yet?), and so rendering will fall back to llvmpipe as well even when the system has a 3000 euro NVidia GPU. Cue Linus picture. Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-20oeqa: wic: Add tests for --no-fstab-updateDaniel Gomez
Add tests for the --no-fstab-update wic part command. Signed-off-by: Daniel Gomez <daniel@qtec.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-18oeqa/sdk: add HTTPS test for buildtoolsRoss Burton
Verify that HTTPS connections work in both wget and Python, as this depends on variables correctly pointing to the certificate chain. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-18oeqa/sdk: add relocation test for buildtoolsRoss Burton
The buildtools-extended tarball includes GCC, which relies on being relocated correctly to work. Add a test case that verifies that the loader paths have all been relocated, as otherwise there are hard-to-debug errors at build time. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-17oeqa/selftest/buildoptions: test buildhistory PKGSIZE and FILELIST fieldsRoss Burton
Add tests to ensure that PKGSIZE and FILELIST fields are set correctly. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-17oeqa/selftest/glibc: Handle incorrect encoding issuesin glibc test resultsRichard Purdie
We dont control the test output and sometimes see badly encoded characters. These don't affect the operation of the code we're running. Use errors='replace' to avoid those issues and the resulting test failures. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-13oeqa/runtime/cases: make date.DateTest.test_date more reliableAlexandre Belloni
The test uses the broken out time and can only handle about 59s of delay, use a UNIX timestamp to allow for up to a 300s delay. [YOCTO #14463] Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-13oeqa/selftest/fitimage: update tests to use two keysThomas Perrot
Other keys (UBOOT_SIGN_IMG_KEYNAME) are required to sign individually the images nodes, and these keys must be different from the ones used to sign the configurations nodes (UBOOT_SIGN_KEYNAME), then fitimage tests need to be updated. Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-12oeqa/sdk: add some buildtools testsRoss Burton
These two tests are designed to exercise the buildtools-tarball. SanityTests simply verifies that inside the SDK, some commands are used from the SDK. BuildTests creates a new OE build directory and builds virtual/libc to verify that a basic build works correctly. DL_DIR is reused to avoid needless downloading, but sstate is not shared to ensure a build does happen. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-12oeqa/selftest: overlayfs unit testsVyacheslav Yurkov
Unit tests for overlayfs.bbclass Signed-off-by: Vyacheslav Yurkov <uvv.mail@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-06oeqa/runtime/cases/ptest: Increase test timeout from 300s to 450sRichard Purdie
Some tests such as lttng-tools are marginal and timing out on the autobuilder with the current 300s default. Increase to avoid this noise in the ptest failures list. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-05devtool.py: Correct override syntaxKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-05toaster-managed-mode.json: Correctly specify term with new override syntaxKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-08-04meta: Convert IMAGE_TYPEDEP to use override syntaxRichard Purdie
The IMAGE_TYPEDEP variable would make more sense to match the form of the other image override variables, convert it to use the overrides format. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-07-30selftest: add core-image-weston to no-gpl3-no-meta-gpl2 image testAlexander Kanavin
This demonstrates more of the tricks and techniques that can be used to achieve gpl3-free images withough having to roll back to ancient versions of various core items via meta-gpl2. Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-07-30meta: Manual override fixesRichard Purdie
The automated conversion of OE-Core to use the new override sytax isn't perfect. This patches some mis-converted lines and some lines which were missed by the automation. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-07-30Convert to new override syntaxRichard Purdie
This is the result of automated script conversion: scripts/contrib/convert-overrides.py <oe-core directory> converting the metadata to use ":" as the override character instead of "_". Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-07-29parselogs.py: qemuarm should be qemuarmv5Jon Mason
All of the errors being masked off for qemuarm are legacy from before the migration of qemuarm to qemuarmv5. Rename the machine to that to allow for qemuarmv5 to pass parselog test. Light testing shows no errors in dmesg for qemuarm. Signed-off-by: Jon Mason <jdmason@kudzu.us> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-07-22oeqa/manual/toaster: fix small typoRalph Siemsen
PACKAGE_CLASES should be PACKAGE_CLASSES. Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-07-20parselogs.py: ignore rndr initialization failureMingli Yu
After rng-tools upgraded to 6.13, the RNDR instruction added as an entropy source [1]. But for some cpu which doesn't support rndr, there comes below warning message: # systemctl status rngd [snip] Jul 20 06:48:07 qemuarm64 rngd[163]: [rndr ]: No HW SUPPORT Jul 20 06:48:07 qemuarm64 rngd[163]: [rndr ]: Initialization Failed [snip] Actually the failed message doesn't matter as it only indicates one entropy source rndr fails to initialize and won't affect rngd function, so ignore the failure message to fix below error during do_testimage. NOTE: ====================================================================== NOTE: FAIL: test_parselogs (parselogs.ParseLogsTest) NOTE: ---------------------------------------------------------------------- NOTE: Traceback (most recent call last): File "/build/layers/oe-core/meta/lib/oeqa/core/decorator/__init__.py", line 36, in wrapped_f return func(*args, **kwargs) File "/build/layers/oe-core/meta/lib/oeqa/runtime/cases/parselogs.py", line 382, in test_parselogs self.assertEqual(errcount, 0, msg=self.msg) AssertionError: 1 != 0 : Log: /build/tmp/work/qemuarm64-wrs-linux/wrlinux-image-std/1.0-r5/target_logs/daemon.log ----------------------- Central error: 2021-06-23T20:44:18.374494+00:00 qemuarm64 rngd[162]: [rndr ]: Initialization Failed Signed-off-by: Mingli Yu <mingli.yu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-07-11oeqa/qemurunner: Handle files no longer existing gracefullyRichard Purdie
Files in /proc/xxx/map_files/ may no longer exist, just ignore this rather than raising an exception. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>