Commit Graph

67 Commits

Author SHA1 Message Date
Ross Burton
7157ffa551 oeqa/sdk/autotools: verify that configure is using the correct host
Search config.log for the correct host_alias assignment to verify that
configure has correctly identified the host system.

(From OE-Core rev: ade66073a1c89918f849eb2932c05342e8f3ab4f)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-05-12 22:01:55 +01:00
Ross Burton
0fc5716c11 oeqa/sdk/maturin: no need for a setupClass, merge code into test
There's no need to copy files inside setUpClass() when there's only one
test function that uses it. Just do all of the test inside the test.

(From OE-Core rev: 5474677b21f2f4069f355abdc600483c42d0b0b3)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-05-12 22:01:55 +01:00
Ross Burton
04e4586c66 oeqa/sdk/maturin: be less picky in the list_python test
The test assumed that maturin would only find a single Python binary, in
/usr/bin/python3*.

However in eSDKs with buildtools a Python is shipped with the SDK, so
the test failed.

Generalise the test so that it runs python3 and obtains its path and
version, and then verifies that path and and version are found by
Maturin. This means we're not assuming a single Python, or the paths, or
that the Python is CPython.

(From OE-Core rev: ae9b5dae77ef140422fcf71d239ca028c9208447)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-05-12 22:01:55 +01:00
Ross Burton
b8009efc19 oeqa/sdk/meson: add check that meson has detected the target correctly
Use 'meson introspect' to dump JSON describing the build configuration
and validate that the target architectures and cross-compiler is
correctly set.

(From OE-Core rev: 1c84361829921e91d782b189e2bde818a2d1491c)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-05-12 22:01:55 +01:00
Ross Burton
a916ac3844 oeqa/sdk/gtk3: build libhandy instead of galculator
galculator hasn't been touched for a decade now[1] and fails to compile
under GCC 15.

Switch to building libhandy, which is the GTK+3 precursor to libadwaita
in the Gnome stack. Whilst this is in low-maintainence mode, will be
updated if it breaks.

[1] https://github.com/galculator/galculator/

(From OE-Core rev: ff6fa71eb0511d8594c4416a37d75a85470ff9c6)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-05-12 22:01:55 +01:00
Ross Burton
fa6d138447 oeqa/sdk/meson: generalise test case
Refactor this test case so the generic "build a meson project" code is
separated out and can be reused.

Also currently meson inside eSDKs only works with fully populated eSDKs,
but our testing uses minimal eSDKS, so skip the test if the eSDK is a
minimal build.  A bug has been filed to resolve this.

(From OE-Core rev: 575e0bf52db0467d88af4b5fe467b682f10ca62a)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-05-12 22:01:55 +01:00
Ross Burton
ff06a1b425 oeqa/sdk/kmod: skip test in eSDKs
At the moment we can't run this test inside an eSDK as it needs the
kernel-devsrc recipe to be present.  Skip the test until this has been
resolved.

(From OE-Core rev: f83beee6e63d25ef2b17618a85f9ad6ca0898600)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-05-12 22:01:55 +01:00
Ross Burton
393691faf1 oeqa/sdk: use ensure_*_package helpers
Clean up lots of dependency checking code by using the new helpers.

This means that a lot of tests that were previously skipped inside the
eSDK testing on the autobuilder are now executed, and fail.

(From OE-Core rev: 11277efd057685558a744e98082b5709e849dd2a)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-05-12 22:01:55 +01:00
Ross Burton
788ea3f7a1 oeqa/sdk: add simple test that the manifests are not empty
Simple test to sanity check that the generated SDK manifest was parsed
correctly and isn't empty.

This test is complicated by the fact that minimal eSDKs without a
toolchain do in fact have an empty manifest, so also check for that.

(From OE-Core rev: 43288b19e93f0c07b347d6e5d6f7f10e96219f96)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-05-12 22:01:55 +01:00
Khem Raj
b76c04bdcb oeqa: Build cpio with C17 std
cpio is not yet buildable with C23 standard which is default with
GCC 15, therefore ensure to apply needed bandage to keep it compiling
in C17 mode even with GCC 15

(From OE-Core rev: 0c637099887f1be421c8e1203f99631a1e040150)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-03-24 17:29:16 +00:00
Sean Nyekjaer
8545e5b458 oeqa/sdk/rust: Add a crate that needs the target and SDK host toolchain
Expand the QA tests, to test that the target and SDK host toolchains works.

(From OE-Core rev: ed915e40d24a0a8b9d78374b297a9cd8090c6f9c)

