If oe-selftest is run without -j, the separate build directory "build-st"
isn't cleaned up afterwards. Mirror the behaviour of the -j option to
handle this the same way, only preserve upon failure.
To do this, the remove function needs to be moved to the selftest
context module so that it can be accessed without requiring the
testtools and subunit modules the -j option requires.
A dummy wrapper class is used to wrap the tests and clean up afterwards.
[YOCTO #13953]
(From OE-Core rev: 20e7b1eeeb12f1cf4bd9934e0a5733c6bbe64372)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1b376ade430d40d3cfe9c18f200c764d622710e5)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add support for running wic images with EFI as testimage.
Introduces a variable called QEMU_USE_OVMF for configuration.
(From OE-Core rev: 458a860b45c0fb5bb3162b5a112b518c3339c1dd)
Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3af8aaff68ed332d812ea7dc184d392700ad7882)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The output content is created in current directory, because json content
has no defined absolute path to WORKDIR as in bitbake.
(From OE-Core rev: 394d90efdc8d06dc61114bf6279ba6d094667289)
Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 14203b2cb9aa62f55cb12230ac8012b3cd995be7)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Occasionally we've been seeing leftover threads from runCmd. The stdin test
assumes we clean up all threads but the code assumes that the daemonic thread
can be left behind.
The issue can be reproduced by adding a time.sleep(10) to the end of
writeThread() which will mean it stays resident past the end of the command.
We may as well add it to the threads list and clean it up properly,
hopefully removing the race in the tests from the autobuilder.
[YOCTO #13055]
(From OE-Core rev: 9034ac93518b74dae5e05776c0bce085171cdd1f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9b251dcaffe52d32c1faf41ab57ab414fbc29722)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This ensures that builddir is updated correctly to point to the new
selftest build directory when we're given a list of test suites instead
of a list of test cases.
(From OE-Core rev: 6812affe76ee2704a8008d58ffc6a2e87b543f1d)
Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 56e211d0f3c6cb84f5982e5de00faeeed69c1912)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This may be useful if the parent directory of the original builddir is
not writable, on a lower performance drive, etc.
(From OE-Core rev: 27cec9c111bca84554d94eeb71fb3d3fe9a77481)
Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit dab719e5f1964fd48e9a35e6b9db1508b5414540)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We can't assume that rpm packaging will always be enabled when running
oe-selftest. In particular when using nodistro instead of poky this is
not enabled by default.
(From OE-Core rev: b69ec712c690aa279996d5a9395dc16ae8402a3e)
Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 23df3024664ec56dbbe8865ef3953d2c33a7a2cb)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We're seeing:
WARNING: bitbake/lib/bb/cookerdata.py:136: ResourceWarning: unclosed file <_io.FileIO
name='tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemurunner_log.20200601181912'
mode='ab' closefd=True
which can only be caused by the qemu.stop() method not being called.
Tweak the error handling to fix the blanket exception handler which
is likely meaning this function isn't getting called.
(From OE-Core rev: bd2d32903f208b6a70abaa29b980db1498b84a02)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ee707090848d793e3b2d82dd3861ae22222682c0)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When falling back from detecting ip from /proc/./cmdline the
output of runqemu is acutally
'Network configuration: ip=192.168.7.2::192.168.7.1::255.255.255.0'
which doesn't match the given regex and leading to run failure, although
IP is detectable.
Fix regex by inserting an optional 'ip=' prefix to first IP
(From OE-Core rev: 9c2efe41d5d894094552c4bbc4180675a5aac751)
Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 75f2471d15fab024775c59cb70c54e3f25f9ae72)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If a terminal fails to spawn() we should continue looking.
gnome-terminal, in particular can be present but not start.
(From OE-Core rev: 5ca00faa9c085fef1781b66561de461e9cc5b117)
Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6e4babdeee38d32002a4c9129e77466ae4156dd7)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is printed by testimage, but isn't actually saved.
It's a useful metric for tracking execution times.
(From OE-Core rev: 866c652c850d9e23300218fcbe0b9e4b3ade2ebf)
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8fc19639f47b959a141dae231395bbababa644e1)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If you fail to setup the tap devices, runqemu will error quickly
however stdout/stderr are not shown to the user, instead a SystemExit
traceback is shown. This could explain some long since unexplained
failures on the autobuilder.
Rework the error handling so SystemExit isn't used and the
standard log failure messages can be shown. The code could
likely ultimatley need some restructuring to work effectively.
(From OE-Core rev: 83b8e66b66aa9848ed9c8761a21cb47c6443d0c6)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We had a mystery failure on the autobuilder where runqemu appeared to
be failing as a logfile directory no longer existed. The key to
reproducing was running a runqemu where the image was deleted (as
devtool does), then running another runqemu test. E.g.:
'oe-selftest -r devtool.DevtoolExtractTests.test_devtool_deploy_target wic.Wic2.test_qemu_efi'
This then tries to write to the logfile from the first test, the
image directory was deleted and we get strange failures.
The fix is to remove the logging handler when qemu is stopped.
(From OE-Core rev: 924b020eacf111b4fd4d731b363084e254a3422d)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
sysroot-test depends on virtual/sysroot-test which we build for one machine,
switch machine, switch provider of virtual/sysroot-test and check that the
sysroot is correctly cleaned up. The files in the two providers overlap
so can cause errors if the sysroot code doesn't function correctly.
Yes, sysroot-test should be machine specific really to avoid this, however
the sysroot cleanup should also work.
This adds a test for bug:
[YOCTO #13702]
(From OE-Core rev: 31a8b4935e673aba8a1147c4a2fb510b1a8bc3ce)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
along with systemd upgrade, error message related change
network interface have changed, update it.
(From OE-Core rev: a8b2cd7470bcc25527577b95a26a0a528949232d)
Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* with Ubuntu 20.04 which is using python 3.8 I'm seeing a lot of errors like:
ERROR: libxml2-2.9.10-r0 do_package: Can NOT get PRAUTO, exception No module named '_sysconfigdata'
not sure what caused this from python 3.8, but this seems to work
* PRserv is enabled with:
PRSERV_HOST = "localhost:0"
(From OE-Core rev: 4b26eaf7152fb712aba47a0c746333578f58ee8d)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As opkglibdir starts with a /, os.path.join will ignore
self.target_rootfs, leading to an attempt to remove /var/lib/opkg.
This only fails if it exists on the host, explaining why this remained
undiscovered for long.
(From OE-Core rev: fc974977cea389f54e7fc7de7b1c8fd3d8bafe58)
Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If there already is a package providing (and conflicting against)
packages what should be installed, apt will try remove the conflicting
package (target-sdk-provides-dummy) and any that depend on it (like apt
and dpkg). This usually fails because of the protection of essential
packages. In that case, no -dev/-dbg packages are installed to the SDK.
Avoid this problem by checking which packages are already provided and
removing them from the list to be installed. Also sort the list to make
it easier to read when debugging.
(From OE-Core rev: 3ffb339dd55f8ca7c952fd3390608510f772e19f)
Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is needed for a later change to avoid installing packages which are
already provided by an installed package.
(From OE-Core rev: ad72dfaaa2caf2c39d033dc1682f0bbbbe45dbbd)
Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In commit 7d214b34e11dc57316ed5c1c7747c4601286f6d2, only the code in the
for loop was modified to store the pkgarch value. The code used if there
was no empty line at the end was not modified.
Instead of fixing the duplicated code, remove it and just make sure that
a final empty line is processed.
(From OE-Core rev: a7b93c695b23d015607b179d98526b9b14c03d45)
Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
apt install can decide to remove already installed packages if there are
conflicts. Avoid this by explicitly specifying --no-remove. This will
then cause a "E: Packages need to be removed but remove is disabled."
message.
(From OE-Core rev: 9605a488b55042add012e9aeef13ab3f4e70e6e5)
Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add helper function to get the host compiler and version.
Do not assume compiler is gcc.
NOTE: cannot set env to d.getVar("PATH") as that does not contain
the session PATH which was set by environment-setup-... which
breaks the install-buildtools use-case
(From OE-Core rev: 88712929354ff9c876bb1e48b6f15c33af5f2bbc)
Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Utils can not detect GCC 10 correctly due to wrong regex.
It generates this error "ERROR: Can't get compiler version from gcc --version output"
Sub-version numbers should be 1 or more digits instead of 1 only.
(From OE-Core rev: 186fe4a3d390a52b87282c3e694ce3251e45ee78)
Signed-off-by: Charles-Antoine Couret <charles-antoine.couret@mind.be>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Set the json result output dir in the oeqe runtime context to create
testresults.json file by default for exported runtime test runs.
Use current datetime for the json result property name (not DATETIME
from build) to allow multiple result entries.
(From OE-Core rev: e6c73ed8d3c5d45f387cab619ca73c21e850582f)
Signed-off-by: Stefan Kral <sk@typedivision.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Stopping systemd-timesyncd doesn't prevent it being restarted by a
different transaction within systemd. Disable the service instead during
the date test to ensure it can't be restarted.
(From OE-Core rev: 3dd4e637c11abdd6341a3e0c6b67639d3d703862)
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Acked-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The fetcher GITDIR variable wase dropped a while back, drop the
obsolete reference to it (thanks Robert Day).
(From OE-Core rev: de035e687e26cef96e9b737c47bfc291bdfbea48)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Poking changes into config_data and expecting them to appear in the recipe
is a bad idea, place the data in recipedata directly instead.
(From OE-Core rev: 191dd811900ace0e0af2e97221e10461fae0d9bd)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake dropped support for this piece of functionality (the test was
the only user), drop the test too.
(From OE-Core rev: 9ba0708e34eb038dc3ea5a877a5837c534cf165f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Printing a warning for something which is harmless just causes the
people monitoring the autobuilder more work. Silently ignore this race.
(From OE-Core rev: 2246c8d2466d3876fd1b27fd1943aa4bbf28e14e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When booting weston images this error is seen commonly, but Qemu boots
the image fine, session seat error is thrown by libweston perhaps using
--seat option or setting XDG_SEAT variable in weston.ini could fix it
[YOCTO #13828]
(From OE-Core rev: 1f9d36722132c93c19651ea59062b3d5be01bb72)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add the option --json-result-dir to oeqa core context to enable
testresults.json creation for test runs via testexport.
Eg. oe-test runtime --json-result-dir .
(From OE-Core rev: 9d8edf33d1f5d89b310923b0aa3cc967317c7c49)
Signed-off-by: Stefan Kral <sk@typedivision.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We want to test the SDK with PATH from the original host, not with our own
tools injected via HOSTTOOLS. It even uses some tools which aren't in
HOSTTOOLS.
This is necessary after changing the SDK to not reset PATH to the system
default which is bad for other reasons and brings the testing into sync
with that change.
(From OE-Core rev: 87c9602fd0dedc7bcf75b822aaf5f6ebfc17737c)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This avoids the seeing broken replacements like:
oe-selftest-centos/build/build-st-926tools/sysroots/x86_64-pokysdk-linux/etc/ssl/certs/ca-certificates.crt
which understandably break builds.
(From OE-Core rev: 04ee0e8b95cd8ed890374e0007f976684206b630)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
On the system whose cpu doesn't support rdrand,
there comes below message when start rngd service
#systemctl status rngd
[snip]
Feb 25 05:08:14 qemux86-64 rngd[133]: [rdrand]: Initialization Failed
[snip]
Actually the failed message doesn't matter as it
only indicates one entropy source as rdrand fails
to initialize and won't affect rngd function.
So add to 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 "/buildarea/layers/oe-core/meta/lib/oeqa/core/decorator/__init__.py", line 36, in wrapped_f
return func(*args, **kwargs)
File "/buildarea/layers/oe-core/meta/lib/oeqa/runtime/cases/parselogs.py", line 370, in test_parselogs
self.assertEqual(errcount, 0, msg=self.msg)
AssertionError: 1 != 0 : Log: /buildarea/tmp/work/qemux86-64-wrs-linux/wrlinux-image-std/1.0-r5/target_logs/daemon.log
Central error: 2020-03-06T09:45:12.774286+00:00 qemux86-64 rngd[134]: [rdrand]: Initialization Failed
Reference: https://github.com/nhorman/rng-tools/pull/84
(From OE-Core rev: 09c4f9068858bf59eb60584a497f987bdd1e196e)
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add missing import os statement to the oeqa runtime ptest.py
(From OE-Core rev: e41c92c60694052c8292c1ea6b3d0b427aafafd7)
Signed-off-by: Stefan Kral <sk@typedivision.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This will be needed for making xz compression more deterministic,
as xz archives are created differently in single- vs multi-threaded
modes.
This means that due to bitbake's default of using as many threads
as there are cores in the system, files compressed with xz
will be different if built on a multi-core system compared to
single-core systems.
Allowing cpu_count() here to return a lower bound, will allow
forcing xz to always use multi-threaded operation.
(From OE-Core rev: c6dda204e15c5b27559f7617b18a7b3ce604e2f8)
Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Removed ffsb copying file and associated runtest file fs_ext4
(both removed in this release).
Added LIBS=-lfts for MUSL.
Removed patches (accepted upstream)
* 0001-mkswap01.sh-Add-udevadm-trigger-before-swap-verifica.patch
* 0001-testcases-fix-an-absent-format-string-issue.patch
* 0001-nm01-Remove-prefix-zeros-of-the-addresses-output-by-.patch
Merged patches
* 0006-rt_tgsigqueueinfo-disable-test-on-musl.patch
(into 0001-build-Add-option-to-select-libc-implementation.patch as they
touch the same files)
Refreshed patches (some tests have been fixed for musl)
* 0001-Add-more-musl-exclusions.patch
* 0001-build-Add-option-to-select-libc-implementation.patch
* 0002-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch
IMHO this one shouldn't be needed not, but CI still fails without it
Updated status
* 0008-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch
* 0001-syscalls-Check-for-time64-unsafe-syscalls-before-usi.patch
(From OE-Core rev: 62e2063698477a13c55ae370451e52a2f1e18e45)
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We've found we need a way to cause a change in signatures and move
to a new hash 'namespace' with hashequiv. This introduces a variable
which allows us to do this.
(From OE-Core rev: 1c2d5aeae2fa2dfc16bc60b6cf0b310f826337fd)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This can be useful with a more specific, targeted and robust set of ptest
packages; the benefit is that ptest regressions are caught as they happen
and can be more easily traced to changes that caused them.
The existing AB ptest image continues to be expected to fail, my observation
of the AB runs is that the full set of ptests is not robust enough
(particularly around socket/network related tests) and sporadically fails
in random places. This can probably be addressed by making ptests exclusive
to a worker (e.g. there is no other workload happening at the same time as
ptests).
(From OE-Core rev: 102afcc7ea7d7673183f272a29ab233084ad168b)
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
I spotted this by noticing ptests started to unexpectedly pass,
which shouldn't happen yet.
(From OE-Core rev: 1cd6e9a8fdfef927916c6cea2371fc0430b1ffdf)
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
On the autobuilder a ptest log with 2.1 million lines took around 18 hours to
process. This is clearly crazy.
We can tweak the processing code to:
a) Stop repeatedly joining large strings together (append to a list instead)
b) Use one startswith expression instead of multiple re.search() operations
With this change it takes 18 hours down to around 12s.
[YOCTO #13696]
(From OE-Core rev: 01c9f40b979e36a53e789a6bedd89b6d9557dce3)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Now selftest is using its own copied build directory, we can stop worrying about
copying files around as backup, and drop the SIGTERM handler to try and restore
them, simplifying the code.
(From OE-Core rev: b8ea8a910267fee4bb9e57f24ba829064e22d016)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>