[PATCH v3 7/7] rust: Enable rust oe-selftest.

Yash.Shinde
2024-01-23T08:10:57Z

* Enable rust oe-selftest and sort the overall added test cases.

* 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.

Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
---
meta/lib/oeqa/selftest/cases/rust.py | 88 ++++++++++++----------
meta/recipes-devtools/rust/rust-source.inc | 4 +
2 files changed, 51 insertions(+), 41 deletions(-)

diff --git a/meta/lib/oeqa/selftest/cases/rust.py b/meta/lib/oeqa/selftest/cases/rust.py
index 0ec2e422f9..cf35fdbb29 100644
--- a/meta/lib/oeqa/selftest/cases/rust.py
+++ b/meta/lib/oeqa/selftest/cases/rust.py
@@ -40,7 +40,12 @@ def parse_results(filename):
class RustSelfTestSystemEmulated(OESelftestTestCase, OEPTestResultTestCase):
def test_rust(self, *args, **kwargs):
# Disable Rust Oe-selftest
- self.skipTest("The Rust Oe-selftest is disabled.")
+ #self.skipTest("The Rust Oe-selftest is disabled.")
+
+ # Skip mips32 target since it is unable with rust tests
+ machine = get_bb_var('MACHINE')
+ if machine == "qemumips":
+ self.skipTest("The mips32 target is skipped for Rust Oe-selftest.")