Signed-off-by: Sean Nyekjaer <sean@geanix.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-02-01 13:20:45 +00:00
Mark Hatle
6c56ffc8cf oeqa sdk cases: Skip SDK test cases when TCLIBC is newlib
Newlib generally requires additional components to function.  Skip the
cases where newlib is known to not work.

(From OE-Core rev: b9934755554e40d9980b90c3d541f4c702203561)

Signed-off-by: Mark Hatle <mark.hatle@amd.com>
Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-26 12:28:42 +01:00
Ross Burton
e64be51ed5 oeqa/sdk: add out-of-tree kernel module building test
Validate that out-of-tree kernel module building using kernel-devsrc
works as expected.

This test uses cryptodev-linux as a idiomatic out of tree module. As the
latest release doesn't actually build with kernel 6.7+, use the same
commit that our recipe uses.

(From OE-Core rev: 8a1c1054815ecc0302c62134f293b8e1f959798a)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-07-18 17:21:39 +01:00
Ross Burton
d2e7656f4f oeqa/sdk: remove unused imports from test cases
Remove redundant imports.

(From OE-Core rev: b6223259458578d8b967aff11d3263dfed496708)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Ross Burton
fd2714953d oeqa/sdk: rename test cases
Instead of having a test called eg "assimp", rename it to "cmake" as the
point of the test is to verify that CMake works.  This should make it
clearer what the tests are actually exercising.

(From OE-Core rev: ccf7fdc0e5b6df218b319f972cd5ba142c06c243)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-22 10:21:26 +01:00
Richard Purdie
41eb98ac61 oeqa/sdk/assimp: Upgrade and fix for gcc 14
To enable this test to work with gcc 14, pass the option to make
warnings non-fatal. Also upgrade to version 5.4.1 from 5.3.1.

(From OE-Core rev: c3df6287ae26dc9d7f11eb7e26fdbcaefe4dfead)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-05-21 12:08:05 +01:00
Khem Raj
bd7a3fd0f7 buildcpio.py: Switch to using cpio-2.15
This helps in getting it building with newer architectures like riscv32
since it has upgraded gnulib over 2.14 which has the needed fixes.

Drop the -fno-common workaround as it is already applied to cpio

drop --disable-maintainer-mode

Fixes
configure: WARNING: unrecognized options: --disable-maintainer-mode

(From OE-Core rev: 18d303497089d3a7a893ee0eec5b0f0c78cca06d)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-08 10:59:06 +00:00
Khem Raj
34abe0219f sdk/assimp.py: Fix build on 32bit arches with 64bit time_t
This testcase does not work properly with 32bit systems as it houses an
older version of zlib which needs to be patched to work with 32bit
systems with 64bit time_t e.g. mips o32.

Apply a needed patch via sed logic to fix this issue.

Enable bundled zlib in build, which means we do not require zlib to be
available in SDK and it can be built for more variety of images.

Upgrade the testcase to use 5.3.1 release of assimp and add cmake option to
enable bundled zlib explicitly.

(From OE-Core rev: 3c922fb61aa4f3bbb5c4ef35639acdf263c4313c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-02-05 14:06:09 +00:00
Tim Orling
7d881f0214 oeqa: add "maturin develop" SDK test case
'maturin develop' first checks that a virtual environment
has been created, which is a good test for our python3 SDK
environment ;)

Source for guessing-game lifted from https://www.maturin.rs/tutorial

The test case is expected to fetch any necessary crates, build a
development version of the crate and package it as a wheel

Needs at a minimum the following in e.g. local.conf:
TOOLCHAIN_HOST_TASK:append = " nativesdk-python3-maturin"
SDK_INCLUDE_TOOLCHAIN = '1'
SDK_TOOLCHAIN_LANGS += 'rust'

The output of 'maturin develop' should be something like:
...
🔗 Found pyo3 bindings with abi3 support for Python ≥ 3.8
🐍 Not using a specific python interpreter
📡 Using build options features from pyproject.toml
   ...
   Compiling guessing-game v0.1.0 (/path/to/guessing-game)
    Finished dev [unoptimized + debuginfo] target(s) in 7.14s
📦 Built wheel for abi3 Python ≥ 3.8 to /path/to/tmpdir/guessing_game-0.1.0-cp38-abi3-linux_x86_64.whl
🛠 Installed guessing-game-0.1.0

