Skip to content

Track test suite failures on s390x #105383

Closed
@uweigand

Description

@uweigand

Running the ./x.py test suite on s390x currently results in a number of failing tests due to various issues. I've gone through and fixed all of those, resulting in a clean run with all my local fixes applied. Opening this issue to track getting all requires fixes upstream.

Specifically, I'm seeing the following failures caused by actual code problems:

In addition, a number of test cases show (false positive) failures due to assumptions that aren't correct for the platform:

  • LLD does not support the s390x target:
    src/test/run-make/issue-71519
    (Test needs to be ignored.)
  • The abi_efiapi feature is not supported on s390x:
    src/doc/unstable-book/src/language-features/abi-efiapi.md
    (Test needs to be ignored.)
  • A number of LLVM code-gen tests make invalid assumptions on how the IR looks on s390x:
    src/test/codegen/catch-unwind.rs
    src/test/codegen/remap_path_prefix/main.rs
    src/test/codegen/repr-transparent-aggregates-1.rs
    src/test/codegen/repr-transparent.rs
    src/test/codegen/uninit-consts.rs
    (I have fixes for these.)
  • Several test cases make little-endian assumptions in output files that are tested against - UI tests
    src/test/ui/const-ptr/forbidden_slices.rs
    src/test/ui/consts/const-eval/ub-enum.rs
    src/test/ui/consts/const-eval/ub-nonnull.rs
    src/test/ui/consts/const-eval/ub-ref-ptr.rs
    src/test/ui/consts/const-eval/ub-uninhabit.rs
    src/test/ui/consts/const-eval/ub-wide-ptr.rs
    src/test/ui/consts/issue-83182.rs
    src/test/ui/consts/std/alloc.rs
    src/test/ui/consts/validate_never_arrays.rs
    Some (but not all) of these are listed in 1.53.0 broke ui/consts/const-eval/ub-*.rs tests on s390x (big-endian, 64-bit) (regression) #89577, with various solutions being proposed. Options would be to either ignore those on big-endian hosts, provide multiple versions of the output to match against, and/or try to handle big- and little-endian outputs within the same file (e.g. via some transformation).
  • Several test cases make little-endian assumptions in output files that are tested against - MIR tests
    src/test/mir-opt/const_prop/mutable_variable_no_prop.rs
    src/test/mir-opt/issues/issue_75439.rs
    src/test/mir-opt/building/custom/consts.rs

Longer term, I'm wondering what the best way would be to ensure that the test suite remains clean on the platform - can this be included in CI somehow (either via a native machine somewhere or via qemu-based testing)?

CC @cuviper

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions