5.2 kernel has introduced a significant performance regression
where some of the tests take many minutes to complete (where
previously it was seconds). While we're getting to the bottom
of the issue and working with upstream to resove it, this
change allows tests to proceed instead of getting stuck and
eventually timing out.
openssl: Enable os option for with-rand-seed as well
with openSSL 1.1.1d we start seeing errors like
Error Generating Key 139979727451584:error:2406C06E:random number generator:RAND_DRBG_instantiate:error retrieving entropy:../openssl-1.1.1d/crypto/rand/drbg_lib.c:342:
when using openssl from openssl-native on build hosts, this is due to
limiting the random seed to devrandom, to support older hosts, since the
option allows to have a comma separated list of methods to try, we can
try the default first and if that fails then fallback to devrandom, this
will ensure that it keeps working with build systems which dont support
getrandom()
Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Adrian Bunk <bunk@stusta.de> Cc: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Andrew F. Davis [Tue, 17 Sep 2019 13:10:53 +0000 (09:10 -0400)]
weston: Set depends to the virtual needed not explicitly on Mesa
The dependency is for EGL and GLES2 libraries. On some systems these
are not provided by Mesa, list what is actually needed so the system
can choose the correct provider.
Signed-off-by: Andrew F. Davis <afd@ti.com> Acked-by: Denys Dmytriyenko <denys@ti.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Andrew F. Davis [Tue, 17 Sep 2019 13:10:52 +0000 (09:10 -0400)]
gtk+3: Set depends to the virtual needed not explicitly on Mesa
The dependency is for EGL and GLES2 libraries. On some systems these
are not provided by Mesa, list what is actually needed so the system
can choose the correct provider.
Signed-off-by: Andrew F. Davis <afd@ti.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Andrew F. Davis [Tue, 17 Sep 2019 13:10:51 +0000 (09:10 -0400)]
cogl: Set depends to the virtual needed not explicitly on Mesa
The dependency is for EGL and GLES2 libraries. On some systems these
are not provided by Mesa, list what is actually needed so the system
can choose the correct provider.
Signed-off-by: Andrew F. Davis <afd@ti.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Andre McCurdy [Mon, 16 Sep 2019 19:24:24 +0000 (12:24 -0700)]
ffmpeg: add PACKAGECONFIG controls for alsa and zlib (enable by default)
Also move the libogg dependency to the theora PACKAGECONFIG, since
according to the configure script, theora is the specific component
which requires it.
Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Yi Zhao [Mon, 16 Sep 2019 09:29:17 +0000 (17:29 +0800)]
grub: remove diffutils and freetype runtime dependencies
The diffutils runtime dependency was introduced from legacy grub since
the script grub-install invokes cmp command which is from diffutils
package. But in Grub2 the grub-install has been rewritten with C
language. So this package isn't needed anymore.
The freetype runtime dependency is for grub-mkfont but we have
explicitly disabled grub-mkfont build. It is safe to remove it.
Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mikko Rapeli [Mon, 16 Sep 2019 07:16:16 +0000 (10:16 +0300)]
busybox.inc: handle empty DEBUG_PREFIX_MAP
DEBUG_PREFIX_MAP can be empty if e.g. old clang
toolchain doesn't support the default poky values for gcc.
Fixes build failure:
ERROR: Logfile of failure stored in: /home/builder/src/base/build/tmp/work/aarch64-poky-linux/busybox/1.31.0-r
0/temp/log.do_configure.14451
Log data follows:
| DEBUG: Executing shell function do_configure
| sed: -e expression #1, char 0: no previous regular expression
| WARNING: exit code 1 from a shell command.
| ERROR: Execution of '/home/builder/src/base/build/tmp/work/aarch64-poky-linux/busybox/1.31.0-r0/temp/run.do_configure.14451' failed with exit code 1:
| sed: -e expression #1, char 0: no previous regular expression
| WARNING: exit code 1 from a shell command.
|
This log entry is really useless for debugging problems so
add "set -x" to the configure script so that details can be seen
if something isn't working.
Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Changqing Li [Mon, 16 Sep 2019 05:50:23 +0000 (13:50 +0800)]
classextend.py: don't extend file for file dependency
Fix error like:
lib32-e2fsprogs-1.45.3-r0 do_package_qa: QA Issue: /usr/sbin/e2scrub_all
contained in package lib32-e2fsprogs-e2scrub requires /bin/bash,
but no providers found in RDEPENDS_lib32-e2fsprogs-e2scrub
For some lib32 packages(eg: lib32-bash, lib32-sed) which probvides files,
extend is not needed
Eg: RPROVIDES of lib32-bash expects to have /bin/bash, with original
extend, it will become lib32-/bin/bash, then will cause above error
Fix by don't extend file dependency, and skip multilib check for file dependency
in do_package_qa to avoid error like:
WARNING: lib32-bash-5.0-r0 do_package: QA Issue: lib32-bash package lib32-bash
- suspicious values '/bin/bash /bin/sh' in RPROVIDES [multilib]
Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
nativesdk.bbclass: Clear out LIBCEXTENSION and ABIEXTENSION
These variables dont make sense for nativesdk targets which essentially
are target only properties, this helps in avoiding recompile of
nativesdk-libgcc-initial when switch libcs. nativesdk targets are glibc
only for OE
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
populate_sdk_base.bbclass: nativesdk-glibc-locale is required on musl too
musl based extensible sdk fails to install
ERROR: OE-core's config sanity checker detected a potential misconfiguration.
Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
Following is the list of potential problems / advisories:
Your system needs to support the en_US.UTF-8 locale.
The real reason is that its missing locale-archive in buildtools-tarball
hence python3 from buildtools-tarball fails to run bitbake when
installing esdk
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
glibc: Move DISTRO_FEATURE specific do_install code for target recipe only
nativesdk-glibc should be spared of recompile when the distro features
are changed e.g. ldconfig is not in
DISTRO_FEATURES, this happens when sdk with musl and another one with
glibc is built
Fixes
Variable do_install value changed:
...
-DISTRO_FEATURES{ldconfig} = Set
+DISTRO_FEATURES{ldconfig} = Unset
Signed-off-by: Khem Raj <raj.khem@gmail.com>
s
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Added copy_file_range posix_spawn_file_actions_add[f]chdir API
* optreset is added to getopt
* pthread fixes
* Conditionally add legacy long definition of wchar_t
Ross Burton [Fri, 13 Sep 2019 12:04:31 +0000 (13:04 +0100)]
adwaita-icon-theme: fix rare install race
There have been rare errors during the build of adwaita-icon-theme, such as:
Exception: bb.process.ExecutionError: Execution of '.../temp/run.sysroot_stage_all.45186' failed with exit code 2:
cpio: ./icons/Adwaita/32x32/legacy/_inst.34160_: Cannot stat: No such file or directory
cpio: ./icons/Adwaita/32x32/legacy/_inst.33428_: Cannot stat: No such file or directory
cpio: ./icons/Adwaita/32x32/legacy/_inst.35421_: Cannot stat: No such file or directory
cpio: ./icons/Adwaita/32x32/legacy/_inst.34533_: Cannot stat: No such file or directory
cpio: ./icons/Adwaita/32x32/legacy/_inst.35366_: Cannot stat: No such file or directory
The problem was that a previous optimisation (oe-core cd9af17028) to massively
increase the install speed (by parallelling the hundreds of installs) was subtly
wrong. It was essentially doing this:
for i in list; do
install i &
done
wait
In pure shell this does parallelise the install commands and then wait for them
all to finish before exiting, but in Makefiles *each line in a separate shell*. The actual Makefile is closer to this:
for i in list; do \
install i & \
done
wait
The backslashes are required to write a multi-line for loop in a Makefile, but
note that when the loop ends the shell exits and all of the install processes
that are still running are disowned. The wait command then executes in a new
shell, and there are no childen to wait for.
The fix is trivial: add more backslashes so that the wait is part of the same
shell.
Signed-off-by: Ross Burton <ross.burton@intel.com>
Martin Jansa [Fri, 13 Sep 2019 08:28:02 +0000 (08:28 +0000)]
perf: fix build on kernels which don't have ${S}/tools/include/linux/bits.h
* tools/include/linux/bits.h was added in v4.20-rc1 with this commit:
commit ba4aa02b417f08a0bee5e7b8ed70cac788a7c854
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date: Tue Sep 25 10:55:59 2018 -0300
tools include: Adopt linux/bits.h
* also if you're building for such older kernel you will probably see
do_compile failing with:
| config/Makefile:448: Missing perl devel files. Disabling perl scripting support, please install perl-ExtUtils-Embed/libperl-dev
| config/Makefile:495: Python 3 is not yet supported; please set
| config/Makefile:496: PYTHON and/or PYTHON_CONFIG appropriately.
easiest work around is to disable scripting PACKAGECONFIG, because
since oe-core commit:
The upstream kernel can now handle python3 for the perf scripts, coupled
with the impending EOL of python2, we switch the dependencies in perf
(scripting) to python3.
it now uses python3, but the support for that was added in kernel
v4.17-rc1 with:
Jack Mitchell [Thu, 5 Sep 2019 09:35:37 +0000 (09:35 +0000)]
iptables: add systemd helper unit to load/restore rules
There is currently no way to automatically load iptables rules in OE.
Add a systemd unit file to automatically load rules on network
connection. This is cribbed from the way ArchLinux handles iptables with
some minor modifications for OE.
New rules can be generated directly on the target using:
# iptables-save -f /etc/iptables/iptables.rules
Good documentation for writing rules offline is lacking, but the basics
are explained here:
https://unix.stackexchange.com/q/400163/49405
Signed-off-by: Jack Mitchell <jack@embed.me.uk> Signed-off-by: Diego Rondini <diego.rondini@kynetics.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
The renesas rcar SoC H3/M3 is big.LITTLE architecture(cortex-a57.cortex-a53).
In order to optimize the performance of the code running on SoC H3/M3,
add a tune file for ARM Cortex-A53-Cortex-A57.
Create this tune file by refering GCC doc, 3.18.5 ARM Options.
Signed-off-by: Meng Li <Meng.Li@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
$ bitbake ovmf lib32-ovmf
[snip]
ERROR: ovmf-edk2-stable201905-r0 do_deploy_setscene: The recipe ovmf is trying to install files into a shared area when those files already exist.
Those files and their manifest location are:
/buildarea1/lyang1/rebase-work/test_cc/tmp-glibc/deploy/images/qemux86-64/OvmfPkKek1.key
(matched in manifest-qemux86_64-lib32-ovmf.deploy)
[snip]
Add it NON_MULTILIB_RECIPES to fix the problem since it is a firmware, build
multilib for it doens't make much sense.
Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Randy MacLeod [Tue, 10 Sep 2019 21:41:36 +0000 (17:41 -0400)]
valgrind: disable 256 ptests for aarch64
On qemuarm64 systems, about half of the valgrind tests fail and
often result in defunct processes, eg:
root 819 818 25 00:12 pts/0 00:01:52 /usr/bin/valgrind --command-line-only=yes --memcheck:leak-check=no --tool=memcheck -q --track-origins=
root 861 420 0 00:13 pts/0 00:00:00 [sh] <defunct>
Eventually these processes use so much memory that the
out of memory killer runs.
Hide the tests that fail as a horrid work-around until the
root cause has been resolved since this at least allows the
ptest run to complete. This work-around is done in the run-ptest
script using a sorted list of tests so that they can be easily
restored one by one without a rebuild during testing.
Randy MacLeod [Tue, 10 Sep 2019 21:41:35 +0000 (17:41 -0400)]
valgrind: ptest improvements to run-ptest and more
Make some changes to the run-ptest script:
- after main tests run integrity check like the pkg Makefile.
- aesthetic and ordering changes
Add the .in_place directory and its contents which allows valgrind
to be run in-place thereby enabling the gdbserver_tests to
complete rather than hang. Unfortunately directory paths embedded
in binaries still cause many of these test to fail.
Add the exp-sgcheck tests.
With core-image-minimal on qemux86-64/kvm:
Recipe | Passed | Failed | Skipped | Time(s)
before | 648 | 12 | 60 | 1541
after | 662 | 20 | 38 | 1429
ppc-no-gdbserv | 415 | 196 | 34 | 10689
Since fewer tests timeout, the overall time has decreased.
With core-image-sato on qemux86-64/kvm the results are now
the same as core-image-minimal.
qemuppc/arm64 runs result in the oom-killer eventually running since
some processes do not terminate properly and accumulate as defunct
processes in memory. Without the gdbserver_tests, the tests
complete without defunct process or the oom-killer running for
ppc but not for arm64.
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Randy MacLeod [Tue, 10 Sep 2019 21:41:34 +0000 (17:41 -0400)]
valgrind: make a few more ptests pass
Adjust two memcheck vgtest files to deal with relative paths
that are in test executables when cross-compiling.
Add libgomp to enable OpenMP tests.
Add the bz2 executable for memcheck/tests/vcpu_bz2.
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Randy MacLeod [Tue, 10 Sep 2019 21:41:33 +0000 (17:41 -0400)]
valgrind: enable ~500 more ptests
Add valgrind's top level config.h to the ptest package since
it is used by several scripts to determine which tests to run.
Drop the removal of:
none/tests/shell,
the content was already moved to:
none/tests/scripts/shell
so the filter useless and the files no longer cause a problem.
Add a few more test directories that had been omitted.
Add perf/bigcode for test: none/tests/bigcode
Leave .c, .h, .S files in the ptest image since several of them are
needed to run the tests. The overhead is ~13 MB which is high but
keeping all test code is easier than figuring out which source files
are needed and the entire valgrind-ptest package is ~115 MB so in
this context it's an acceptable trade-off.
Add bash dependency for ptest for none/tests/scripts/shell
With core-image-minimal on qemux86-64/kvm:
Recipe | Passed | Failed | Skipped | Time(s)
before | 149 | 1 | 9 | 663
after | 648 | 12 | 60 | 1541
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Jiang Lu [Thu, 12 Sep 2019 09:08:21 +0000 (05:08 -0400)]
libsoup:enable libsoup build as native package
Enable libsoup build as a native package, for it may invoked by
other native package, such as ostree.
Signed-off-by: Jiang Lu <lu.jiang@windriver.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Jiang Lu [Thu, 12 Sep 2019 09:08:20 +0000 (05:08 -0400)]
glib-networking:enable glib-networking build as native package
Enable glib-networking build as a native package, for it is depended
by libsoup.
Signed-off-by: Jiang Lu <lu.jiang@windriver.com> Signed-off-by: Liwei Song <liwei.song@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Jason Wessel [Wed, 11 Sep 2019 18:32:04 +0000 (11:32 -0700)]
gnupg: Extend -native wrapper to fix gpgme-native's gpgconf problems
The gpg commit signing in ostree-native doesn't work properly when
running from sstate. The ostree-native is linked with gpgme-native's
libraries, which have calls into gpg.
Ultimately it turned out the problem was that gpgme calls gpgconf and
some of the other gnupg-native binaries directly. Not all the
binaries have a wrapper which sets the environment variable GNUPG_BIN.
Without this wrapper these binaries it gets the path assignment from
the original compilation which causes a fault when running from sstate
in a new tmp directory because these paths will not exist.
Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Kai Kang [Tue, 10 Sep 2019 03:26:34 +0000 (23:26 -0400)]
systemd: provides ${base_sbindir}/udevadm
In some udev rules files such as 97-hid2hci.rules from bluez5, it calls
/sbin/udevadm in a rule. eudev provides /usr/bin/udevadm and
/sbin/udevadm which is a link to /usr/bin/udevadm. But systemd only
provides /bin/udevadm. It is not convenient to update the rule file that
udevadm reside in different directories for eudev and system.
So create link file ${base_sbindir}/udevadm in systemd just the same as
eudev to fix such kind of issues.
Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Stefan Ghinea [Tue, 10 Sep 2019 06:34:12 +0000 (09:34 +0300)]
ghostscript: CVE-2019-14811, CVE-2019-14817
A flaw was found in, ghostscript versions prior to 9.28,
in the .pdf_hook_DSC_Creator procedure where it did not
properly secure its privileged calls, enabling scripts to
bypass `-dSAFER` restrictions. A specially crafted PostScript
file could disable security protection and then have access
to the file system, or execute arbitrary commands.
A flaw was found in, ghostscript versions prior to 9.28,
in the .pdfexectoken and other procedures where it did not
properly secure its privileged calls, enabling scripts to
bypass `-dSAFER` restrictions. A specially crafted PostScript
file could disable security protection and then have access
to the file system, or execute arbitrary commands.
Otavio Salvador [Mon, 9 Sep 2019 14:51:47 +0000 (11:51 -0300)]
mesa: Upgrade 19.1.1 -> 19.1.6
- Add python3 to DEPENDS: mesa commit cb3072488c changed function
that verifies python installation and to this new function works
we need to have Python3 in DEPENDS.
This is a bugfix only set of releases. Check following links for the
relevant release notes:
oe-git-proxy: NO_PROXY suffix matching without wildcard for match_host
NO_PROXY can also contain just suffixes that do not start with a "*". We
failed to match those so far. Just add an extra "*" to also match those
suffixes. If one was there we get "**" which does not hurt.
Signed-off-by: Henning Schild <henning.schild@siemens.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
oeqa/core/case.py: Add OEPTestResultTestCase for ptestresult helpers
Add the OEPTestResultTestCase class as a mix-in class to provide helper
functions for interacting with ptestresults within the extraresults
object generated by the test case.
This class also provides default compression of log text and log files.
Also add support to resulttool for decoding/decompressing log files
embedded in the test results.
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
gcc-cross.inc: Process binaries in build dir to be relocatable
Process binaries within the build directory before stashing to be
relocatable with ORIGIN relative rpaths. This corrects issues with
rpaths being invalid when trying to use the binaries from an unstashed
build directory (e.g. gcc-runtime).
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
resulttool: Handle multiple series containing ptestresults
Handle multiple results series having ptestresults content. The contents
are merged on a per-result basis where duplicates are ignored (with a
warning message printed). The 'ptestresults.sections' collection is also
merged on a per-suite basis.
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
libevent: don't treat test stats line as pass/fail in ptest
Supplemental to commit fb17b46e2. The libevent "regress" test
outputs its own pass/fail results, e.g.
"2/300 TESTS FAILED. (31 skipped)", which will be miscounted
as an extra test fail in the ptest log. Fixed this to ignore
the libevent results line when counting actual pass/fail
results.
Also removed the for loop in run-ptest and targeted only the
libevent "regress" test, as the other tests being run were
related to performance and did not provide a relevant pass/fail
output.
Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
chrpath.bbclass: Add break_hardlinks kwarg to allow breaking hardlinks
Add the break_hardlinks kwarg to break hardlinks when modifying files.
This uses the bb.utils.break_hardlinks function to break hardlinks. The
default is to maintain existing behaviour and leave hardlinks in place.
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
oeqa/selftest/cases/gcc.py: Split into classes for parallelism
Split the gcc selftest cases into multiple classes one for each test.
This is done in order to make it easy to execute multiple gcc tests in
parallel when using oe-selftest with the '-j' arg.
Additionally tag the user tests with "toolchain-user" and the system
emulation (qemu system) tests with "toolchain-system".
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
oeqa/selftest: Use extraresults on self instead of self.tc
In order to take advantage of multiprocess execution of tests the
extraresults must be passed through the TestResult. With changes to how
oeqa/core handles test cases the extraresults attribute of the testcase
is passed to the TestResult, with passing across process boundaries
handled automatically.
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
oeqa/selftest: For toolchain tests do not fail if a test failed
Do not fail the running selftest test case if the test suite has a
failed test case. Currently toolchain tests suites (binutils, gcc,
glibc) fail but this does not indicate failure to execute the tests.
Also remove the logging of each test that failed.
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
oeqa/selftest/cases/glibc.py: Don't install python3 and pexpect
When running the system emulation test case, do not include python3 or
pexpect in the image. The test cases that use these also need gdb (with
python configured).
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
oeqa/selftest/glibc: Create selftest case for glibc test suite
Create a oeqa selftest test case to execute the glibc test suite and
report the results. The results are populated into the extraresults
variable of the test case which are written to testresults.json for
resulttool to analyse.
An additional subclass is created to separate the execution with qemu
linux-user and qemu system. The GlibcSelfTestSystemEmulated test case
handles setup of the target image, setup of and NFS server as well as
execution with runqemu.
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
oeqa/selftest/gcc: Create selftest case for gcc test suite
Create a oeqa selftest test case to execute the gcc test suites and
report the results. The results are populated into the extraresults
variable of the test case which are written to testresults.json for
resulttool to analyse.
An additional subclass is created to separate the execution with qemu
linux-user and qemu system. The GccSelfTestSystemEmulated test case
handles setup of the target image as well as execution with runqemu.
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
oeqa/selftest/binutils: Create selftest case for binutils test suite
Create a oeqa selftest test case to execute the binutils test suites and
report the results. The results are populated into the extraresults
variable of the test case which are written to testresults.json for
resulttool to analyse.
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 3 Sep 2019 21:25:40 +0000 (22:25 +0100)]
oeqa/selftest: Markup 'machine' specific test cases
These test cases are run by the autobuilder on a machine specific basis.
Add tags to these classes so they can be controlled by the metadata rather
than hardcoded in the autobuilder config.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Use the __oeqa_testtags attribute added by OETestTag and display no, one
or more tags separated by a comma. Also change the formatting of the
output so that the list of tests is formatted as "<test> (<tags>)" and
remove the table header for "id" (it is no longer available).
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
oeqa/selftest: Add test run filtering based on test tags
Add '--run-only-tags' for running tests which match any of the provided
tags, and '--run-exclude-tags' for running all tests except those that
have any of the provided tags.
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
oeqa/core: Rework OETestTag and remove unused OETestFilter
Rework OETestTag so that it does not rely on the existing decorator code
base and instead inserts the tags into an attribute on the decorated
target (e.g. class/type or method). This allows the use of OETestTag on
classes and method.
In order to filter tagged tests rework the loaders filtering code,
removing the generic-ness (with validation and attributes/etc.) and
replace it with a "tags_filter" parameter which is a function that
filters a test based on the tags it has. This allows the loader user to
filter on tags in more specific ways (e.g. include all untagged tests
and any tests tagged with foo). Plumb all this through the context code
and testing code.
Update the associated tests to pass correctly with the changes.
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
oeqa/core: Implement proper extra result collection and serialization
Implement handling of extra result (e.g. ptestresult) collection with
the addition of a "extraresults" extraction function in OETestResult. In
order to be able to serialize and deserialize the extraresults data,
allow OETestResult add* calls to take a details kwarg. The subunit
module can handle cross-process transfer of binary data for the details
kwarg. With a TestResult proxy class to sit inbetween to encode and
decode to and from json.
Signed-off-by: Nathan Rossi <nathan@nathanrossi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>