(From OE-Core rev: 5265dd0b102cd7f3c6bb2ae1b18e9f625b834b39)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-12-17 19:07:22 +00:00
Tim Orling
b2b2e02775 oeqa: add simple 'maturin' SDK (testsdk) test case
We expect 'maturin' will be used in SDKs, so it makes sense to also
test it in the testsdk environment.

To run this test case, you can add the following to local.conf:
TOOLCHAIN_HOST_TASK:append = " nativesdk-python3-maturin"

And then build and test the SDK:
bitbake -c populate_sdk core-image-full-cmdline
bitbake -c testsdk core-image-full-cmdline

You can substitute a different image recipe for "core-image-full-cmdline"

(From OE-Core rev: 7ceff48625d01a0e60eb761a9a668d0c942cda89)

Signed-off-by: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-12-17 19:07:22 +00:00
Sean Nyekjaer
96310a5867 oeqa/sdk/rust: Add build and run test of rust binary with SDK host
Add a QA test to the SDK to test that a basic cargo build works for the
SDK host.

(From OE-Core rev: 7f05760debd3aeb69c3294f3ceb92d4f1aceec1f)

Signed-off-by: Sean Nyekjaer <sean@geanix.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-10-19 13:38:56 +01:00
Khem Raj
bf7e3886ae oeqa: Use 2.14 release of cpio instead of 2.13
2.13 may not be buildable with latest compilers without patching

(From OE-Core rev: 406a33f896accc35a9cb6ab156f1e0f42dda67d8)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-09-26 10:25:42 +01:00
Alexander Kanavin
850b5d5eed oeqa/sdk/assimp: run only when zlib is in the SDK
Otherwise assimp will silently fall back to a vendored copy of zlib
which will fail with -D_TIME_BITS=64 due to https://github.com/madler/zlib/pull/764

This was exposed by multilib mips core-image-minimal SDKs, where the default
64 bit sysroot has zlib, but 32 bit sysroot does not.

(From OE-Core rev: c0fb603c9e26e91388320c02842b42cc7b091d6c)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-05-05 11:07:26 +01:00
Tom Hochstein
011cc9a104 oeqa/sdk: Improve Meson test
The meson wrapper setup command detection is broken in the case of an
implicit setup command with an option with a space-separated argument,
but the test was not detecting it since the case was not covered.

Add the option `--warnlevel 1` to the meson command line to cover this
case.

(From OE-Core rev: 54e9ee8a0c6c9fc89cbb743f0e4fc18607d503cf)

Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-03-06 09:52:16 +00:00
Richard Purdie
ce08cf4825 lib: Add copyright statements to files without one
Where there isn't a copyright statement, add one to make it explicit.
Also add license identifiers as MIT if there isn't one.

(From OE-Core rev: bb731d1f3d2a1d50ec0aed864dbca54cf795b040)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-12 12:00:43 +01:00
Richard Purdie
2ef7affa31 oeqa/sdk/rust: Fix file deletion for multilib SDKs
We need to use shutil.rmtree here since removedirs() only covers
directories. Make the exception for specific too to make errors
easier to catch.

