Petr Vorel (upstream ltp maintainer) recommended some extra tests we should run.
Enable these for extra test coverage.
(From OE-Core rev: ebae56999dc2ed7abb65062a9abee53827c3bad3)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Removed patch accepted upstream as
8c53cc947 ("testcases/kernel/syscalls/fcntl: define _LARGEFILE64_SOURCE")
Rebase runtest/mm patch.
[RP:
Drop connectors group since dropped upstream:
9b642d89c0
Drop fsx too:
fb2b6a0b3c
]
(From OE-Core rev: b2867cac5ac58862469f0c6c056607abeca0b0d0)
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
With changes to gcc-runtime around improving debugging, python modules
are needed but this pulls in bash which breaks the tests.
Add an exclusion to the no-gplv3 include file to handle this.
(From OE-Core rev: 803060fa4e8fe98ac8f987b80162110d06788946)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Create a no-gplv3.inc file based upon knowledge currently encoded into one
of the selftests.
There is a risk that people try and take this idea too far, or have unrealistic
expectations. That said, it would be better to collect this knowledge together
in one location rather than handling it piecemeal.
Therefore move the configuration information from the test into a common
incude file.
(From OE-Core rev: fb822fb2029c69934cf43073f95b396c2d60298e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This testcase does not work properly with 32bit systems as it houses an
older version of zlib which needs to be patched to work with 32bit
systems with 64bit time_t e.g. mips o32.
Apply a needed patch via sed logic to fix this issue.
Enable bundled zlib in build, which means we do not require zlib to be
available in SDK and it can be built for more variety of images.
Upgrade the testcase to use 5.3.1 release of assimp and add cmake option to
enable bundled zlib explicitly.
(From OE-Core rev: 3c922fb61aa4f3bbb5c4ef35639acdf263c4313c)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Otherwise the output was cluttered with irrelevant lines that were
describing missing, but excepted cache objects.
(From OE-Core rev: 146e6e88b6c9400eb2c7442a319a6240b00ecaa2)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The pid file can disappear when qemu is shutting down leading to a
file not found race before it is read.
Tweak the code to handle this and fix a rare but annoying race error
case.
[YOCTO #15036]
(From OE-Core rev: 8c07aac9d55f92fe5fbe3cab9f006efecf266328)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Discovery of the test file was happening in a class initializer.
That block of code cannot fail (it's not a test), and so it
falls through to completion even if the needed file could not be found.
Then the tests themselves fail later due to class variables not
being set, but all information as to why is already lost at that point.
This converts the discovery to a helper function called from
the tests, so that the function can fail the tests precisely when the
problems occur.
(From OE-Core rev: 5d7a6ede105ea1efc9c324c7029f9d08dadf7255)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a test case to ensure the following error does not happen again for
'devtool modify -n'.
Traceback (most recent call last):
File "/buildarea2/chenqi/poky/scripts/devtool", line 349, in <module>
ret = main()
File "/buildarea2/chenqi/poky/scripts/devtool", line 336, in main
ret = args.func(args, config, basepath, workspace)
File "/buildarea2/chenqi/poky/scripts/lib/devtool/standard.py", line 924, in modify
if not initial_revs["."]:
KeyError: '.'
(From OE-Core rev: 2c2ba5f9497462a190b849a69d8440149f80582a)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Enable rust oe-selftest.
* Include the dependent patches for rust oe-selftest in
meta/recipes-devtools/rust/rust-source.inc
* Disable rust oe-selftest for mips32 target (Rust upstream has classified it into tier 3 target,
for which the Rust project does not build or test automatically) as it is unstable with rust tests.
https://doc.rust-lang.org/nightly/rustc/platform-support.html#tier-3
* The testing is done on arm32, arm64, mips64, x86 and x86_64 targets on Ubuntu 22.04.
(From OE-Core rev: 8f3a2841540fc4779bbd7e11d910edcdc8b47683)
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
To avoid overlap and redundancy of rust tests, remove the test cases whose
parent dir is already excluded.
Tests which are failing from below dirs are removed as these dirs are
already present in exclude list
tests/run-make
tests/rustdoc
tests/mir-opt
tests/ui-fulldeps
(From OE-Core rev: 58a7f3efa9e31e2c7b90e6490f3e51f388e6a7ce)
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add newly failing tests cases in the exclude list for
rust oe-selftest.
(From OE-Core rev: 50119ddaaa810ad71063691fb1cc30cf8c8456c8)
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
add a non regression test for devtool modify/build on recipe having
several sources in SRC_URI
(From OE-Core rev: 5f195f5e98d5553e41e632eda26392ee70394c88)
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Primarily list the number of patches found, useful when debugging.
Also clean up some bad escaping that caused warnings and use
re.IGNORECASE instead of manually doing case-insenstive rang matches.
(From OE-Core rev: 10acc75b7f3387b968bacd51aade6a8dc11a463f)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Handle CVE_STATUS[...] being set to an empty string just as if it was
not set at all.
This is needed for evaluated CVE_STATUS values to work, i.e. when
setting not-applicable-config if a PACKAGECONFIG is disabled.
(From OE-Core rev: 2c9f20f746251505d9d09262600199ffa87731a2)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We occasionally see races over the lockfile used by externalsrc/devtool
when walking files for the source_date_epock calculation. Skip this file
if present to avoid the issues and fix a real issue where SDE could be
contaminated too.
[YOCTO #14921]
(From OE-Core rev: 4bc0eb4bd90e6e6e46581a8ed367212bdd910a26)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The current code is in race to see who can set things last. This isn't scalable or
sustainable and problemtic in the face of inherit ordering changes.
Move the ordering issue into the actual code execution, which isn't ideal but
the best of several bad options and at least lets us drop the anonymous python.
(From OE-Core rev: 0ffff2c1f80a9b79b133d787764bab164d9abd70)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This variable is only used by the ipk backend with multilibs.
In order to make it work correctly regardless of inherit order, change
the string to be space delimeted, set using += and add in the regex '|'
sperator at the end of processing.
(From OE-Core rev: 72befdb12568fbc642022ef0a23b269c5b37a638)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- 'subprocess.Popen([d.expand("${HOST_PREFIX}otool)' requires text-mode (a more
readable alias for the universal_newlines parameter), since otool produces
text and the code 'out.split("\n")' expects a string, not a bytes object.
otool is used on MacOS only, so this error isn't triggered on Linux.
- use 'startswith("darwin")' in order to support all darwin versions and not
just specific versions (meta-darwin supports darwin21 at the moment).
(From OE-Core rev: 248ca79a6400e063c4965f9542c614bf837ff758)
Signed-off-by: Dominik Schnitzer <dominik@snap.com>
Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The test relies on all tasks in the dependency tree of the tasks being changed
having valid signatures in sstate, so that the recursive discovery of the
base invalid tasks stops there, and doesn't go further.
This may not always occur, particularly when hash equivalency combined with
different build host architectures prevents them from getting created in regular builds:
https://autobuilder.yoctoproject.org/typhoon/#/builders/127/builds/2725/steps/15/logs/stdio
The other two tests (that change specific recipes) already ensure this, but
this test (which changes a basic task definition) does not.
(From OE-Core rev: e37445320ca1a8913d6ed768681ff32de24eef94)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The execution result of depmodwrapper is not checked which makes depmod
generation failed sliently and hard to detect.
So check exection result and stop building if depmodwrapper failed.
(From OE-Core rev: 2f88e7d331390c6aaecc4522253e24791aec299e)
Signed-off-by: Yang Xu <yang.xu@mediatek.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This will help finding out what kind of error the server actually returned,
as sporadic CDN failures continue to occur.
[YOCTO #15335]
(From OE-Core rev: 7f09c4c5a0fe4ff213f205927f618a77b72aeef3)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Other than the formatting changes, there are two functional ones:
- use perlcross instead of quilt, as quilt is special in the sense
of being excluded from task hash calculcations. perlcross is a full
participant.
- run the full test (local + sstate) for gcc do_preconfiure change
as the necessary fix has been implemented
(sstatesig/find_siginfo: special-case gcc-source when looking in sstate caches)
Note that when several tasks are found to have changed (as is the case
when base do_configure is adjusted), find_siginfo() runs
glob.glob("*/*/*taskname*") against autobuilder sstate cache for each
of those tasks (six or seven times). This is an expensive operation
taking several minutes. I left it in for now, but if it's proven too slow
the test would have to be reduced to checking a specific base recipe
(e.g. zstd-native) rather than a distant image target.
[YOCTO #15289]
(From OE-Core rev: 0ef7cf324718412c5b6c376acfbc4079ecd7d465)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
systemd boot has completed when system is in "running" or "degraded"
(some services failed) state. Check for that in the systemd settle()
function instead of listing all services and checking their activation
state since some services are in activation state even when whole
system is already in "running" state. Examples of services which can be
in activation state are rootfs auto mounting related generated services.
Without this patch systemd test_systemd_list (systemd.SystemdBasicTests) times
out on an image with dm-verity /usr partition and systemd generated
rootfs:
NOTE: ... FAIL
Traceback (most recent call last):
File "/home/builder/src/base/build/../poky/meta/lib/oeqa/core/decorator/__init__.py", line 35, in wrapped_f
return func(*args, **kwargs)
File "/home/builder/src/base/poky/meta/lib/oeqa/runtime/cases/systemd.py", line 97, in test_systemd_failed
self.assertTrue(settled, msg=msg)
AssertionError: False is not true : Timed out waiting for systemd to settle:
UNIT LOAD ACTIVE SUB
DESCRIPTION
dev-disk-by\x2did-dm\x2dname\x2droot.device loaded activating tentativ
e /dev/disk/by-id/dm-name-root
dev-disk-by\x2did-dm\x2dname\x2dusr.device loaded activating tentativ
e /dev/disk/by-id/dm-name-usr
dev-disk-by\x2did-dm\x2duuid\x2dCRYPT\x2dLUKS2\x2df2b944f394174eb5918cb6af2c6b4cb2\x2droot.device loaded activating tentativ
e /dev/disk/by-id/dm-uuid-CRYPT-LUKS2-f2b944f394174eb5918cb6af2c6b4cb2-root
dev-disk-by\x2did-dm\x2duuid\x2dCRYPT\x2dVERITY\x2d3dd703c88f1946658697a6d57617473b\x2dusr.device loaded activating tentativ
e /dev/disk/by-id/dm-uuid-CRYPT-VERITY-3dd703c88f1946658697a6d57617473b-usr
dev-disk-by\x2duuid-bfbf856e\x2d3c65\x2d4eb2\x2d9ffb\x2d8e0b11641d85.device loaded activating tentativ
e /dev/disk/by-uuid/bfbf856e-3c65-4eb2-9ffb-8e0b11641d85
dev-dm\x2d0.device loaded activating tentativ
e /dev/dm-0
dev-dm\x2d1.device loaded activating tentativ
e /dev/dm-1
...
Fix is to check for the systemd global "running" or "degraded" state.
Note that it would be possible to use a blocking call
"systemctl is-system-running --wait" to exit after system enters "running"
or "degraded" state but using the existing loop for a 2 minute timeout.
(From OE-Core rev: 3b013ae441d117adeda0d9950e02e9f7d0deba2f)
Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since we're changing the return values of the function, add a version so
bitbake can ensure it is using a compatible function.
(From OE-Core rev: 738bf3717002d124958a21a6925b0eca14fef131)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
find_siginfo() returns two different data structures depending
on whether its third argument (list of hashes to find) is empty or
not:
- a dict of timestamps keyed by path
- a dict of paths keyed by hash
This is not a good API design; it's much better to return
a dict of dicts that include both timestamp and path, keyed by
hash. Then the API consumer can decide how they want to use these
fields, particularly for additional diagnostics or informational
output.
I also took the opportunity to add a binary field that
tells if the match came from sstate or local stamps dir, which
will help prioritize local stamps when looking up most
recent task signatures.
(From OE-Core rev: 8721c52041e910bd4d8a9235b52f274f4f02c8a3)
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a comment explaining why we need the jitterentropy ignore.
(From OE-Core rev: ed4b202b11fd18e18502fe4e90f421dce4db8b44)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
upstream commit 003e0694fcd3d5 [ACPI: processor: Refine messages
in acpi_early_processor_control_setup()] changes logging during
boot such that some of the informational messages are caught as
QA issues.
Adding the string to the ingore files so that 6.6+ will pass QA.
(From OE-Core rev: 463d40f2d4bf30becce431bfc1cbdf3b673e8e60)
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If a recipes was modified recommand the use of `CVE_STATUS` instead if
`CVE_CHECK_IGNORE` is used. This is a depreacted variable and will
result in a warning from the cve-check.class and should hence not be
used anymore. [YOCTO #15311]
(From OE-Core rev: 5c264063f6363e5ff88146125217b6089eb22f12)
Signed-off-by: Simone Weiß <simone.p.weiss@posteo.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The recipe being tested is in `testrecipe`, use that rather than the
literal `zvariant`.
(From OE-Core rev: f14ce354890024a3a0a3d4c7efa53eab5db7a6b1)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
test_devtool_modify_git_crates_subpath expects 2 or more git URIs,
change the test from Greater to GreateEqual.
(From OE-Core rev: 4a8d03db55e6a1b07a8585cbf5fbf735ec51f4a7)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Now we've switched to the python script, update the tests to match
that by removing the now unneeded parameter.
(From OE-Core rev: 93989f9b4895506e6ad66a78088a5c2801e2a10d)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
FIXES [YOCTO #12342]
When testing a Multilib image, the package manifest list contains
the fully qualified package name which includes the Multilib Prefix.
This patch adds the MLPREFIX to the package names that are passed
into the @OEHasPackage() decorator to ensure the set isdisjoint()
matches correctly.
(From OE-Core rev: ab87e4f92305b2a664cc473869e1615cf56e0936)
Signed-off-by: Saul Wold <sgw@bigsur.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The tests were not cleaning up after themselves and making assumptions about
memory resident bitbake being stopped by the scripts.
Add cleanup logic to ensure the tests don't break other things and
clean up created files.
(From OE-Core rev: 692dd762a0c817797c28381c6169205fbaeb2705)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It is possible we could crash holding a lock whilst parsing in this code.
Switch to use utils.fileslocked() in the with expression to avoid this.
This may be causing some of our strange intermittent failures in PRServ
tests.
(From OE-Core rev: 4e59db15e5df2cc3d0ae042454812a2d54cef77b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Adds an API that makes it easier to iterate over the package data for a
all providers of a runtime dependency.
(From OE-Core rev: 68bdc219a4a819e83217f5b54c463624af8d3b9e)
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If a package had a provider with a '/' in it (e.g. "/bin/sh",
"/bin/bash", etc.), the generated symlinks were broken due to being at a
hard coded depth. Use oe.path.relsymlink() instead to make a correct
relative symbolic link
(From OE-Core rev: 8b1482a4e2adb7cf358d638265cf116b34078b84)
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Adds API to make a relative symbolic link between two directories. The
arguments are the same as oe.path.symlink()
(From OE-Core rev: 3eeec7f3412e881e51763ef947c82772d3858f09)
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Converts IPK package generation to use zstd instead of xz. zstd has a
much larger compression/speed tradeoff range allowing users to choose
what suits them best, and fast decompression speeds. It also continues
to support parallel compression as xz did.
A new variable called ZSTD_DEFAULTS is provided to set the defaults for
places that want to use zstd for compression; the zst image conversion
command is also modified to use this.
Finally, in order for this to function properly, opkg must include zstd
support, so it is enabled all the time with no PACKAGECONFIG to turn it
off.
(From OE-Core rev: 1bc3e9bbaa670b6128c74c76b4b5264e60ce3463)
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Similar to the sdk test case, build the "guessing-game" example from
https://maturin.rs/tutorial
This test case:
* creates a python3 venv
* echoes "nameserver 8.8.8.8" to /etc/resolv.conf as we need to have
functional DNS to fetch the crates on target
* fetches crates, builds guessing-game crate and wheel
Put the following in your local.conf:
EXTRA_IMAGE_FEATURES += "tools-sdk"
SDK_INCLUDE_TOOLCHAIN = '1'
SDK_TOOLCHAIN_LANGS += 'rust'
IMAGE_INSTALL:append = " python3-maturin"
IMAGE_CLASSES += "testimage"
TEST_QEMUPARAMS ?= "-m 8192 -smp 4"
IMAGE_ROOTFS_EXTRA_SPACE = "10000000"
NOHDD="1"
NOISO="1"
TEST_SUITES = "ping ssh python maturin"
Test with:
bitbake core-image-full-cmdline
bitbake -c testimage core-image-full-cmdline
(From OE-Core rev: ca7e78c8be6aaa2780702eab54715a74fc0dac5e)
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If we are only tracking stdout and are not using self.readsock we end
up throwing an exception blocking further action from the thread. Fix
this by checking self.readsock is not None first.
While we are at it split even into fd, event to make things clearer
and handle the fail path of stringify_event by echoing the hex value
of the unknown flag.
(From OE-Core rev: 5e58737c66090fe009ec49296f3e7d687eb05766)
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Cc: Mikko Rapeli <mikko.rapeli@linaro.org>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The PGO (Profile-guided Optimization) collect data about the typical execution of a program
and then use this data to inform optimizations such as inlining, machine-code layout,
register allocation, etc.
This optimization is by default disabled in rust sources but enabled in Yocto and causing
the reproducibility issue in rustdoc binary. To fix the issue this optimization is set to
it's default 'false'.
More about the optimization: https://doc.rust-lang.org/rustc/profile-guided-optimization.html
With the reproducibility issue fixed, we can enable the reproducibility tests again.
(From OE-Core rev: 189c266378c8c4a918cb205b3888577c7ce76856)
Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>