This avoids problems where shutil.remove will error with:
File "/usr/lib/python3.5/shutil.py", line 436, in _rmtree_safe_fd
os.unlink(name, dir_fd=topfd)
FileNotFoundError: [Errno 2] No such file or directory: 'S.gpg-agent.extra'
when there are races over file deletion (gpg agent may be slow to exit).
We already worked around speed and race issues in bb.utils.
(From OE-Core rev: 00a8fd5b93a5c19ce0b7498e2bc653ce8ad58aaf)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This should speed the test up signficiantly without any loss of functionality
for the purposes of the test.
(From OE-Core rev: 3dde0b749643575878bfbca2f8d2d9ec30bad166)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We ideally don't want to use gpg from the host. This is straightforward for package
management but not for sstate.
For sstate, create a second build directory to run the test in using gnupg-native
from the original build directory.
(From OE-Core rev: 10afa94c3f0d7eb7524a26deda86949073d55fde)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Raising an assertionError in the class setup isn't a particuarly good way to
indicate gpg isn't installed. Instead skip the tests if the required binary
isn't present. For the signing tests we do require it to be present and can't
use a prebuilt one.
(From OE-Core rev: 2d486af97e51b9daa9c40482c31d637c9ab4ae79)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Use our own lsb function instead as used elsewhere by the codebase.
(From OE-Core rev: acac45a6fd604d28ef7c23d67482af3d7e8bcfe3)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Avoid the warning:
meta/lib/oeqa/selftest/context.py:8: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp
In this case importlib is a direct replacement.
(From OE-Core rev: db7a60c36a2d3eefc61ae6e1ede01680dc932035)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The upstream source tarball checksums changed. Use the copy from our source
mirror to avoid failures.
[YOCTO #12979]
(From OE-Core rev: e97a31e6bbaec5cb56d4750bf5171dbba510ee33)
Signed-off-by: Mohamad Noor Alim Hussin <mohamad.noor.alim.hussin@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Having image-buildinfo enabled causes containerimage.ContainerImageTests.test_expected_files
to fail due to the presence of an unexpected file:
['./',
'./etc/',
- './etc/build',
'./etc/default/',
'./etc/default/postinst',
Tweak the class to allow it to be disabled and disable it from the test just in
case it was enabled.
(From OE-Core rev: af67bf422a4df5b7e07894512ff73a5f493682ab)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently sdk & sdkext will output json file to LOG_DIR, while
selftest will output json file to TOPDIR/log.
Standardize selftest json output file to LOG_DIR.
(From OE-Core rev: 2012d6b076fc833864a0254d56d78536314a6799)
Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We've had a number of occasions where the Yocto Project source mirrors have not
been complete or functioning correctly. This adds a test so that if this happens
we find out out it sooner.
It also only works over http meaning we should be able to test that anyone behind
an http only proxy (no git protocol) also has functional fetches for OE-Core and
layers built by the core of the project.
(From OE-Core rev: 9a25b2eb9cc13dd77a774dad83067ea5f9bf9716)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tweak the preceeding commit to:
* Add STARTTIME to the identifier to make it unique
* Use LOG_DIR
* Store the layer config in a more natural json format
* Drop '_' function prefixes
(From OE-Core rev: 173f59acf9722e2ef27fdd49c20f7d3d664917eb)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As part of the solution to replace Testopia to store testresult,
OEQA selftest need to output testresult into json files, where
these json testresult files will be stored into git repository
by the future test-case-management tools.
By default, json testresult file will be written to "oeqa"
directory under the oe-selftest log directory.
To configure multiple instances of bitbake to write json testresult
to a single testresult file at custom directory, user will define
the variable "OEQA_JSON_RESULT_DIR" with the custom directory for
json testresult.
(From OE-Core rev: 10697165c832e3dbb2913b6215164ea75e23ec23)
Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
oe-selftest's devtool tests have been broken since commit 2457cd57
(oe-selftest: devtool: avoid parallel races by using temporary copy of
core) if meta is a symbolic link.
(From OE-Core rev: daba6c5a991b370709d17e51305334f55a3858ec)
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
It appends TCLIBCAPPEND to TMPDIR in meta/conf/distro/defaultsetup.conf:
TMPDIR .= "${TCLIBCAPPEND}"
It affects some oe selftest cases in sstatetests.py. Reset TCLIBCAPPEND
for these cases.
(From OE-Core rev: 4549c9dd96be8db69d520f66f4507939df9e9587)
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The sigchld handler in runqemu can raise a SystemExit when qemu shuts down.
Rather than backtracing, accept this as a successful test result.
ERROR: runqemu.QemuTest.test_qemu_can_shutdown (subunit.RemotedTestCase)
testtools.testresult.real._StringException: Traceback (most recent call last):
File "/home/pokybuild/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/selftest/cases/runqemu.py", line 183, in test_qemu_can_shutdown
qemu_shutdown_succeeded = self._start_qemu_shutdown_check_if_shutdown_succeeded(qemu, shutdown_timeout)
File "/home/pokybuild/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/selftest/cases/runqemu.py", line 175, in _start_qemu_shutdown_check_if_shutdown_succeeded
time.sleep(1)
File "/home/pokybuild/yocto-worker/nightly-oe-selftest/build/meta/lib/oeqa/utils/qemurunner.py", line 100, in handleSIGCHLD
raise SystemExit
SystemExit
(From OE-Core rev: 417245923c1c2c35a60d6db29cbe5a78548860d2)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The Navit recipe can depend on fribidi which is now part of oe-core. Since the
pkgconfig lookup is based on pkgdata the results can change depending on what
has been built, which leads to occasional failures.
Build gtk+ before the test to ensure that the pkgdata is populated with more of
the dependencies, and add fribidi to the generated DEPENDS checklist.
(From OE-Core rev: d180dc758710c7259d45eeb9304e7284a8fd8825)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Without this, we see errors if gpg is missing from the host system
for "oe-selftest -r runtime_test.TestImage.test_testimage_dnf".
(From OE-Core rev: e91838b63b506e2969582b2b8511fd3724d6aa3f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
BPF Linux ELF objects are generated with kernel-selftests with
>= 4.18 kernel and when clang is enabled which packages BPF objects
into packages, therefore recongnise this as a valid ELF target
Add a selftest for BPF
Do not flag BPF objects in target, since they pretty much will be ok for
most of kernels architectures we care do support BPF
(From OE-Core rev: 3667a8ec016bae3f8026ef7b4c895546804f6368)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
allarch is disabled when multilib is used, so sstate oeqa case
test_sstate_allarch_samesigs_multilib is useless. Remove check for
allarch part and rename to test_sstate_nativesdk_samesigs_multilib.
(From OE-Core rev: 32fe47ea0aea791357d3045c202cdad86b16f2ff)
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The test installs socat and expects it to run but assumes all its dependencies
are already installed (which includes libssl).
Recent changes mean this isn't the case so force libssl into the image in advance
to work around this issue for now.
(From OE-Core rev: 13b82380abb273e6575b1e74870d3fe8249ebbc1)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Sumo release provides a transition period so that deferrals to first boot
via 'exit 1' can be converted to pkg_postinst_ontarget(). For the next release
however, postinst script failures should be treated as such.
[YOCTO #12607]
(From OE-Core rev: 42acb0ebde4e88bcdf34a541b700f19d8607abb0)
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tweak recipe selftest-hardlink
- addition of libexecdir to simulate multiple directories
- add gdb.sh to run gdb from script which is invoked at test time.
- rename `hello' -> `hello1' to workaround name confliction with the one in lmbench
Add test_gdb_hardlink_debug to selftest/package
- run a qemu and invoke gdb.sh to gdb binaries of selftest-hardlink
- check gdb to read symbols from separated debug hardlink file
- check debug symbols works correctly
[Test without commit `package.bbclass: only one hardlink of separated debug info file in each directory']
2018-08-26 01:27:30,195 - oe-selftest - INFO - test_gdb_hardlink_debug (package.PackageTests)
2018-08-26 01:30:29,005 - oe-selftest - INFO - gdbtest /usr/bin/hello1
2018-08-26 01:30:36,539 - oe-selftest - INFO - gdbtest /usr/bin/hello2
2018-08-26 01:30:43,568 - oe-selftest - INFO - gdbtest /usr/libexec/hello3
2018-08-26 01:30:50,157 - oe-selftest - ERROR - No debugging symbols found. GDB result:
Reading symbols from /usr/libexec/hello3...(no debugging symbols found)...done.^M
(gdb) Function "main" not defined.^M
Make breakpoint pending on future shared library load? (y or [n]) [answered N; input not from terminal]^M
(gdb) Starting program: /usr/libexec/hello3 ^M
Hello World!^M
[Inferior 1 (process 320) exited normally]^M
(gdb) The program is not being run.^M
(gdb)
2018-08-26 01:30:51,180 - oe-selftest - INFO - ... FAIL
2018-08-26 01:30:51,181 - oe-selftest - INFO - Traceback (most recent call last):
File "oe-core/meta/lib/oeqa/selftest/cases/package.py", line 148, in test_gdb_hardlink_debug
self.fail('GDB %s failed' % binary)
AssertionError: GDB /usr/libexec/hello3 failed
[Test without commit `package.bbclass: only one hardlink of separated debug info file in each directory']
[Test with commit `package.bbclass: only one hardlink of separated debug info file in each directory']
2018-08-26 12:40:30,976 - oe-selftest - INFO - test_gdb_hardlink_debug (package.PackageTests)
2018-08-26 12:42:15,149 - oe-selftest - INFO - gdbtest /usr/bin/hello1
2018-08-26 12:42:24,064 - oe-selftest - INFO - gdbtest /usr/bin/hello2
2018-08-26 12:42:31,078 - oe-selftest - INFO - gdbtest /usr/libexec/hello3
2018-08-26 12:42:38,646 - oe-selftest - INFO - gdbtest /usr/libexec/hello4
2018-08-26 12:42:46,824 - oe-selftest - INFO - ... ok
[Test with commit `package.bbclass: only one hardlink of separated debug info file in each directory']
(From OE-Core rev: 104d07e57488f4a414fb5e1f60d0c8b0c02d6b4d)
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The sparseness test was sometimes working and sometimes failing depending
on whether sstate was valid. This adds an explict test of sstate
to the test for both hardlinking and sparseness. Tweak the test name to
cover the fact its tests sparseness too.
(From OE-Core rev: fe5b37c07b6d07c350516ab6bf849d6d86a84004)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Parsing all the recipes is annoying when trying to re-execute oe-selftest
and also unnecessary as its really just a sanity check. When the tests were
originally being developed the guard was useful but less so now.
Replace it with bitbake -e which is fast and checks the basic configuration
is valid.
(From OE-Core rev: acec5180b8d2731002979179e08439b615631e70)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a new element to the hardlink test to check we also preseve file
sparseness during the packing process. This should ensure we don't regress this
issue again.
(From OE-Core rev: 0a4e6974b49bf68c4a4098d339b5d655e202a3fd)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The build target won't cause the package task to run if things were already
built and in sstate. Ensure we run the package task explicitly to ensure
the test works as intended.
(From OE-Core rev: be20eb4f4ad77d9444028ca9632b74d5866d96b8)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Some of the devtool tests make changes to files under meta/ -
legitimately since we want these tests to be working with real recipes
and associated files. Unfortunately with the new oe-selftest
parallelisation this can break other tests if files go missing at the
wrong time (among other scenarios). To avoid this issue, simply take a
copy of the core repository and use that for these tests. (We copy the
entire repository since changing the path of meta/ influences COREBASE
and thus we need to have things like scripts/ alongside as well).
(From OE-Core rev: 2457cd57b4195924ef127f497efa2f34f411e660)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We keep breaking the preservation of hardlinks during the packaging process.
Add a selftest which tests this to try and prevent this breaking again.
(From OE-Core rev: 751fc7802f57a836a0be5fc6a8d5fdf8b1769c39)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
rm_work if enabled leads to some tests failing that rely on artifacts
being present. Check if rm_work.bbclass is included and show an error
and exit if it is.
Fixes [YOCTO #12694]
(From OE-Core rev: dde7e2f590834aa8034f1371954f9b4fbc7a60b7)
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The code was using Wic instead of WicTestCase for image_is_ready and
native_sysroot which was confusing some tests. Fix image_is_ready.
For native_sysroot, convert the only user to just run the call itself
as there is no point in executing this for all the other tests which
don't use the value.
Whilst here, move _get_image_env_path to the base class alongside
its parent variabe and fix it to use WicTestCase.
(From OE-Core rev: 3e83364ed7031d53f281216214b04c7acace844a)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The warn method is deprecated. We should use the documented warning instead.
Quoting from the python's official doc:
"""
Note: There is an obsolete method warn which is functionally identical to warning.
As warn is deprecated, please do not use it - use warning instead.
"""
(From OE-Core rev: f467fd277eb77336097cfc0f5f329bdc8d0f70cb)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Also fix a related test's error message to match what it does.
(From OE-Core rev: 662be652ed39f32c3c7bee6539a9e91af191557e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Placing the layer in meta means the directory is in an unclean state
which may influence other tests. Use our build directory instead
since we 'own' that. This helps keep oe-selftest parallelisation
clean.
(From OE-Core rev: f2d32bdf3f27a9ef62fe3abb7fdd2e04ab84b5f3)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
runCmd handles checking exit 0 internally unless specified otherwise and its
error messages are much more useful including the failed command output.
Clean up the unneeded 0 exit code checks in the wic tests.
(From OE-Core rev: 394f7d4efe80e390e2c9b0be5e6d10954395a82b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently this can fail with a message like 127 != 0 which is unhelpful.
If we remove the ignore_status=False, the debugging from runCmd is much
more helpful printing status.output.
Also remove the now unneeded exit code check.
(From OE-Core rev: 1aa7471b11aedc68de5116c461fe73152e3985fd)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Now we're not reporting the related fields (as of openembedded-core
8658b3677b9f7cb70806061c41570c709086ef05) we shouldn't expect to see
PR reported here since it's not monitored by buildhistory-diff. However,
with a bit of messing about we can check for the exact output that we
should now see as a result of the test changing PR to go backwards.
(From OE-Core rev: f9c233908e6ada208d7abfdfe3ff98c6b278f405)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The current methods of spawning processes for parallel execution have
issues around collection of results or exceptions.
Take the code from package_ipk/deb, make it generic, add a results
collection mechanism, fix the exception handling and for it into a
standard library function.
Also add a test case which tests both the success and failure modes
of operation to stop this functionality regressiing again.
In particular, compared to multiprocess_exec, this fork off the parent
approach means we can pass in the datastore and functions work in the
same scope as the parent. This removes some of the complexities
found trying to scale multiprocess_exec to wider use.
(From OE-Core rev: 88f0c214e593a45566df5131bda4c946f5ccc8c2)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This allows oe-selftest to take a -j option which specifies how much test
parallelisation to use. Currently this is "module" based with each module
being split and run in a separate build directory. Further splitting could
be done but this seems a good compromise between test setup and parallelism.
You need python-testtools and python-subunit installed to use this but only
when the -j option is specified.
See notes posted to the openedmbedded-architecture list for more details
about the design choices here.
Some of this functionality may make more sense in the oeqa core ultimately.
(From OE-Core rev: 326ababfd620ae5ea29bf486b9d68ba3d60cad30)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This improves test parallelism.
(From OE-Core rev: 26e04b23ba1b6942aa7c7df478d41dfe7b73e6e0)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This allows better parallelism between the different tests as currently
this block takes the longest time to execute. devtool tests are still
all grouped into the "devtool" module for ease of exection.
This also makes it easier to execute some subset of devtool tests for
testing devtool changes.
(From OE-Core rev: 75148c190dd4823947557e9a07f1722e817c1fea)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently some tests run in buffer mode and some don't. Those that don't can
corrupt stdout/stderr. Switch to using buffer mode everywhere so we're consistent.
If there is useful output on stdout/stderr, it will be displayed if the test
fails.
(From OE-Core rev: 978548c0abde2cb94c2782538552f39bdf2bf630)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
AssertionError: Command 'wic create mkhybridiso --image-name core-image-minimal -o /var/tmp/wic.oe-selftest/' returned non-zero exit status 1:
ERROR: _exec_cmd: gzip -f -9 -c /var/tmp/wic.oe-selftest/tmp.wic.drhn6edm/initrd.cpio > /var/tmp/wic.oe-selftest/tmp.wic.drhn6edm/initrd.cpio.gz returned '1' instead of 0
output: gzip: /var/tmp/wic.oe-selftest/tmp.wic.drhn6edm/initrd.cpio: No such file or directory
This is because in a clean build directory, the initramfs may not be rebuilt.
Add a call to ensure it is built to avoid the error.
(From OE-Core rev: 2a80fa234d31992691a157425e8990db30158fd1)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Using /var/ leave wic open to races with other processes on the system, use
a subdir of builddir instead to avoid this.
(From OE-Core rev: e07ec908ce7f26143a7bdf0a07a1230c0fd6ac87)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If dbus isn't build first the dbus dependency of dbus-wait can't be detected
through pkgconfig and the test fails:
AssertionError: {'DEPENDS': {'dbus'}} != {}
- {'DEPENDS': {'dbus'}}
+ {} : Some expected variables not found in recipe: {'DEPENDS': {'dbus'}}
Ensure dbus is built and present in the sysroot.
(From OE-Core rev: 28699b4257436fb6079eafe50ca8cab09a2fdd90)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The main setUp function needs to be called and tests are meant to
define setUpLocal. For some reason this one didn't leading to errors
with recent code changes. Fix it.
(From OE-Core rev: aef07f09e224485539d8bc66ddac8bf394e4092a)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
By having a consistent config for the test, a second reparse is avoided
and the test runs slightly faster.
(From OE-Core rev: a910d90dc18f9bc63142ccae2eeadc1feefc756b)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If something goes wrong with the test, dep can be undefined. Avoid a
traceback for this and handle it more gracefully.
(From OE-Core rev: 0b74cb42aefe5c1b812fd155784e4c6581e26ce2)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
"allow root login" should not be bundled in ssh_allow_empty_password,
because some distro may want only one of "allow root login" and "allow
empty password", so split it out into ssh_allow_root_login and add new
imagefeature allow-root-login so they can be controlled separately,
debug-tweaks will still include both of them.
(From OE-Core rev: 1ab494f06a12548a902298afabd0a842161ef10d)
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Adds a test that creates a layer, adds it to bblayers.conf, then ensure
that it appears properly in bitbake-layers show-layers.
(From OE-Core rev: 828462d2c39fe6f4d188b5eb129f7b2969e1ee18)
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add an automated test to exercise that fetching a git: recipe...
1) works over git without mirrors
2) fails without git connectivity or mirrors
3) works without git connectivity but with a mirror
(2) is done by setting GIT_PROXY_COMMAND to 'false' which should break any git
network operations.
[ YOCTO #12805 ]
(From OE-Core rev: 13269dfbbc62faef32595343dc78250fdb2a2946)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As I will be leaving Intel, this address will no longer be valid,
so swap it for my personal one for now.
(From OE-Core rev: ea58ff101e28dfda3410de66d775df3d8a1e5a96)
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Drop upstreamed 0001-Fix-build-with-musl-missing-header-include-for-dev_t.patch
Add ftw-subdir-walk.patch as it resolves the RECIPE_NO_UPDATE_REASON.
Add --disable-zstd as libzstd isn't provided in oe-core.
Fix wic testcase, as the minimal fs size is now bigger.
(From OE-Core rev: 94b645aa77a4193371e8c77ddc477ec00d858961)
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This test shouldn't have merged yet since we don't run portmap/rpcbind
on the autobuilder infrastructure and the test therefore cannot succeed.
We need to document this, set it up, then enable the test. The test itself
is fine and good to have so its left in the code but disabled for now.
(From OE-Core rev: 9640af873d490c5d22b70e32d918c2db37371d21)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
QA team were testing qemu boot image and shutdown on each
qemu architecture manually. Add automated test to test qemu boot on
ext4 and nfs, finally check that it can shutdown properly.
(From OE-Core rev: 1df5f2dff832528905ff6fcf1d324619fb3d307f)
Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Now that we see warnings if LAYERSERIES_COMPAT is unset, the auto generated
code from devtool needs to set this to avoid warnings which break
various tests.
(From OE-Core rev: f65ebfeda0bfbac78e4a2a6609ba654ca38a8b0e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The test runs a scriptlet that has an intentionally failing command in the middle
and checks for two things:
1) that bitbake does warn the user about the failure
2) that scriptlet execution stops at that point.
The test is run for all three package types: rpm, deb, ipk.
(From OE-Core rev: 865fafb0dff19d27bd417c28c95fb8fdf0326a2b)
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Simple test case that adds 'efi' to MACHINE_FEATURES, sets WKS_FILE to
"efi-bootdisk.wks.in", installed required boot items, and attempts to
boot the wic image.
Quick check to make sure that the feature actually works.
(From OE-Core rev: 192c8738f4a8d0f82848a440acf24a1892f2ce93)
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
'bitbake -c checkpkg world' is moved to class initializer to avoid
it being run twice in a row.
The no-maintainers test checks only oe-core recipes, as other layers
may be be configured, and assigning maintainership to specific people via
maintainers.inc is known to be used only in oe-core.
(From OE-Core rev: ac6a72aab19e04adb2fa2b9932a9427d1b6fbb46)
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>
Rather than apply a patch twice, an incorrect patch is applied
(as the new man-db recipe does not have any patches yet).
(From OE-Core rev: a8bf4da183824caa5fceaf7546db52daa05f8662)
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>
QA team were testing meta-ide-support manually. Add automated
tests to test that bibtake meta-ide-support will create the
toolchain and environment setup script. Also test that after
using environment setup script, one can compile c program
and build cpio project.
(From OE-Core rev: db40eba68f51d02677526dfa4bc21343d9c27958)
Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since the primary f2fs utilities are provided by the meta-openembedded
meta-filesystems layer, we disable the testing of that functionality
here.
(From OE-Core rev: f691ed2572e54fa2af04c1569746c36ce04463ee)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixed:
$ oe-selftest -r devtool.DevtoolTests.test_create_workspace
[snip]
2017-12-20 18:28:59,404 - oe-selftest - INFO - Traceback (most recent call last):
File "/workspace2/lyang1/poky/meta/lib/oeqa/core/decorator/__init__.py", line 32, in wrapped_f
return func(*args, **kwargs)
File "/workspace2/lyang1/poky/meta/lib/oeqa/selftest/cases/devtool.py", line 177, in test_create_workspace
self.assertTrue('/workspace' not in result.output, 'This test cannot be run with a workspace layer in bblayers.conf')
AssertionError: False is not true : This test cannot be run with a workspace layer in bblayers.conf
[snip]
$ bitbake-layers show-layers
NOTE: Starting bitbake server...
layer path priority
==========================================================================
meta /workspace2/lyang1/poky/meta 5
meta-poky /workspace2/lyang1/poky/meta-poky 5
meta-yocto-bsp /workspace2/lyang1/poky/meta-yocto-bsp 5
meta-selftest /workspace2/lyang1/poky/meta-selftest 5
There is no workspace layer, but I'm in /workspace2, this patch can fix the problem.
[YOCTO #12442]
(From OE-Core rev: 695b234ea4f034d428f8cffacceabc2b8f00bc74)
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If you have a recipe which does not include SRCPV in PV but does set
SRCREV = "${AUTOREV}" and you run do_fetch, then change the repo to a
new commit then run do_unpack, do_unpack will fail since the new commit
doesn't exist in the repo that was fetched.
The problem is the revision chosen is not represented in the do_fetch
task hash. It if were, the fetch would rerun first and the commit would be
present. It works when PV includes SRCPV since that does contain the chosen
commit from the AUTOREV.
The solution is to include the SRCPV value into the representation of AUTOREV
used for checksum calculation purposes.
Add a selftest for this issue.
(From OE-Core rev: 7b8ee9285a197784d51e339f1603240f49435846)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
mkelfimage is about to be removed, so test_devtool_modify_git needs to
use a different recipe. psplash is a reasonable choice given it uses a
git repository (and probably will forever), and doesn't have too many
dependencies, so change the test to use that recipe instead.
(From OE-Core rev: daf583efc87faa058684dfe34df596d088caa8ef)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Previously oe-core had a development snapshot of rpm, it's better to update
to something more stable.
Removed patches:
0001-Add-PYTHON_ABI-when-searching-for-python-libraries.patch
(upstream is using pkg-config)
0001-When-nice-value-cannot-be-reset-issue-a-notice-inste.patch
(functionality has been moved to a plugin, we disable plugins
for rpm-native)
0012-Use-conditional-to-access-_docdir-in-macros.in.patch
(merged upstream)
Changed patches:
0001-Fix-build-with-musl-C-library.patch
(one previous musl issue has been resolved upstream; another has been added)
Rest of the patches are trivial rebases.
Update the signing oe-selftest so that the reference output matches
the upstream changes.
(From OE-Core rev: b4613b6ce07c295c5d6de6861acf19315acaccb2)
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>
Test case ID 1422 is not correct for this issue, the correct test
case ID for test_qemu is 1424.
(From OE-Core rev: d214b1dc9339c4873156934f5291b9373a11471f)
Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- Mount a '/media' partition to wic-image-minimal.wks with a known UUID.
- In test_qemu, sort our output from checking the output of 'mount' as
it may not be stable. Also, do not check the exit code as passing any
output to cut ensures a 0 exit code.
- Check for a 'UUID=' line in /etc/fstab with out expected output.
(From OE-Core rev: 6d9396b26218f3234701944f385d5c36face8121)
Signed-off-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
acinclude.m4 is about to be removed from the lzo recipe which breaks
test_devtool_update_recipe_local_files_2. Create a synthetic recipe in
meta-selftest with some local files and use that instead.
(From OE-Core rev: ed27470fa6a9f3cc1a0eb884474fe7985babde7a)
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>
Update the packages and file names to reflect the new postinst recipe.
Fix a sh syntax error in the run_serial file exists test which was hidden by a
logic problem in the status code.
Remove the older test_verify_postinst as it's effectively a subset of
test_postinst_rootfs_and_boot, and doesn't work: when booting under systemd the
strings it searches for are not output to the console, but the test still
passes.
(From OE-Core rev: 781a1be88f5812157a231bf5771a01bb978bfcd9)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This further cleans up the output of oe-selftest so that runqemu output
is hidden unless tests fail.
(From OE-Core rev: efa064d5026538ab513edc11869364ce2f14b977)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The logger handling in oeqa was confused at best. This patch:
a) Passes in a logger through various qemu runner pieces
b) Uses that logger consistently in the code
c) Creates a logger for QemuRunner outside the bitbake namespace
meaning we don't conflict with the tinfoil logging changes
The result of this is more consistency. For runtime tests in testimage,
the logs always contain the debug info, nothing is shwon on the console.
For the oe-selftests, logs are intercepted and only shown if the test
fails.
(From OE-Core rev: 4ff678137a55b93c9ba2cbffda34335ba859f704)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In general we don't need to see the output of runqemu however if it fails
we do. Use the buffer option that already exists in TestResult but allow
us to trigger it on a per test basis.
(From OE-Core rev: 86bef95bccbe9dad3dc3445ea365439861966179)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a simple test case to being testing of the Go toolchain:
1) build meta-go-toolchain
2) create a temp directory and install the generated Go toolchain within
3) fetch an archive of the Go Dep tool
4) create an appropriately laid out GOROOT and inflate the dep archive there
5) build the dep command with the SDK's Go toolchain and check it returned
successfully.
[YOCTO #12152]
(From OE-Core rev: bca999644e28e1666357bcbeab685547c6f9dd65)
Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Use a console login not SSH for simplicity.
(From OE-Core rev: 842f3beb211eb0a398b37c50d433a93b86964f6b)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This test overrides IMAGE_FEATURES but failed to include package-management,
which is essential for postinsts to work under dpkg.
(From OE-Core rev: 7e73b84331a4ae8d93518feb68c748d98bac78c6)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When faced with multiple sets of licenses combined with | (OR), it was
possible for oe.license.is_included() to choose a set of licenses with
a blacklisted license and then report failure, even if choosing
another set of licenses would have resulted in a successful
result. This happened when the chosen set still contained more
whitelisted licenses than the other set.
This change makes sure a set with any blacklisted license is always
considered with a lower weight than a set with only whitelisted
licenses.
Example: Faced with the license string "GPL-3.0 & GPL-2.0 & LGPL-2.1 |
Proprietary" and with "GPL-3.0" being blacklisted, the old code would
report a failure since "GPL-3.0 & GPL-2.0 & LGPL-2.1" still contains
more whitelisted licenses than "Proprietary" does.
This change also adds a unit test for oe.license.is_included().
(From OE-Core rev: 312b4d6175e189852c0787ca2fe99b99ce92d1bd)
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The high-level method tempfile.TemporaryDirectory give us no way to ignore erros on
removal thus use tempfile.mkdtemp instead. Ignoring possible issues on removal
is neccesary because it contains gpg sockets that are automatically removed by
the system once the process terminates, otherwise the following log is observed:
File "/usr/lib/python3.5/shutil.py", line 436, in _rmtree_safe_fd
os.unlink(name, dir_fd=topfd)
FileNotFoundError: [Errno 2] No such file or directory: 'S.gpg-agent.browser'
This is the same fix as 7e3a7cd2426feac757def81850dc44156cd0f33e, but this applies
to runtime (instead of signing).
[YOCTO #11821]
(From OE-Core rev: f28e8131f69913ff90ed210c7a58726d3ef37db6)
Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
GitHub dynamically generates the /archive/ tarballs but we're encoding checksums
in the test suite. Change the URL to use a static tarball, and update the
checksums.
(From OE-Core rev: 9c668f9ff989a34e615e2ecc051dadbfe24a5bb4)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since it was first implemented, devtool's source extraction (as used by
the devtool modify, extract and upgrade subcommands) ignored other recipe
dependencies - so for example if you ran devtool modify on a recipe that
fetches from svn or is compressed using xz then it would fail if those
dependencies hadn't been built first. Now that we can execute tasks in
the normal way (i.e. tinfoil.build_targets()) then we can rework it to
use that. This is slightly tricky in that the source extraction needs to
insert some logic in between tasks; luckily we can use a helper class
that conditionally adds prefuncs to make that possible.
Some side-effects / aspects of this change worth noting:
* Operations are a little slower because we have to go through the task
dependency graph generation and other startup processing. There's not
really any way to avoid this though.
* devtool extract didn't used to require a workspace, now it does
because it needs to create a temporary bbappend for the recipe. (As
with other commands the workspace be created on the fly if it doesn't
already exist.)
* I want any existing sysroot files and stamps to be left alone during
extraction since we are running the tasks off to the side, and
especially devtool extract should be able to be used without touching
these. However, this was hampered by the automatic removal process in
sstate.bbclass triggered by bb.event.ReachableStamps when the task
signatures change, thus I had to introduce a way to disable this
removal on a per-recipe basis (we still want it to function for any
dependencies that we aren't working on). To implement this I elected
to use a file written to tmp/sstate-control which gets deleted
automatically after reading so that there's less chance of stale files
affecting future sessions. I could have used a variable but this would
have needed to be whitelisted and I'd have to have poked its value in
using the setVariable command.
Fixes [YOCTO #11198].
(From OE-Core rev: 830dbd66992cbb9e731b48d56fddf8f220349666)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The code in scriptutils which implements the logic for running the
editor used by devtool edit-recipe looks at the VISUAL environment
variable before EDITOR, and thus if VISUAL is set in the environment it
will override the EDITOR value we are setting here, the editor (usually
vim) launches and there's nothing to stop it running forever short of
manually killing it. Set VISUAL instead to fix this.
Apparently VISUAL is in fact the variable we should really be preferring
here - I don't think I knew that but somehow I got it right in the code,
just not in the test. Here are the details for the curious:
https://unix.stackexchange.com/questions/4859/visual-vs-editor-whats-the-difference
Fixes [YOCTO #12074].
(From OE-Core rev: 6a7c50def569b5e86aa17bd9b287e8c63781dcb0)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The high-level method tempfile.TemporaryDirectory give us no way to
ignore erros on removal thus use tempfile.mkdtemp instead. Ignoring possible issues
on removal is neccesary because it contains gpg sockets that are automatically removed
by the system once the process terminates, otherwise the following log is observed:
..
..
File "/usr/lib/python3.5/shutil.py", line 436, in _rmtree_safe_fd
os.unlink(name, dir_fd=topfd)
FileNotFoundError: [Errno 2] No such file or directory: 'S.gpg-agent.browser'
[YOCTO #11821]
(From OE-Core rev: 7e3a7cd2426feac757def81850dc44156cd0f33e)
Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Use a tempdir to copy the .config file from the kernel instead of being
copied to build directory.
(From OE-Core rev: ccccf975c75055639c0ed5052ac0ad53ebbf53ca)
Signed-off-by: Jose Perez Carranza <jose.perez.carranza@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tested if 'wic rm' correctly removes files from the ext4 partition
of the wic image.
(From OE-Core rev: 693b555e4f419b5d24f9f86c44354866492f8bb0)
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tested if 'wic cp' correctly copies files to the ext4 partition
of the wic image.
(From OE-Core rev: 7970907c72d9533fd63d2c8796bbeb9be86b3fc3)
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tested if 'wic ls' correctly lists directory contents
of the ext* partition.
(From OE-Core rev: 6ae3ff957b5c28c7853966cd5a7665772c594546)
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: 0fae16b67542c59b059aa359146c38040785f200)
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The recipeinc method returns the absolute path of the test_recipe.inc
file of a specified recipe. It replaces four instances of identical
code, and make it possible to access the filename from a testcase for
cleanup.
The write_recipeinc and append_recipeinc methods are changed to return
the path to the file in case that is useful.
The test_recipe.inc file is usually cleaned up in a finally block,
but that block executes before any teardown operations. This blocks
any teardown that requires the presence of the test_recipe.inc file.
(From OE-Core rev: cdb431676456f47da1a3b70caddf49f083948798)
Signed-off-by: Ola x Nilsson <olani@axis.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add decorator @OETestID() with Tesopia TC-ID to the test cases
that did not have it properly set.
[YOCTO #11873]
(From OE-Core rev: aa5b9edbd9c4495befe1912a5b401b536be39d5b)
Signed-off-by: Jose Perez Carranza <jose.perez.carranza@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
In the memory resident mode, the user may not see a message about the server
starting, it would be in the cookerdeamon logfile. We don't need this to
test the server is functioning correctly so just drop the test.
Add in an extra check that the file we expected to be created was
created when exporting PR values.
(From OE-Core rev: 811edd95420e907e71b5c7646bde5013b43d4c73)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
I recently found that variable history wasn't working properly for
recipes when we enable history tracking, resulting in minor
functionality loss in devtool upgrade, so add a test to ensure this
doesn't regress now that it's fixed.
(From OE-Core rev: f49042e707d641b59a71c687374b76df97c64c34)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We weren't testing the devtool find-recipe and edit-recipe subcommands,
with the result that when they regressed recently we didn't notice. Add
some code into the test_devtool_add to test this (since we need a
recipe in the workspace, and adding a new test with all that preamble
would seem a bit excessive for these simple checks). Also take the
opportunity to refactor the test a little bit so that the recipe name
and version are variables rather than hardcoding them everywhere.
(From OE-Core rev: 355d8f42679e37610c2947dece597ed7db774bee)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Added test_expand_mbr_image test case to the wic oe-selftest suite.
The test expands directdisk wic image to 1Gb target, checks if it's
expanded correctly and boots it in qemu to make sure the image
is bootable, i.e. bootloader, kernel, boot and root partitions
are still functional.
(From OE-Core rev: 83739174be5b3fabd7df559a35ac6407d82a6280)
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The IDE driver in the kernel is fragile and in 4.12 is causing backtraces.
To unblock 4.12 kernel merging use the virtio CD driver instead to mount
iso images which should be faster and more stable.
(From OE-Core rev: f59e729f98ef9b506b0cfdc415567e03ec87f2a9)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>