Commit Graph

10 Commits

Author SHA1 Message Date
Ines KCHELFI
931ff89bdc ptest-cargo: fix tests output format for testimage
In testimage, the ptest-runner output parser expects test results to follow
a specific format,with lines beginning with PASS:, FAIL:, or SKIP:. ptest-cargo,
currently, does not emit any of those lines and the parser treats the test
section as having no results, causing a test failure with :

AssertionError:
ptests which had no test results:
['<package>']

This patch ensures that the recipes using ptest-cargo class explicitly emits
PASS: or FAIL: lines, making the results compatible with the test parser and
preventing test failures.

(From OE-Core rev: 6a9356346f13556a06d4a99bd7924992c7e29d66)

Signed-off-by: Ines KCHELFI <ines.kchelfi@smile.fr>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-05-15 10:55:26 +01:00
Ines KCHELFI
9019308b31 ptest-cargo: fix incorrect FAIL count when multiple tests are run
When using the ptest-cargo class with multiple Rust test binaries, ptest-runner
may report FAIL: 0 even if one of the tests fails, as long as the last test passes.

This happens because the run-ptest script, as generated by the class, does not
track failures and simply returns the exit code of the last test.
To fix this, each test binary is checked individually for failure. If any test fails,
a non-zero exit code is returned.

This ensures that test failures are not silently ignored and are properly reported
by ptest-runner in multi-test scenarios.

(From OE-Core rev: 039708d2aa578da755d5b6eadd6f549121a93186)

Signed-off-by: Ines KCHELFI <ines.kchelfi@smile.fr>
Reviewed-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-04-29 09:55:32 +01:00
Ines KCHELFI
40346626ec ptest-cargo: refactor run-ptest generation to remove redundancy
This refactoring simplifies the generation of the run-ptest script by
removing redundant logic and improving readability.

(From OE-Core rev: 287614a847651f8bd528597b7d6ccb8ad8262367)

Signed-off-by: Ines KCHELFI <ines.kchelfi@smile.fr>
Reviewed-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-04-29 09:55:32 +01:00
Peter Marko
9e2219219e ptest-cargo: handle packageconfig arguments
Align cargo options between ptest-cargo and cargo classes.

After oe-core commit 16745b20452de60ae2474433cc1a2fb1ed9f6a64 there is
a discrepancy between cargo arguments in compile and compile-ptest-cargo
steps when packageconfig is used for cargo based recipes.

Currently we have to do something like following code to build ptest
enabled cargo based recipe:
CARGO_BUILD_FLAGS:append:task-compile-ptest-cargo = " ${PACKAGECONFIG_CONFARGS}"
Otherwise the options are either doubled in compile step or completely
missing in compile-ptest-cargo step.

(From OE-Core rev: 98d03d31de4010534b1a00d29409d3486a0ab0b9)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2025-04-24 11:27:06 +01:00
Peter Marko
7afa4f50b4 cargo: remove True option to getVar calls
Layer cleanup similar to
https://git.openembedded.org/openembedded-core/commit/?id=26c74fd10614582e177437608908eb43688ab510

(From OE-Core rev: 9a2ed52473a3e4eb662509824ef8e59520ebdefb)

Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2024-06-27 13:03:34 +01:00
Alex Kiernan
a8f959a8d3 cargo: Rename MANIFEST_PATH -> CARGO_MANIFEST_PATH
This variable is a piece of recipe configurable interface, scope it with
the class name to make that clear.

(From OE-Core rev: 0101de25832fbed3d08cd522512784133c628cad)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-12-08 16:58:34 +00:00
Frederic Martinsons
80cec38c0c ptest-cargo.bbclass: Support of cargo workspaces
For complex project, it is very common to have multiple
sub artifacts and so use workspaces, sometimes it has
even no root artifacts (but several bin or lib) and
virtual manifest is used for that.

Long story short, support this case in ptest-cargo class
to look for all test binaries in the current project
and no more those generated by the root Cargo.toml

(From OE-Core rev: 67644c3fa7d012ad03d0a876a281d5abd5edf7fe)

Signed-off-by: Frederic Martinsons <frederic.martinsons@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-07-30 07:54:44 +01:00
Frederic Martinsons
f782c806a4 ptest-cargo.bbclass: fix condition to detect test executable
before that, a test executable at None was picked.
Moreover, use universal_newlines to subprocess call to avoid
being polluted by fancy carriage return characters.

(From OE-Core rev: 8dd52f19a919fb7be0ffb7d40782eafe183f8a09)

Signed-off-by: Frederic Martinsons <frederic.martinsons@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-07-14 17:31:06 +01:00
Frederic Martinsons
6588655baa ptest-cargo.bbclass: add the possibility to define test arguments
It can be useful for user of this class for giving common rust test
arguments (like --shuffle, --format or --test-threads)

To add arguments to test binary , simply define RUST_TEST_ARGS
in your recipe that inherit ptest-cargo, for example:

RUST_TEST_ARGS = "--shuffle"

(From OE-Core rev: ea1feece62b0347aa2ebf02509ff2da151d96b61)

Signed-off-by: Frederic Martinsons <frederic.martinsons@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-05-10 17:18:57 +01:00
Frederic Martinsons
e6b18a4ced ptest-cargo.bbclass: create class
This new class offers the possibility to build rust unit tests
(and integration tests) and find them correctly.
Due to non deterministic names of generated binaries, a custom
parsing of build result must be performed.
See https://github.com/rust-lang/cargo/issues/1924

All rust projects will generate a test binary with "cargo build --tests"
command, even if there are no test defined in source code.
The binary will just output that it ran 0 tests.

(From OE-Core rev: dad9bad239d757ae0b159fe5f1276b6856547b4c)

Signed-off-by: Frederic Martinsons <frederic.martinsons@gmail.com>
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