# build remote-test-server before image build
recipe = "rust"
@@ -73,56 +78,91 @@ class RustSelfTestSystemEmulated(OESelftestTestCase, OEPTestResultTestCase):
'src/librustdoc',
'src/rustdoc-json-types',
'src/tools/compiletest/src/common.rs',
+ 'src/tools/jsondoclint',
'src/tools/lint-docs',
+ 'src/tools/replace-version-placeholder',
'src/tools/rust-analyzer',
'src/tools/rustdoc-themes',
'src/tools/tidy',
'tests/assembly/asm/aarch64-outline-atomics.rs',
+ 'tests/codegen/abi-efiapi.rs',
+ 'tests/codegen/abi-efiapi.rs',
'tests/codegen/abi-main-signature-32bit-c-int.rs',
'tests/codegen/abi-repr-ext.rs',
+ 'tests/codegen/abi-sysv64.rs',
'tests/codegen/abi-x86-interrupt.rs',
+ 'tests/codegen/align-byval.rs',
+ 'tests/codegen/align-fn.rs',
+ 'tests/codegen/asm-powerpc-clobbers.rs',
+ 'tests/codegen/async-fn-debug-awaitee-field.rs',
+ 'tests/codegen/binary-search-index-no-bound-check.rs',
'tests/codegen/branch-protection.rs',
+ 'tests/codegen/call-metadata.rs',
'tests/codegen/catch-unwind.rs',
'tests/codegen/cf-protection.rs',
+ 'tests/codegen/debug-column.rs',
+ 'tests/codegen/debug-limited.rs',
+ 'tests/codegen/debuginfo-generic-closure-env-names.rs',
+ 'tests/codegen/drop.rs',
+ 'tests/codegen/dst-vtable-align-nonzero.rs',
+ 'tests/codegen/enable-lto-unit-splitting.rs',
'tests/codegen/enum-bounds-check-derived-idx.rs',
+ 'tests/codegen/enum/enum-u128.rs',
+ 'tests/codegen/fn-impl-trait-self.rs',
'tests/codegen/force-unwind-tables.rs',
+ 'tests/codegen/inherit_overflow.rs',
+ 'tests/codegen/inherit_overflow.rs',
+ 'tests/codegen/inline-function-args-debug-info.rs',
'tests/codegen/intrinsic-no-unnamed-attr.rs',
+ 'tests/codegen/intrinsics/mask.rs',
+ 'tests/codegen/intrinsics/transmute-niched.rs',
'tests/codegen/issues/issue-103840.rs',
'tests/codegen/issues/issue-47278.rs',
+ 'tests/codegen/issues/issue-73258.rs',
'tests/codegen/issues/issue-73827-bounds-check-index-in-subexpr.rs',
+ 'tests/codegen/issues/issue-75546.rs',
+ 'tests/codegen/issues/issue-77812.rs',
+ 'tests/codegen/issues/issue-98156-const-arg-temp-lifetime.rs',
'tests/codegen/lifetime_start_end.rs',
+ 'tests/codegen/llvm-ident.rs',
'tests/codegen/local-generics-in-exe-internalized.rs',
+ 'tests/codegen/mainsubprogram.rs',
'tests/codegen/match-unoptimized.rs',
+ 'tests/codegen/move-operands.rs',
'tests/codegen/noalias-rwlockreadguard.rs',
'tests/codegen/non-terminate/nonempty-infinite-loop.rs',
'tests/codegen/noreturn-uninhabited.rs',
'tests/codegen/repr-transparent-aggregates-3.rs',
+ 'tests/codegen/repr/transparent-mips64.rs',
'tests/codegen/sse42-implies-crc32.rs',
'tests/codegen/thread-local.rs',
'tests/codegen/uninit-consts.rs',
+ 'tests/mir-opt/',
'tests/pretty/raw-str-nonexpr.rs',
- 'tests/run-make',
'tests/run-make-fulldeps',
+ 'tests/run-make',
'tests/rustdoc',
+ 'tests/rustdoc-js-std',
+ 'tests/rustdoc-json',
'tests/rustdoc-ui/cfg-test.rs',
'tests/rustdoc-ui/check-cfg-test.rs',
'tests/rustdoc-ui/display-output.rs',
'tests/rustdoc-ui/doc-comment-multi-line-attr.rs',
'tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs',
'tests/rustdoc-ui/doc-test-doctest-feature.rs',
+ 'tests/rustdoc-ui/doc-test-rustdoc-feature.rs',
'tests/rustdoc-ui/doctest-multiline-crate-attribute.rs',
'tests/rustdoc-ui/doctest-output.rs',
- 'tests/rustdoc-ui/doc-test-rustdoc-feature.rs',
'tests/rustdoc-ui/failed-doctest-compile-fail.rs',
'tests/rustdoc-ui/issue-80992.rs',
'tests/rustdoc-ui/issue-91134.rs',
+ 'tests/rustdoc-ui/no-run-flag.rs',
'tests/rustdoc-ui/nocapture-fail.rs',
'tests/rustdoc-ui/nocapture.rs',
- 'tests/rustdoc-ui/no-run-flag.rs',
'tests/rustdoc-ui/run-directory.rs',
'tests/rustdoc-ui/test-no_std.rs',
'tests/rustdoc-ui/test-type.rs',
- 'tests/rustdoc/unit-return.rs',
+ 'tests/ui-fulldeps/',
'tests/ui/abi/stack-probes-lto.rs',
'tests/ui/abi/stack-probes.rs',
'tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs',
@@ -136,46 +176,12 @@ class RustSelfTestSystemEmulated(OESelftestTestCase, OEPTestResultTestCase):
'tests/ui/functions-closures/fn-help-with-err.rs',
'tests/ui/linkage-attr/issue-10755.rs',
'tests/ui/macros/restricted-shadowing-legacy.rs',
+ 'tests/ui/numbers-arithmetic/u128.rs',
'tests/ui/process/nofile-limit.rs',
'tests/ui/process/process-panic-after-fork.rs',
'tests/ui/process/process-sigpipe.rs',
'tests/ui/simd/target-feature-mixup.rs',
- 'tests/ui/structs-enums/multiple-reprs.rs',
- 'tests/mir-opt/',
- 'tests/codegen/abi-sysv64.rs',
- 'tests/codegen/call-metadata.rs',
- 'tests/codegen/async-fn-debug-awaitee-field.rs',
- 'tests/codegen/issues/issue-77812.rs',
- 'tests/codegen/debug-column.rs',
- 'tests/codegen/inline-function-args-debug-info.rs',
- 'tests/codegen/binary-search-index-no-bound-check.rs',
- 'tests/codegen/fn-impl-trait-self.rs',
- 'tests/codegen/enum/enum-u128.rs',
- 'tests/codegen/abi-efiapi.rs',
- 'tests/codegen/issues/issue-73258.rs',
- 'tests/codegen/llvm-ident.rs',
- 'tests/codegen/drop.rs',
- 'tests/codegen/intrinsics/transmute-niched.rs',
- 'tests/codegen/issues/issue-75546.rs',
- 'tests/codegen/debuginfo-generic-closure-env-names.rs',
- 'tests/codegen/inherit_overflow.rs',
- 'tests/codegen/asm-powerpc-clobbers.rs',
- 'tests/codegen/align-byval.rs',
- 'tests/codegen/inherit_overflow.rs',
- 'tests/codegen/dst-vtable-align-nonzero.rs',
- 'tests/codegen/move-operands.rs',
- 'tests/codegen/align-fn.rs',
- 'tests/codegen/abi-efiapi.rs',
- 'tests/codegen/issues/issue-98156-const-arg-temp-lifetime.rs',
- 'tests/codegen/debug-limited.rs',
- 'tests/codegen/mainsubprogram.rs',
- 'tests/codegen/enable-lto-unit-splitting.rs',
- 'tests/codegen/intrinsics/mask.rs',
- 'tests/ui-fulldeps/',
- 'src/tools/replace-version-placeholder',
- 'src/tools/jsondoclint',
- 'tests/ui/numbers-arithmetic/u128.rs',
- 'tests/codegen/repr/transparent-mips64.rs'
+ 'tests/ui/structs-enums/multiple-reprs.rs'
]

exclude_fail_tests = " ".join([" --exclude " + item for item in exclude_list])
diff --git a/meta/recipes-devtools/rust/rust-source.inc b/meta/recipes-devtools/rust/rust-source.inc
index 83a0dbc15f..e02829e6b3 100644
--- a/meta/recipes-devtools/rust/rust-source.inc
+++ b/meta/recipes-devtools/rust/rust-source.inc
@@ -10,6 +10,10 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
file://0004-musl-Define-O_LARGEFILE-for-riscv32.patch;patchdir=${RUSTSRC} \
file://0005-musl-Define-SOCK_SEQPACKET-in-common-place.patch;patchdir=${RUSTSRC} \
file://0001-Revert-Map-source-absolute-paths-to-OUT_DIR-as-relat.patch;patchdir=${RUSTSRC} \
+ file://cargo-path.patch;patchdir=${RUSTSRC} \
+ file://custom-target-cfg.patch;patchdir=${RUSTSRC} \
+ file://rustc-bootstrap.patch;patchdir=${RUSTSRC} \
+ file://target-build-value.patch;patchdir=${RUSTSRC} \
"
SRC_URI[rust.sha256sum] = "b98c09d968529212fb29eec7d6d3e9bdaa869810679b7fb86a1ca69469d75f5e"

--
2.43.0