There was one failure occurring in rust testing for qemuriscv64. Exclude
that test so we can enable in automated testing.
(From OE-Core rev: a7f6ea5b20aa91e4a1b00dbea7a6447effb9220d)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A few tests are getting failed with x86 arch.The unsupported/failing tests
are added to the exclude list and ignore the failing unit tests.
Upstream-Status: Pending
(From OE-Core rev: b1340173be2a3a91fbb135eb0e24e50c3b996425)
Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We had previously excluded this test case due to failure in earlier versions.
However, with the latest version of Rust, this test case is passing.
As a result, we have removed it from the exclude list and added back into
the test suite for execution.
The rust-1.79 has been successfully tested with the current test inclusion.
(From OE-Core rev: a33edee3efe67f81229496e03a098454dc7df051)
Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There were some rust tests which were FAILing only for mips architectures.
Hence, they were added to the exclusion list to avoid the failures when
running rust oe-selftest for mips architectures.The current yocto framework
disabled the rust oe-selftest for mips architectures.Hence, these tests have
been added back to the test framework.
The rust-1.79 has been successfully tested on X86, X86_64, ARM, AARCH64 and
PPC Architectures with the current test inclusions.
(From OE-Core rev: e1ec1ad75feb1321228bf3b52251e1aecfdb8746)
Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Remove unused imports, or disabling code which has been commented out.
(From OE-Core rev: e0ff4813b1cf4df0d851c857d57fb88d7db51bdd)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As per "The rustc book"[1], mips*-unknown-linux-* are "tier 3" targets:
Tier 3 targets are those which the Rust codebase has support for, but
which the Rust project does not build or test automatically, so they
may or may not work.
We already skip qemumips in this selftest, but we're now also seeing
failures with qemumips64 so refactor the test to skip all machines where
the architecture is mips or mips64.
[1] https://doc.rust-lang.org/nightly/rustc/platform-support.html
(From OE-Core rev: 177e268811c04260923ac4b16fa047315304add0)
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The data layout for x86-64 target was different in rust from llvm.
It resulted in the following data layout error:
--------------------------------------------------------------------------------------
error: data-layout for target `x86_64-linux`, `e-m:e-i64:64-f80:128-n8:16:32:64-S128`,
differs from LLVM target's `x86_64-unknown-linux-gnu` default layout,
`e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128`
--------------------------------------------------------------------------------------
The issue was reported in meta-rust layer as:
https://github.com/meta-rust/meta-rust/pull/442
Hence, the data layout for x86-64 is modified as per the llvm sources which fixes the issue.
After running the testsuite with the modified data layout; it was observed that the
"tests/codegen/i128-x86-align.rs" passed. The modified data layout fixed the scalar pair which
resolved the testcase failure. Hence, the testcase has been removed from the exclude list.
(From OE-Core rev: 96f11d299b32a32086eb3d890c88eb7ce42057b0)
Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We had previously excluded certain test cases due to failures in earlier versions.
However, with the latest version of Rust, many of these test cases are passing.
As a result, we have removed them from the exclude list and added them back into the test suite for execution.
The rust-1.79 has been successfully tested with the current test inclusions.
(From OE-Core rev: e8dae0ee5ea958bb84af33d9b9a29ab357d96e31)
Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Sort the exclude list in alphabetical order.
* Add some of the upsupported/failing tests to the exclude list
and ignore the failing unit tests.
* Remove duplicated tests from the exclude list.
* Testing summary
Target PASS SKIPPED
ARM 17241 599
ARM64 17279 561
MIPS64 17228 612
PPC 17194 629
X86 17257 583
X86-64 17416 424
(From OE-Core rev: 61ec0f0f78d9db4c3fc02365713d5fd77b78a7ea)
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add some of the upsupported/failing tests to the exclude list
and ignore the failing unit tests.
(From OE-Core rev: 81bbd6db47f45628ff4be400e1f2fa5b09ccd0bb)
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Drop "--doc" option for rust oe-selftest since
it is not supported on bootstrap builds for
cross-targets.
* Drop the following backported patches which are merged
with rust v1.76 upgrade.
- custom-target-cfg.patch
- rustc-bootstrap.patch
- rv32-missing-syscalls.patch
- target-build-value.patch
https://blog.rust-lang.org/2024/02/08/Rust-1.76.0.html
* Drop 'rust-rustdoc' and 'rust-dbg' from 'exclude_packages' list
to check for rust reproducibility.
(From OE-Core rev: 71d17ed3c7be029fc68e9dd3f5d6c4aa72ef861a)
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add the failing tests in rust v1.76 to the exclude list
and add "ignore" tags to ignore failing unit test cases.
(From OE-Core rev: 75399802515ac423503e637281a4585dd00d7c75)
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The rust testsuite was redirecting command output to a file, which made it
hard to debug failure cases since the logs were not available to print to
the console.
Rework the code so it uses the existing popen logging and hence allows us
to improve the error logging situation and make debugging failures easier.
(From OE-Core rev: ac82dc43b8151ed34c4ad51e9ab7f4a612990486)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The rust tests nearly pass for qemurisv64, add the remaining ones to the
exclusion list so it matches everythig else in exlcuding all the know
to break cases.
(From OE-Core rev: 1d6c6e4418c9865a4aeae627e0f130b2181d3657)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Enable rust oe-selftest.
* Include the dependent patches for rust oe-selftest in
meta/recipes-devtools/rust/rust-source.inc
* Disable rust oe-selftest for mips32 target (Rust upstream has classified it into tier 3 target,
for which the Rust project does not build or test automatically) as it is unstable with rust tests.
https://doc.rust-lang.org/nightly/rustc/platform-support.html#tier-3
* The testing is done on arm32, arm64, mips64, x86 and x86_64 targets on Ubuntu 22.04.
(From OE-Core rev: 8f3a2841540fc4779bbd7e11d910edcdc8b47683)
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
To avoid overlap and redundancy of rust tests, remove the test cases whose
parent dir is already excluded.
Tests which are failing from below dirs are removed as these dirs are
already present in exclude list
tests/run-make
tests/rustdoc
tests/mir-opt
tests/ui-fulldeps
(From OE-Core rev: 58a7f3efa9e31e2c7b90e6490f3e51f388e6a7ce)
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add newly failing tests cases in the exclude list for
rust oe-selftest.
(From OE-Core rev: 50119ddaaa810ad71063691fb1cc30cf8c8456c8)
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
To match the other tests, round the test duration to an intger value
so the test reports are consistent.
(From OE-Core rev: c5be3b22a7d5b3f211080ecdf05a077f8b413ef2)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Add the failing test cases in exclude_list to exclude them from testing during the Rust Oe-selftest.
* Drop meta/recipes-devtools/rust/files/rust-oe-selftest.patch file as the failing tests are
moved from being a patch to exclude_list in meta/lib/oeqa/selftest/cases/rust.py.
* When updating to a newer version of Rust, it is manually needed to update the exclude_list. The tests that fail are observed to
work on some versions and fail on others. These tests have been excluded in order to successfully complete testing of Rust Oe-selftest.
* The tests that are passed and skipped are as follows-
Target PASS SKIPPED
ARM 15507 428
ARM64 15535 400
MIPS64 15479 456
X86 15528 407
X86-64 15643 292
Also, time the test execution and pass the time taken for inclusion in the test report.
[RP: Note duration addiion in the commit log]
(From OE-Core rev: e81197c4d3b36e9ad52e56708c21987cacd13147)
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Ensure the test/class naming doesn't allow the to be triggered
without the toolchain decorator
* Add the toolchain-user decorator so it runs on non-IA targets
* Strip the leading "[XX] " prefix from the test names
* Ensure skipped test counts are passed through correctly (as SKIPPED, not SKIP)
* Avoid duplicate test results and show a warning if any are found (duplicates
were from other sources in the end but the code remains sensible to have)
(From OE-Core rev: b1718ce5b2b2db35a8e1c88087deee41f99094b4)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The patch implements Rust testing framework similar to other selftest,
specifically the gcc selftest in OE. It uses the client and server
based method to test the binaries for cross-target on the image.
The test framework is a wrapper around the Rust build system as ./x.py
test. It tests many functionalities of Rust distribution like tools,
documentation, libraries, packages, tools, Cargo, Crater etc.
Please refer the following link for detailed description of Rust
testing:-
https://rustc-dev-guide.rust-lang.org/tests/intro.html#tool-tests
To support the rust tests in oe-core, the following functions were
added:-
setup_cargo_environment(): Build bootstrap and some early stage tools.
do_rust_setup_snapshot(): Install the snapshot version of rust binaries.
do_configure(): To generate config.toml
do_compile(): To build "remote-test-server" for qemu target image.
Approximate Number of Tests Run in the Rust Testsuite :- 18000
Approximate Number of Tests that FAIL in bitbake environment :- 100-150
Normally majority of the testcases are present in major folder "test/"
It contributes to more than 80% of the testcases present in Rust test
framework. These tests pass as expected on any Rust versions without
much fuss. The tests that fail are of less important and contribute to
less than 2% of the total testcases. These minor tests are observed to
work on some versions and fail on others. They have to be added, ignored
or excluded for different versions as per the behavior.
These tests have been ignored or excluded in the Rust selftest
environment to generate success of completing the testsuite.
These tests work in parallel mode even in the skipped test mode as
expected. Although the patch to disable tests is large, it is very simple
in that it only disables tests. When updating to a newer version of Rust,
the patch can usually be ported in a day.
Tested for X86, X86-64, ARM, ARM64 and MIPS64 on Ubuntu 22.04.
(From OE-Core rev: 7c3346d8fbe85302b605bb3f772b029ea7bfaa6c)
Signed-off-by: pgowda <pgowda.cve@gmail.com>
Signed-off-by: Vinay Kumar <vinay.m.engg@gmail.com>
Signed-off-by: Yash Shinde <yashinde145@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>