(From OE-Core rev: 9d2a661e46123a2292f7887658e6fa54923dbcc0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-01 14:18:16 +01:00
Alexander Kanavin
638f988602 oeqa/sdk: allow epoxy/galculator tests to run in esdk and direct yocto builds
Other tests already have similar tweaks.

(From OE-Core rev: 3134d19ba15bb783389c40617d5e2b568c7cd81c)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-07-28 11:50:17 +01:00
Otavio Salvador
1e3e20e92e oeqa/sdk: Add basic rust cargo test
Add a QA test to the SDK to test that a basic cargo build works.

[RP: Tweaked to work for multilibs and updated to match toolchain changes]

(From OE-Core rev: d0cfe587bc897e79ef01805cc9a42fbca28c883c)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-07-28 11:07:33 +01:00
Alexander Kanavin
f23474acfa oeqa/sdk: drop the nativesdk-python 2.x test
Python 2.x has been EOL for a while, and so this test
never runs.

(From OE-Core rev: b687627e9cffb8123c156413f55ea1929f1a7831)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-06-25 21:13:40 +01:00
Chen Qi
57627d99bd cases/buildepoxy.py: fix typo
(From OE-Core rev: 3a9b6e71d1e7e8e2ebc0ed047841e36f09300387)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-04-26 18:25:08 +01:00
Joshua Watt
6736b91b2b oeqa: sdk: Capture stderr output
Redirect stderr to stdout when running subcommands while doing the SDK
tests. The tests will show stdout when CalledProcessError is raised,
but any output to stderr was lost.

(From OE-Core rev: 7cb4e9ab8c1596281060e94a216966060103956e)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:00:46 +01:00
Khem Raj
b230ee4eaf buildgalculator: Patch to fix build with -fno-common
We need to apply a patch to galculator for it to build with gcc-10+
Remove double definition of 'prefs' variable

(From OE-Core rev: 93a62e6b35d1a6ed3c678f8e27508dd0cdbdbbe4)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-18 11:44:55 +01:00
Khem Raj
a8b4215985 buildcpio.py: Apply patch to fix build with -fno-common
This sed expression implements the needed patch to fix compilation with
-fno-common, hopefully this patch will get included in 2.14 release and
we can remove this operation

(From OE-Core rev: 77b2e00c37c661a502bb47fcbbeb2e71aca5b9ce)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-18 11:44:55 +01:00
Khem Raj
21d97d00d5 oeqa: Use --disable-maintainer-mode configure option
since the versions of autotools might differ on target and build host, plus difference in
timestamps for configure and system can result in reconfigure lets avoid
that by disabling maintainer mode

Avoids
error: newly created file is older than distributed files!

[YOCTO #13779]

Suggested-by: Andre McCurdy <armccurdy@gmail.com>
(From OE-Core rev: 3dc4e27e7633ce3ca6b9647810d0996bdee48771)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-14 13:07:23 +00:00
Khem Raj
504b206e37 oeqa: Use cpio 2.13 as testcase
cpio 2.12 was released in 2015 and might have used older autotools
which could result in errors like

https://bugzilla.yoctoproject.org/show_bug.cgi?id=13779

Bumping to 2.13 will help in matching the tool versions
A good change on top would be to run

aclocal -I .; autoheader; autoconf; automake --add-missing -c

before running configure step perhaps

[YOCTO #13779]

(From OE-Core rev: 84eb1dc4fe8a11cd2d05b703070a6fb6de05b873)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-02-08 13:20:02 +00:00
Ross Burton
7a765a628f oeqa/sdk: improve Meson test
Verify that the build inside the SDK is detected as a cross compilation.

(From OE-Core rev: 3dc75ab44c23c4ff26502b96abded3c1c0b94e38)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-10-09 14:07:43 +01:00
Richard Purdie
ffae400179 meta/lib+scripts: Convert to SPDX license headers
This adds SPDX license headers in place of the wide assortment of things
currently in our script headers. We default to GPL-2.0-only except for the
oeqa code where it was clearly submitted and marked as MIT on the most part
or some scripts which had the "or later" GPL versioning.

The patch also drops other obsolete bits of file headers where they were
encoountered such as editor modelines, obsolete maintainer information or
the phrase "All rights reserved" which is now obsolete and not required in
copyright headers (in this case its actually confusing for licensing as all
rights were not reserved).

More work is needed for OE-Core but this takes care of the bulk of the scripts
and meta/lib directories.

The top level LICENSE files are tweaked to match the new structure and the
SPDX naming.

(From OE-Core rev: f8c9c511b5f1b7dbd45b77f345cb6c048ae6763e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-09 16:31:55 +01:00
Ross Burton
4dd5103216 oeqa/sdk: add test to exercise Meson
(From OE-Core rev: 29359493e391d68a5a6b4fa4d09ffdc1fe6db620)

(From OE-Core rev: 237ed166f48b0e32684a5307d3b47b9485238ed9)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-08 11:16:45 +00:00
Ross Burton
f74574858f oeqa/sdk/assimp: cleanup
Unify style with the other tests.

(From OE-Core rev: 545cde27b13f9d68211fd3a671182203ac47756d)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-08 11:16:45 +00:00
Ross Burton
730ffea3a1 oeqa/sdk/cases: clean up DL_DIR handling
(From OE-Core rev: f56c62b9feacd6e08fee3507185261ab3f0180e0)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-08 11:16:45 +00:00
Ross Burton
8e8898bc2d oeqa/sdk: rewrite cpio test
Don't use the helper class as it gets in the way more than it helps, exercise
the out-of-tree paths, and verify the installed files match the expected
architecture.

(From OE-Core rev: 6d666b0413336de2e556b2722c5be97ae5cd40ad)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-13 16:32:21 +00:00
Ross Burton
1d49a3a23a oeqa/sdk: rewrite lzip test
Don't use the helper class as it gets in the way more than it helps, exercise
the out-of-tree paths, and verify the installed files match the expected
architecture.

(From OE-Core rev: 920ae8c6537c2469f21ab9439587fd094ecc40f6)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-13 16:32:21 +00:00
Ross Burton
01bee70c31 oeqa/sdk: clean up galculator test
Drop redundant imports and variables, and use os.makedirs() instead of
bb.utils.mkdirhier().

(From OE-Core rev: 2de9b1e611e5047afb540f98756994925c22e446)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-13 16:32:21 +00:00
Ross Burton
5e15b242a4 oeqa/sdk: show output if run() fails
Use oeqa.utils.subprocesstweak to monkey-patch the subprocess exception so that
any output is shown, and remove any explicit try/catch handling that would have
hidden this.

(From OE-Core rev: 55964b33b561397287779ee474170790dfd03e85)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-13 16:32:21 +00:00
Ross Burton
a9093bc81b oeqa/sdk/galculator: rewrite to use new helpers
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-08 17:17:01 +00:00
Ross Burton
aa8a9a05c2 oeqa/sdk/python: fix version typo
(From OE-Core rev: 581b43d7b3566624e6b17d516755d8e7a5142ebf)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-08 17:17:01 +00:00
Ross Burton
7c34751a0d oeqa/sdk/assimp: use helpers
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-08 17:17:01 +00:00
Ross Burton
fefe59b2e6 oeqa/sdk/python: add Python 2 and fix detection
Add a Python 2 form to exercise that if present, and fix the setUp() so it
actually looks for a package that exists (nativesdk-python3 is a virtual
package, the interpretter is in nativesdk-python3-core).

(From OE-Core rev: d286c2ad3eec24978557e16a8fa599476791109f)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-12-03 12:20:01 +00:00
Hongxu Jia
d40767ac83 testsdk: fix skipped testcase output "UNKNOWN" status while multiprocess execution
Usually skipped testcase output "SKIPPED"
[snip serial execution]
|RESULTS - buildgalculator.GalculatorTest.test_galculator - Testcase -1: SKIPPED (0.01s)
|RESULTS - python.PythonTest.test_python3 - Testcase -1: SKIPPED (0.01s)
[snip serial execution]

But if enable multiprocess execution, skipped testcase output "UNKNOWN" status
[snip enable multiprocess execution]
|RESULTS - buildgalculator.GalculatorTest.test_galculator - Testcase -1: UNKNOWN
|RESULTS - python.PythonTest.test_python3 - Testcase -1: UNKNOWN
[snip enable multiprocess execution]

Here is my investigation:

There is a class pairs TestProtocolClient and TestProtocolServer
provided by python3-subunit. The TestProtocolClient generates a
subunit stream of TestResult from a test run, and TestProtocolServer
parses the stream of subunit TestResult.

The class ProtocolTestCase is a unittest.TestCase adapter and it
uses TestProtocolServer to parse the stream of subunit TestResult.

In Yocto testsdk, it forks multiple processes to execute testcases
and use TestProtocolClient to generate TestResult stream; and then
it creates multiple threads to use ProtocolTestCase to parse stream
of subunit TestResult through pipe; finally it passes multiple
ProtocolTestCase as TestCase instance to main process and output
status result.

The problem point is TestProtocolServer parses `skip:' directive
after reading a `test:' directive. Without `test:' directive,
`skip:' directive will be ignored. All above requires SkipTest should
be raised inside a test method rather than setUpClass method.

Throwing SkipTest inside setUp works correctly

(From OE-Core rev: 4828a88556d59e4d06933164c2ebeb9361b7450e)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-11-14 11:14:39 +00:00
Chen Qi
227cc78b3f oeqa/sdk: fixes related to hasPackage semantics
The current _hasPackage does a regex match when checking for the
existence of packages. This will sometimes result in unexpected
result. For example, the condition hasTargetPackage('gcc') is likely
to be always true as it matches libgcc1.

For most of the time, we should do exact match instead of regex match.
So change _hasPackage function to do that. For the current sdk test
cases, the only place that needs regex match is '^gcc-'. This is because
there's no easy way to get multilib tune arch (e.g. i686) from testdata.json
file.

Besides, packagegroup-cross-canadian-xxx and gcc-xxx should be check in
host manifest instead of the target one. So fix to use hasHostPackage.

Also, as we are doing exact match, there's no need to use r'gtk\+3',
just 'gtk+3' is enough.

(From OE-Core rev: 595e9922cdbacf84cf35cc83f0d03cace042e302)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-04 11:03:55 +01:00