Use more specific assert statements to make the code more readable and
the error messages more verbose.
Cleanup the asserts of the test case test_initramfs_bundle.
(From OE-Core rev: c7901004138d215612816072f20d367d638d2669)
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Rather than writing hints into log files and verify the hints can be
found, the tests should verify that the artifacts in the deploy folder
are correctly signed. This is a much better test.
u-boot-tools provide a utility fit_check_sign which can verify the
signatures in fit images. Lets use it.
grepping in temp/run. or temp/log. files also does not work if the tasks
runs from sstate and the corresponding run file is not even generated.
(From OE-Core rev: 86e504b4f792eeadd67ea57dd71a62bcb4f16f02)
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Eliminate code duplication with a new function.
Use get_bb_var instead of bitbake -e | grep.
(From OE-Core rev: 0c7b7c5c98217b5f139058533159f61d1989d46e)
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It does not always make sense to collect artifacts and data from the
target on failure, e.g. if testing firmware or if the target is not
running an SSH server.
Allow this by setting TESTIMAGE_FAILED_QA_ARTIFACTS to an empty
value.
(From OE-Core rev: 7036f814baa6550e0b1ac2db37fcd51960ee9e48)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixes [YOCTO 15536]
The postactions retrieval actions currently rely on scp executed
individually on any file or directory expanded from
TESTIMAGE_FAILED_QA_ARTIFACTS. Unfortunately, symlinks are not preserved
with this mechanism, which lead to big storage space consumption. Things
may go even worse if those symlinks create some circular chains. This
mechanism then needs to be updated to preserve symlinks instead of
following them during copy. There are multiple ways to do it:
- create a local archive on the target and execute scp on this file
- use rsync instead of scp for all files
- create an archive and pipe it to ssh instead of storing it onto the
target
The first solution may create pressure on targets storage space, while the
second assumes that rsync is installed on the target, which may not be
true. So the third one is a compromise: tar is very likely present, at
least through busybox, and no disk space is used on the target.
Replace the current per-file scp call by a single call to tar run on the
target. Retrieve the generated compressed archive directly from SSH output,
and feed it to another tar process but on host, to uncompress and extract
it at the same place as before.
(From OE-Core rev: 4aeb10aa38efc6768928fbb74985e36e972b8e46)
Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The ssh target is currently well tailored to easily retrieve textual output
from a command run on a remote target. It could also be used to retrieve
raw data from a command run onto a remote target (for example, to feed this
data directly to another program), but it currently suffers two minor
issues preventing such use case:
- stderr is piped to stdout, so any error log will be mixed in the program
output
- the final output is decoded as utf-8 and stripped
Allow to return the raw, unmodified output by adding an optional "raw"
parameter. Keep it to False by default to preserve the current behavior.
When enabled, do not return a string but the raw output as bytes.
(From OE-Core rev: 8d05dc6e2284b7ed7c32a8215b9c8bf6f7dabf00)
Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
With the retry for the -SIGTERM, it is possible to still see that error
after the 5th attempt and mark the run a success. Check for any
non-zero status in the final check and error out to close the gap.
While there, make the error print match the one above and be a little
more verbose. Also, I'm seeing it take roughly 6 attempts on my local
(very slow) system to pass. So, increasing the number of attempts to
10.
(From OE-Core rev: 3c3ebe591eef6e0479d623ec2237cfea16db5c80)
Signed-off-by: Jon Mason <jdmason@kudzu.us>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We're seeing reproducibility failures where some packages don't appear
in the "from sstate" builds. The common factor is these are all recipes
with PROVIDES = "virtual/XXX".
In a full build from scratch, these are build but in a build from sstate,
there are situations where they aren't. For now, to try and keep builds
working, work around the problem until we can better look into the problem.
It is likely recent taskhash imrovements have caused this to occur more
regularly.
(From OE-Core rev: 68086a333acc54390e4e589ef928dc90da3edb48)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ensure we show the failing exit code in case of failures.
We're seeing autobuilder failures with -15 (SIGTERM) which is probably from
slow boot/init. Retry in these cases for now.
(From OE-Core rev: 127d3bd8d5509ae17e359c1365859fd362ffc74f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
On exceptionally slow systems, the ssh test can intermittently fail due
to a race between when ping works and the networking applications being
brought up. To work around this issue, add some retry logic when ssh
fails to connect. According to the man page of ssh, "ssh exits
with the exit status of the remote command or with 255 if an error
occurred." So, only retry if the return code is 255, and limit the
number of retries to prevent it looping forever.
(From OE-Core rev: f0fe0b490d309cdf1c97754f85a61b5b948b7f28)
Signed-off-by: Jon Mason <jdmason@kudzu.us>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
During testing we're finding some kernel oops messages and other key kernel
errors such as irq issues are not triggering our log parsing.
Add those keywords to the list of things to scan for, making such
failures much more visible.
(From OE-Core rev: ef4623be60226e8caaf7813705aa4941ff354eac)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This recipe needs to be renamed because the "-cross-" substring in the
name triggers the cross architecture detection in sstate, but this
recipe is not actually a cross recipe.
(From OE-Core rev: 812c114a8a872ad59b19c7ffb8c1f230fc64c823)
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fix this error where 'coredumpctl info' warns that the coredump is still being
processed:
```
AssertionError: 1 != 0 : MiniDebugInfo Test failed: No match found.
-- Notice: 1 systemd-coredump@.service unit is running, output may be incomplete.
```
(From OE-Core rev: ad1ce64f5c1f22a7b10025d8cba20dc74354ac81)
(From OE-Core rev: ed562345d5a5f2edb649028553199f3f7966e19e)
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>
Where we're using DL_DIR in sdk archive to try and cache testing artefacts,
copy into the cache so that it gets populated and this doesn't have to be done
manually. Currently we're making a lot of repeat requests to github as this
wasn't being populated.
(From OE-Core rev: a3284958a2cc6c90a5fac26976bddc23f821c972)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add test_devtool_upgrade_recipe_update_extra_tasks test case
to test upgrade of python3-guessing-game from v0.1.0 to v0.2.0
which will exercise the update_crates task during the upgrade.
Add python3-guessing-game_git.bb.upgraded and
python3-guessing-game-crates.inc.upgraded which are the 0.2.0
variants.
Check that the new recipe file has the expected differences.
Check that the new -crates.inc file has the expected differences,
which should be reproducible because of Cargo.lock.
(From OE-Core rev: d14368bc775cbf5142c1312dfc2076e328381aef)
Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Update the test for the addition of SPDX_VERSION to the deploy path.
(From OE-Core rev: 055e8c21908127722abad9e992d6408d8697a119)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
test_systemd_coredump_minidebuginfo was getting skipped in CI, because the feature isn't enabled per default in any image at the moment.
Add this selftest so that test_systemd_coredump_minidebuginfo gets executed in CI.
(From OE-Core rev: 377603886f0d975ec23f32ee462693d4e3370aaf)
Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Usage and arguments are not necessarily self-explaining, thus add a bit
of documentation here.
(From OE-Core rev: 62343333d50b75ad04a4220bcf0990e0a89996a0)
Signed-off-by: Enrico Jorns <ejo@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The test was failing with core-image-full-cmdline which uses sleep from coreutils instead of sleep from busybox.
(From OE-Core rev: 8497edf0c56da34ea7b7509b8fcd46fcba2fd0e3)
Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The io, cap_bounds and filecaps groups were removed in latest version
of ltp. Tweak the test class to match.
(From OE-Core rev: d5460f15cbc56e52cbbc09785a777278208da7f7)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The builtin command "sleep" was getting executed instead of the busybox binary.
Hence "pidof sleep" was empty and the test was failing.
(From OE-Core rev: 3188f3f0718b8a59bc9e3cae4cdf74e82bdb86c3)
Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The Eclipse plugin is very dead, we don't need to carry the manual test
guide for it.
CROPS has its own automated testing, nobody is doing the testing by hand.
(From OE-Core rev: f74a634f199782ce5fa3023d02079c1534bc4aeb)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
go.bbclass uses a special do_unpack function that causes the git root
to be different from S. Verify that it unpacks as expected.
[ YOCTO #15483 ]
(From OE-Core rev: fab0c737b95b8d0c0bbf58336bc308776c956406)
Signed-off-by: Ola x Nilsson <olani@axis.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is useful not just in cdn/local cache tests, but also in the build bundle test,
and so should be applied by default.
(From OE-Core rev: 37f0ba71868ef1907883ab751c82ba222fbc87da)
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>
This allows reusing the check function in tests other than CDN/local mirror
ones, such as sstate bundle testing.
(From OE-Core rev: 8a4ab4c063f307b480d98c6aac1e76cde0b9e99e)
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>
Instead of having a test called eg "assimp", rename it to "cmake" as the
point of the test is to verify that CMake works. This should make it
clearer what the tests are actually exercising.
(From OE-Core rev: ccf7fdc0e5b6df218b319f972cd5ba142c06c243)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
To enable this test to work with gcc 14, pass the option to make
warnings non-fatal. Also upgrade to version 5.4.1 from 5.3.1.
(From OE-Core rev: c3df6287ae26dc9d7f11eb7e26fdbcaefe4dfead)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
librdfa hasn't had a commit for a decade now and as such has problems
with modern compilers (specifically gcc 14.1). Switch the recipe
creation test to something much simpler that we also control: dbus-wait.
(From OE-Core rev: d801de1f702d8d0def55011b5b6ad39d85f978f1)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Several recipes have S pointing at a directory that does not exist.
Set S in these cases to somethig valid making the metadata and
recipe behaviour more consistent.
Tweak one of the QA test diff offsets to match the changed recipe.
(From OE-Core rev: 22f1f5849a9a3bf287dbe8933546e52e39ddc86e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The only real reason for oe-local-files was to support S = WORKDIR. With changes to
drop support for that, it makes sense to simplify devtool and to try and make both
the code and the processes/workflows simpler.
This patch drops support for S = WORKDIR, removes oe-local-files and then updates
the test cases to match this new situation.
At the code level, we assume we can always now track code changes using git and
that things committed into git are handled as patches (as before) but delta against
HEAD is saved as specific file level changes to the recipe.
One test is disabled as it is no longer approproate. It is being keped until we can
make WORKDIR != UNPACKDIR at which point it should be revisited.
(From OE-Core rev: ce8190c519052fed10b5233697b69a75868db45a)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Replace references of WORKDIR with UNPACKDIR where it makes sense to do
so in preparation for changing the default value of UNPACKDIR.
(From OE-Core rev: 1f18b9a512800860d5153d89eb82b56388efad6f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Similarly to centos 8, centos 9 doesn't support the render device we need
for this test.
(From OE-Core rev: c2be3afabf84f287c90b61ae2509728a6634fb8f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Sometimes the debuginfod selftest fails due to a timeout, because it
spends too long scanning a huge deploy directory that due to what tests
were ran previously can contain 30K packages.
The test only needs a subset of the feed, so use the new localpkgfeed
class to construct a minimal feed before running the test.
[ YOCTO #14937 ]
(From OE-Core rev: 855376f518b28248ccd82ef5b2e89e6a8c970542)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If usrmerge is in DISTRO_FEATURES, assumptions in one of the tests would
fail. Improve the test so it works in both cases.
(From OE-Core rev: afa211746a2aa1993a54cc5a5e1937679341da8e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If usrmerge is in DISTRO_FEATURES, assumptions in one of the tests would
fail. Improve the test so it works in both cases.
(From OE-Core rev: 68a27d307a7042e242c49cf3d069469f40e09902)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This reverts commit ab6d3e3d64
from poky repository.
The previous reverted commit was a workaround. The fix
"oeqa/selftest/devtool: fix _test_devtool_add_git_url"
tackle the issue. So, the workaround is not needed anymore.
(From OE-Core rev: 731f47ecfd8ad6558aac629806810789c623986b)
Signed-off-by: Alexandre Truong <alexandre.truong@smile.fr>
Reviewed-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patch is a follow-up to the bug#15466.
As a reminder, the bug was about devtool’s submodule detection
checking for HEAD when a version is being passed.
As Vincent Kriek pointed out:
the --version that is being passed to devtool is only used for
setting the PV value in the recipe. To take into account the tag,
we add --srcrev to the command:
devtool add --srcrev v3.1.0 --version v3.1.0 mbedtls git://git@github.com/ARMmbed/mbedtls.git;protocol=https
Changes to _test_devtool_add_git_url have been made to take
into account the srcrev. srcrev will be passed as an optional
parameter because the test_devtool_add_git_style1
does not need the srcrev contrary to test_devtool_add_git_style2
Fixes [YOCTO #15466]
(From OE-Core rev: a8686f3641e4407dee3d807898ffd620e2732b78)
Signed-off-by: Alexandre Truong <alexandre.truong@smile.fr>
Reported-by: Alexandre Truong <alexandre.truong@smile.fr>
Suggested-by: Vincent Kriek <vincent@coelebs.dev>
Reviewed-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We don't have a test to check if we can correctly devtool update-recipe/finish
into another layer. So update the existing test_devtool_update_recipe_local_files
to also check the updates into another layer.
(From OE-Core rev: bd44c895d36e246a25c7a6e40bf9f4089dc7a297)
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If testtools and/or subunit modules are not found we get the following backtrace
(example for testtools):
NOTE: Starting bitbake server...
Traceback (most recent call last):
File "<..>/poky/scripts/oe-selftest", line 60, in
<module>
ret = main()
File "<..>/poky/scripts/oe-selftest", line 47, in main
results = args.func(logger, args)
File "<..>/poky/meta/lib/oeqa/selftest/context.py",
line 391, in run
rc = self._internal_run(logger, args)
File "<..>/poky/meta/lib/oeqa/selftest/context.py",
line 377, in _internal_run
rc = self.tc.runTests(**self.tc_kwargs['run'])
File "<..>/poky/meta/lib/oeqa/selftest/context.py",
line 161, in runTests
return super(OESelftestTestContext, self).runTests(processes, skips)
File "<..>/poky/meta/lib/oeqa/core/context.py", line
91, in runTests
result = self.runner.run(self.prepareSuite(self.suites, processes))
File "<..>/poky/meta/lib/oeqa/selftest/context.py",
line 154, in prepareSuite
from oeqa.core.utils.concurrencytest import ConcurrentTestSuite
File
"<..>/poky/meta/lib/oeqa/core/utils/concurrencytest.py",
line 22, in <module>
import testtools
ModuleNotFoundError: No module named 'testtools'
Fix this by adding a custom callback on -j/--num-processes parameter to
check testtools and subunit modules. Fallback to serial testing if
missing. This strategy is already used in sdk/context.py
(From OE-Core rev: 35284404473b2c2d9f69594582868ed66ef3525e)
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-l option is specific to df provided by coreutils, if df
applet from busybox is used then it does not work and fails
like below
Fixes
df: invalid option -- 'l'
BusyBox v1.36.1 () multi-call binary.
Usage: df [-PkmhT] [-t TYPE] [FILESYSTEM]...
DEBUG: [Command returned '1' after 0.71 seconds]
DEBUG: Command: df -hl
Status: 1 Output: df: invalid option -- 'l'
it seems worth a compromise to show remote mounted filesystems if any
during ptests and it works with both df implementations
(From OE-Core rev: 75cc1ea4348a2294fdc5ab20530fcff27056ff06)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The problem is the following:
AssertionError: 'gitsm://git@github.com/ARMmbed/mbedtls.git;protocol=https;branch=master' != 'git://git@github.com/ARMmbed/mbedtls.git;protocol=https;branch=master'
Mbedlts made changes to their repository, adding a sub-module, thus the
assert triggers an error with the url:
git://git@github.com/ARMmbed/mbedtls.git;protocol=https;branch=master
456a54da8e
was the upstream change.
To fix the issue, the url has been changed to:
gitsm://git@github.com/ARMmbed/mbedtls.git;protocol=https;branch=master
(From OE-Core rev: 9ac737fbe05c85ec8333b396ce2f89de6654916f)
Signed-off-by: Alexandre Truong <alexandre.truong@smile.fr>
Reviewed-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Under some load conditions, the result event can come back before the
command complete event. If that happens, the code would hang
indefinitely.
Rework the code to wait for both events and avoid the hang.
(From OE-Core rev: 8cfc94a4404c54bc73eab9f98d9da1f84c2135ad)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patch adds to run_test_sstate_creation so that it also tests
that sstate directories don't accidentally pickup umask permissions
from the user upon creation.
[RP: Python style tweaking]
(From OE-Core rev: 7d6eb828e97ad3f27d94efdccd920fb2aef36743)
Signed-off-by: Eilís 'pidge' Ní Fhlannagáin <pidge@baylibre.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>