If you build buildtools-tarball with opkg as the package manager, it
passes in an empty target packages list and fails.
This allows the code to cope with an empty package list (in sync
with the rpm backend).
(From OE-Core rev: b460afb12bb16a4b56d800c953c5f5c7da0bff84)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When getting the failures/errors/skipped lists, include the
unit test without the full path.
This issue was found on this scenario
| test_1_logrotate_setup (oeqa.runtime.logrotate.LogrotateTest) ... FAIL
| test_2_logrotate (oeqa.runtime.logrotate.LogrotateTest) ... ok
Where test_1_logrotate failed and test_2_logrotate should not have
run because
@skipUnlessPassed("test_1_logrotate_setup")
def test_2_logrotate(self):
(From OE-Core rev: 8715beff7b910209627da3726b18b7abf801b557)
Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently the logic to check if a test failed was
to check for an exception in the thread, but some
decorators used in the syslog runtime test would
generate and handle exceptions; this will mess
with the current check logic and will dump the
host and the target as if the test failed.
This patch changes the check logic to verify if
the test that just happend is in the failure test
list and dump the host and target accordingly.
[YOCTO #8406]
(From OE-Core rev: 8b97d9320b989023c62db8246f5d8d2126c3723e)
Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When copying the exported tests to a remote machine ssh_target_log can
be transformed from softlink to file which will throw an error when
trying to run again.
(From OE-Core rev: 2bc7732c27e192821b9ebb76e1dfba739cf5b088)
Signed-off-by: Lucian Musat <george.l.musat@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently the output from qemu could contain control
or Unicode characters; having such characters in the
log will cause an internal server error when sending
the report to error reporting web. Control characters
can be found in the command line used to run quemu too.
This change sanitize the output from qemu and the
command line used to run qemu, this way the logs doesn't
contain control or Unicode characters and this will solve
the issue of error reporting web and generate better
logs.
The only Unicode character found in the qemu output
is the copyright symbol, it really doesn't interfer
removing Unicode characters with debugging.
[YOCTO #8225]
(From OE-Core rev: 9f25f723828d6709aad581267ccc63d2ade1ff5c)
Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When not doing actual tests with testimage, like for example
exporting tests, the link to the log file was still created
although the actual log file was not existent. Fixed it by
moving the link creation part into the run() method.
(From OE-Core rev: 6950a5b1220d1ff81dae15195fe0d8e06977fec8)
Signed-off-by: Lucian Musat <george.l.musat@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* extract: Copy all local source files (i.e. non-compressed/non-arcived
SRC_URI files that have file:// URI prefix) - excluding patches - to
the srctree repository. The files will be placed in a subdirectory
called 'oe-local-files'. The oe-local-files directory is not committed
to the Git repository, but, marked to be ignored by a .gitignore file.
The developer can manually add and commit the files to Git if the
changes to them need to be tracked.
Before this patch, local source files (were copied (and committed) to
the srctree repository only in some special cases (basically when
S=WORKDIR) when doing devtool-extract. For most of the packages local
files were not copied at all.
* update-recipe: This patch causes the local files to be 'synced' from
the srctree (i.e. from the 'oe-local-files' subdirectory) to the
layer. Being 'synced' means that in addition to copying modified
files over the original sources, devtool will also handle removing and
adding local source files and updating the recipe accordingly. We
don't want to create patches against the local source files but rather
update them directly. Thus, 'oe-local-file' directory is ignored in
patch generation when doing update-recipe, even if committed to Git.
This functionality is only enabled if the 'oe-local-files' directory
is present in srctree.
[YOCTO #7602]
(From OE-Core rev: a3bb5bd25b72bd1bcc156dabd0ffa2d9184bb160)
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
New method for checking the status of the working tree of a repository.
(From OE-Core rev: 4e5eea06a77eca7311209b0b650e79e816713ab9)
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In order to remove some code duplication. The method currently only
does checking of workspace dir.
(From OE-Core rev: 5d7cd3dc9e497bb3c2aba4cf2af3e3ee84dd7a2f)
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Makes it possible to define which paths are included in the patches.
(From OE-Core rev: 640e57b423e5a8f0e4572eac985f87139780f247)
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The makefile test was hardcoding a test for gcc. In the SDK context, we
need to use $(CC) to use the cross compiler.
(From OE-Core rev: d28ddc23bbf232901ae07f7a01f821ecc4b79e32)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
rootfs.py: added a test in DpkgOpkgRootfs which skips the
get package post installs step (get_pkgs_postinsts), when
PACKAGE_INSTALL is empty.
[YOCTO #7664]
(From OE-Core rev: 2d5fb43ec647e8445fc8e8a5caba771c0361a539)
Signed-off-by: Alex Franco <alejandro.franco@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Instead, simply return the version of the recipe, so that the upstream
version checker will declare that they match.
(From OE-Core rev: 10c948a67546dd4ed2ac00b5210ef4b3eeca9401)
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Added some fixes for meta-intel boards and moved some
errors from specific images to common.
(From OE-Core rev: ccbb12f9ec7c0a5714a8b1a24efb46755408c256)
Signed-off-by: Lucian Musat <george.l.musat@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
To avoid logs being overwriten when running the automated
tests multiple times, log files include timestamps in
their names and a link is created to point to the latest one.
(From OE-Core rev: 0aa6af4aec6f9773ec2aea929deb3a1ed049cbb9)
Signed-off-by: Lucian Musat <george.l.musat@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If qemu didn't start correctly, we may not have registered the child
signal. This results in a nasty traceback which confuses the underlying
issue. Cleanup this code and make the handler cleanup conditional.
(From OE-Core rev: 0ead936925c61aaaa7a819f6c5b999ba3a4daeda)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The SDK environment wasn't being sourced when running these test
commands, meaning in some cases the cross compiler was being tested,
not the SDK tools. This is clearly not the intent so fix this by
ensuring the SDK environment is present. This fixes test failures
in multilib SDKs.
(From OE-Core rev: 39c56f7c280cfe6bf40ea9145f3f7060b565bc62)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When configure multilib, "bitbake <image_bb> -c populate_sdk" should
install all arch toolchains (for example, 32 and 64bit), but rpm not
handle the multilib requires correctly, for example:
lib32-packagegroup-core-standalone-sdk-target requires lib32-libc6, rpm
may pull in libc6 rather than lib32-libc6, there are the similar issue
when:
IMAGE_INSTALL_append += "lib32-packagegroup-foo foo"
Use bitbake to expand the RDEPENDS will fix the problem since bitbake
knows mlprefix and handle it well, but rpm doesn't.
This patch only affects when:
IMAGE_INSTALL = "lib32-foo foo"
Doesn't affect:
IMAGE_INSTALL = "lib32-foo1 lib32-foo2"
Or:
IMAGE_INSTALL = "foo1 foo2"
[YOCTO #8089]
(From OE-Core rev: fc469e51475b5272b4047d4713eb99529193ac8a)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #6929] this test validates the feature introduced in bug 6929
(From OE-Core rev: 2642fb1e00878baa8eaec80015ff3678cb3088f8)
Signed-off-by: Daniel Istrate <daniel.alexandrux.istrate@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently if qemu fails when running a selftest and
tries to run some commands on the host it will fail
because some variables required by the Dumper class
do not exist because testimage was not included.
This change adds a default parent directory to save
the dumps for the host or target. Also adds default
commands to run if no commands were provided to the
class. With these changes the previous errors using
selftest don't show anymore.
[YOCTO #8306]
(From OE-Core rev: 713beaf84f8b8ab415b7a8ccba8a4a2aff7f98e5)
Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We don't need DEPLOY_DIR for every runtime test so there is no
need for it to be mandatory.
(From OE-Core rev: 9f89e8e0bf2ba65f2cff5adb3050d6a701dc486a)
Signed-off-by: Lucian Musat <george.l.musat@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In order for the test export runner to work oetest needs to be
separated from bitbake environment. There is no need to use bb
import here so we can use a logger instead.
(From OE-Core rev: 22bd8a600823306d7c5965a9a69b8e8888993513)
Signed-off-by: Lucian Musat <george.l.musat@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Sato uses busybox that fails to write log using echo "" because
dmesg output can contain special characters.
[YOCTO #8377]
(From OE-Core rev: 89107d0e01235b8cff70c0325723d2a99d2c336c)
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The Starting logging thread message is also executed on run() inside
LoggingThread class.
(From OE-Core rev: 2ad7308ee7166641eff99f3b9fe6794de143f6bc)
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
LoggingThread is used for receive console output from QEMU
over TCP, so add filter to only wake poll on read events,
also change the event mask variable name to be more descriptive.
This fixes HIGH CPU consume caused by wake on ready to write
events.
(From OE-Core rev: 7b6c9b6327638c9731cea80a52d30d4a8fb6e081)
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Upon further reflection, it seems to me that this bbappend ought to just
be deleted at the end of the build. This keeps things simple; you never
have to remember to delete any files to get back to where you were
before with the image. This means we can also drop the slightly awkward
message reminding the user how to do that. I've also updated the test to
look at the image manifest to determine if the command has worked
instead of looking for the (now deleted) bbappend.
(From OE-Core rev: f6b90bceaedf9bad3d111e6ca1fa79e59f472c73)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
These functions ostensibly allowed parsing a recipe without bbappends
but this clearly hadn't been tested because a variable was unassigned in
both of them in that case.
(From OE-Core rev: d2bb9f08303bb120e811c03af2f5339e8f262cfa)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Unfortunately it appears that under certain circumstances, a failed
git am followed by git am --abort won't clean up any changes the patch
might have made - this was seen when running "devtool extract" on the
unzip recipe; unzip-6.0_overflow3.diff has a malformed date as far as
git am is concerned but it triggers this condition. Add a
git reset --hard HEAD followed by git clean -f in order to recover from
this scenario.
(From OE-Core rev: 21fdbd76f458b70a6646dd6d0749e3a465ebd320)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Variables such as SRC_URI which are space-separated may also contain
Python expressions (${@...}) which themselves contain spaces that
shouldn't be split when splitting the value into items. In order to
ensure this we need to use a custom splitting function instead of just
string.split().
This issue could be seen when doing "devtool modify sudo", adding a
commit to the resulting source repository then "devtool update-recipe" -
the Python expression in SRC_URI was being unnecessarily broken onto
multiple lines.
Fixes [YOCTO #8046].
(From OE-Core rev: bbec2ee98a08270c681189a6ba26beb1034d3e2f)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When testimage is run with -v switch now individual
test progress can be seen directly in bitbake console.
[YOCTO #6841]
(From OE-Core rev: 27138b2eeafa8b81f3020ad9d8a55263e636288c)
Signed-off-by: Lucian Musat <george.l.musat@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
nativesdk-glbic should not rebuild when you change MACHINE but
it was. We've fixed that, now add tests to ensure this doesn't
happen again.
Rather than add yet another stamps test, extend one of the
existing ones to cover this instead.
(From OE-Core rev: e55b3d88e7a9138f518301a7217f74ba98e979aa)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There is a floating point multiplication done of a base image size
and an "overhead factor", which is currently rounded up to the next
integer. If the multiplication results in a whole number, the value
will still be a float. When this float is used to generate a shell
script, a buggy script is generated.
Fix this by always forcing to an integer.
(From OE-Core rev: bf74a002b8fa18d94cec93f0341cbe74cc010ca7)
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Once the DUT is hanged during testing, currently all the following test
cases have to wait for default timeout to exit. Using this decorator the
user can choose a timeout at case by case basis and what happens when the
timeout is reached by overwriting the self.target.restart method.
[YOCTO #7853]
(From OE-Core rev: ce9a7501ea29ddba61ef7c297223b3f7eca5a2a1)
Signed-off-by: Lucian Musat <george.l.musat@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When IMAGE_LINK_NAME is empty, OE will try to create a "blank" link instead
of just skipping it. The code checks for "link_name is not None" which will
never evaluate to true. Change the test to a simple "if link_name:" so it
no longer attempt to create links when the variable is an empty string.
(From OE-Core rev: 7f03dd50de76f0b5c3a10c514e920615ffaa846c)
Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
On aarch64 we need to do this as the versions in the upstream source don't
recognise the target triplet causing SDK test failures.
(From OE-Core rev: 2374bfa3b98f787f4559f14a60647e4c2b051274)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It is useful in a few different contexts to see which files have been
written out by an sstate task; break out a function that lets us get the
path to the manifest file easily.
(From OE-Core rev: 090196dd2d8f4306b34b239e78c39d37cc86034c)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently, if qemu segfaults, the tests merrily continue trying to execute
which takes time for them to timeout and is a bit silly. Worse, no logs about
the segfault are shown to the user, its silent!
This patch tries to unravel the tangled web of issues and ensures that we:
* install a SIGCHLD handler which tells the user qemu exited
* check if qemu is running, if it isn't fail the test outright
* don't leave processes behind in sshcontrol which would hold
bitbake.lock and block shutdown
(From OE-Core rev: 77e9363feba53b72429154be5713c46b007ae0a4)
(From OE-Core rev: c77b57e2fa8a4cf90543038fe1939f6ca9b12bd1)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There's a race between systemd-timesyncd manipulating the system time (with NTP
lookups) and the test case's time manipulation. Prevent this by stopping
systemd-timesyncd for the duration of the test case.
Thanks to Khem Raj for root-causing this.
(From OE-Core rev: 5334f1b1e9363fa9c128289b51ade55c7ae1a0a3)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
update-rc.d is now needed by systemd to interact with sysv
scripts, so if we have a mixed system, then we can not uninstall
update-rc.d as it is going to break systemd functionality, we check for
sysvinit and sytemd in distro and also ensure that its not building an
image with readonly rootfs
(From OE-Core rev: 5dd5b8adc225d5c703d85fc0187ae65ff6067b58)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This reverts commit acf90b6c299afe9e9c8fa33c3c6992bfcf40fbbf.
(Reverted to apply the better v2 of the patch)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently if this fails you see:
"AssertionError: 1 != 0"
which is useless. Add the output of the failed command so we can stand
some chance of debugging what went wrong.
(From OE-Core rev: e482f9bfddc6b710c9b566c3d3433dc2d7d5a22e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Enhance the logic behind the 'auto' mode a bit by only updating the
SRCREV if the changes are already found upstream. The logic is simple:
update SRCREV only if the current local HEAD commit is found in the
remote branch (i.e. 'origin/<branch_name>'). Otherwise resort to
patching.
This affects a couple of the oe-selftest tests so update those as well.
[YOCTO #7907]
(From OE-Core rev: 9b9733b7d74032aef4979bec553019421e77da14)
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Upgrades a recipe to a particular version and downloads the source code
into a folder. User can avoid patching the source code.
These are the general steps of the upgrade function:
- Extract current recipe source code into srctree and create a branch
- Extract upgrade recipe source code into srctree and rebase with
previous branch. In case the rebase is not correctly applied, source
code will not be deleted, so user correct the patches
- Creates the new recipe under the workspace
[YOCTO #7642]
(From OE-Core rev: 4020f5d91b3e4d011150d5081d36215f8eab732e)
Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
killpg should be being called with a pgid, not a pid.
(From OE-Core rev: d23bf86f305a04a47d19236d72979c1027a31620)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently, we see runqemu and qemu-system-* processes left behind when
bitbake is killed by buildbot. This is due to the use of setpgrp() in
the runqemu subprocess call.
We need the setpgrp call so that all runqemu processes can easily be
killed (by killing their process group). This presents a problem if this
controlling process itself is killed however since those processes don't
notice the death of the parent and merrily continue on.
Rather than hack runqemu to deal with this, we add something to
qemurunner, at least for now to resolve the issue. Basically we fork off
another process which holds an open pipe to the parent and also is
setpgrp. If/when the pipe sees EOF from the parent dieing, it kills the
process group. This is like pctrl's PDEATHSIG but for a process group
rather than a single process.
(From OE-Core rev: 99428eafb5352bd39bc4329bdba07c6d6f17b03f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>