Skip to content

Commit 8482b97

Browse files
committed
Add test-everything annotations to more targets to ensure test coverage
+ Upgrade CPU for `qemu` + Disable `vsx` tests for `ppc` and `ppc64` + Disable `tme` tests for `aarch64` and `aarch64_be` + Disable `frecipe` tests for `loongarch64` + Map `usize` to pointer-width in `stdarch-verify/x86-intel.rs` + Remove `-Ctarget-feature=+vsx` run for PPC32
1 parent c4dea4e commit 8482b97

File tree

14 files changed

+51
-27
lines changed

14 files changed

+51
-27
lines changed

.github/workflows/main.yml

+24-3
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,27 @@ jobs:
122122

123123
# Add additional variables to the matrix variations generated above using `include`:
124124
include:
125+
# `TEST_EVERYTHING` setups - there should be at least 1 for each architecture
126+
- target:
127+
tuple: aarch64-unknown-linux-gnu
128+
os: ubuntu-latest
129+
test_everything: true
130+
- target:
131+
tuple: armv7-unknown-linux-gnueabihf
132+
os: ubuntu-latest
133+
test_everything: true
134+
- target:
135+
tuple: loongarch64-unknown-linux-gnu
136+
os: ubuntu-latest
137+
test_everything: true
138+
- target:
139+
tuple: riscv64gc-unknown-linux-gnu
140+
os: ubuntu-latest
141+
test_everything: true
142+
- target:
143+
tuple: s390x-unknown-linux-gnu
144+
os: ubuntu-latest
145+
test_everything: true
125146
- target:
126147
tuple: x86_64-unknown-linux-gnu-emulated
127148
os: ubuntu-latest
@@ -147,15 +168,15 @@ jobs:
147168
- target:
148169
tuple: powerpc-unknown-linux-gnu
149170
os: ubuntu-latest
150-
disable_assert_instr: true
171+
test_everything: true
151172
- target:
152173
tuple: powerpc64-unknown-linux-gnu
153174
os: ubuntu-latest
154-
disable_assert_instr: true
175+
test_everything: true
155176
- target:
156177
tuple: powerpc64le-unknown-linux-gnu
157178
os: ubuntu-latest
158-
disable_assert_instr: true
179+
test_everything: true
159180
- target:
160181
tuple: aarch64-apple-darwin
161182
os: macos-15

ci/docker/aarch64-unknown-linux-gnu/Dockerfile

+3-2
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1414
lld
1515

1616
ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \
17-
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER="qemu-aarch64 -L /usr/aarch64-linux-gnu" \
18-
OBJDUMP=aarch64-linux-gnu-objdump
17+
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER="qemu-aarch64 -cpu max -L /usr/aarch64-linux-gnu" \
18+
OBJDUMP=aarch64-linux-gnu-objdump \
19+
STDARCH_TEST_SKIP_FEATURE=tme

ci/docker/aarch64_be-unknown-linux-gnu/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,6 @@ ENV AARCH64_BE_TOOLCHAIN="/toolchains/${TOOLCHAIN}"
2525
ENV AARCH64_BE_LIBC="${AARCH64_BE_TOOLCHAIN}/aarch64_be-none-linux-gnu/libc"
2626

2727
ENV CARGO_TARGET_AARCH64_BE_UNKNOWN_LINUX_GNU_LINKER="${AARCH64_BE_TOOLCHAIN}/bin/aarch64_be-none-linux-gnu-gcc"
28-
ENV CARGO_TARGET_AARCH64_BE_UNKNOWN_LINUX_GNU_RUNNER="qemu-aarch64_be -L ${AARCH64_BE_LIBC}"
28+
ENV CARGO_TARGET_AARCH64_BE_UNKNOWN_LINUX_GNU_RUNNER="qemu-aarch64_be -cpu max -L ${AARCH64_BE_LIBC}"
2929
ENV OBJDUMP="${AARCH64_BE_TOOLCHAIN}/bin/bin/aarch64-none-linux-gnu-objdump"
30+
ENV STDARCH_TEST_SKIP_FEATURE=tme

ci/docker/arm-unknown-linux-gnueabihf/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
99
make \
1010
file
1111
ENV CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc \
12-
CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_RUNNER="qemu-arm -L /usr/arm-linux-gnueabihf" \
12+
CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_RUNNER="qemu-arm -cpu max -L /usr/arm-linux-gnueabihf" \
1313
OBJDUMP=arm-linux-gnueabihf-objdump

ci/docker/armv7-unknown-linux-gnueabihf/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1313
clang-19 \
1414
lld
1515
ENV CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc \
16-
CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_RUNNER="qemu-arm -L /usr/arm-linux-gnueabihf" \
16+
CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_RUNNER="qemu-arm -cpu max -L /usr/arm-linux-gnueabihf" \
1717
OBJDUMP=arm-linux-gnueabihf-objdump

ci/docker/loongarch64-unknown-linux-gnu/Dockerfile

+3-2
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@ RUN apt-get update && \
77

88

99
ENV CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_GNU_LINKER=loongarch64-linux-gnu-gcc-14 \
10-
CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_GNU_RUNNER="qemu-loongarch64-static -L /usr/loongarch64-linux-gnu" \
11-
OBJDUMP=loongarch64-linux-gnu-objdump
10+
CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_GNU_RUNNER="qemu-loongarch64-static -cpu max -L /usr/loongarch64-linux-gnu" \
11+
OBJDUMP=loongarch64-linux-gnu-objdump \
12+
STDARCH_TEST_SKIP_FEATURE=frecipe

ci/docker/powerpc-unknown-linux-gnu/Dockerfile

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
66
qemu-system-ppc make file
77

88
ENV CARGO_TARGET_POWERPC_UNKNOWN_LINUX_GNU_LINKER=powerpc-linux-gnu-gcc \
9-
CARGO_TARGET_POWERPC_UNKNOWN_LINUX_GNU_RUNNER="qemu-ppc -cpu Vger -L /usr/powerpc-linux-gnu" \
9+
CARGO_TARGET_POWERPC_UNKNOWN_LINUX_GNU_RUNNER="qemu-ppc -cpu mpc8610 -L /usr/powerpc-linux-gnu" \
1010
CC=powerpc-linux-gnu-gcc \
11-
OBJDUMP=powerpc-linux-gnu-objdump
11+
OBJDUMP=powerpc-linux-gnu-objdump \
12+
STDARCH_TEST_SKIP_FEATURE=vsx

ci/docker/powerpc64-unknown-linux-gnu/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
66
file make
77

88
ENV CARGO_TARGET_POWERPC64_UNKNOWN_LINUX_GNU_LINKER=powerpc64-linux-gnu-gcc \
9-
CARGO_TARGET_POWERPC64_UNKNOWN_LINUX_GNU_RUNNER="qemu-ppc64 -cpu power10 -L /usr/powerpc64-linux-gnu" \
9+
CARGO_TARGET_POWERPC64_UNKNOWN_LINUX_GNU_RUNNER="qemu-ppc64 -cpu power11 -L /usr/powerpc64-linux-gnu" \
1010
CC=powerpc64-linux-gnu-gcc \
1111
OBJDUMP=powerpc64-linux-gnu-objdump \
12+
STDARCH_TEST_SKIP_FEATURE=vsx \
1213
# These 2 tests have erratic behaviour with qemu, see https://gitlab.com/qemu-project/qemu/-/issues/1623#note_2449012173
1314
STDARCH_TEST_SKIP_FUNCTION=vec_lde_u16,vec_lde_u32

ci/docker/powerpc64le-unknown-linux-gnu/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
77

88
# Work around qemu triggering a sigill on vec_subs if the cpu target is not defined.
99
ENV CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_LINKER=powerpc64le-linux-gnu-gcc \
10-
CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_RUNNER="qemu-ppc64le -cpu power10 -L /usr/powerpc64le-linux-gnu" \
10+
CARGO_TARGET_POWERPC64LE_UNKNOWN_LINUX_GNU_RUNNER="qemu-ppc64le -cpu power11 -L /usr/powerpc64le-linux-gnu" \
1111
CC=powerpc64le-linux-gnu-gcc \
1212
OBJDUMP=powerpc64le-linux-gnu-objdump

ci/docker/riscv64gc-unknown-linux-gnu/Dockerfile

+1-4
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,5 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
66
llvm
77

88
ENV CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_LINKER=riscv64-linux-gnu-gcc \
9-
CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_RUNNER="qemu-riscv64 \
10-
-L /usr/riscv64-linux-gnu \
11-
-cpu rv64,zk=true,zks=true,zbb=true,zbc=true \
12-
" \
9+
CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_RUNNER="qemu-riscv64 -cpu max -L /usr/riscv64-linux-gnu" \
1310
OBJDUMP=llvm-objdump

ci/docker/s390x-unknown-linux-gnu/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
1010
file
1111

1212
ENV CARGO_TARGET_S390X_UNKNOWN_LINUX_GNU_LINKER=s390x-linux-gnu-gcc \
13-
CARGO_TARGET_S390X_UNKNOWN_LINUX_GNU_RUNNER="qemu-s390x -L /usr/s390x-linux-gnu" \
13+
CARGO_TARGET_S390X_UNKNOWN_LINUX_GNU_RUNNER="qemu-s390x -cpu max -L /usr/s390x-linux-gnu" \
1414
OBJDUMP=s390x-linux-gnu-objdump

ci/run-docker.sh

-2
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,10 @@ run() {
2424
--env CARGO_TARGET_DIR=/checkout/target \
2525
--env TARGET="${target}" \
2626
--env STDARCH_TEST_EVERYTHING \
27-
--env STDARCH_ASSERT_INSTR_IGNORE \
2827
--env STDARCH_DISABLE_ASSERT_INSTR \
2928
--env NOSTD \
3029
--env NORUN \
3130
--env RUSTFLAGS \
32-
--env STDARCH_TEST_NORUN \
3331
--volume "${HOME}/.cargo":/cargo \
3432
--volume "$(rustc --print sysroot)":/rust:ro \
3533
--volume "$(pwd)":/checkout:ro \

ci/run.sh

+7-5
Original file line numberDiff line numberDiff line change
@@ -121,13 +121,15 @@ case ${TARGET} in
121121
cargo_test "${PROFILE}"
122122
;;
123123
powerpc64*)
124-
# We don't build the ppc 32-bit targets with these - these targets
125-
# are mostly unsupported for now.
126-
OLD_RUSTFLAGS="${RUSTFLAGS}"
127-
export RUSTFLAGS="${OLD_RUSTFLAGS} -C target-feature=+altivec"
124+
export RUSTFLAGS="${RUSTFLAGS} -C target-feature=+altivec"
128125
cargo_test "${PROFILE}"
129126

130-
export RUSTFLAGS="${OLD_RUSTFLAGS} -C target-feature=+vsx"
127+
export RUSTFLAGS="${RUSTFLAGS} -C target-feature=+vsx"
128+
cargo_test "${PROFILE}"
129+
;;
130+
powerpc*)
131+
# qemu has a bug in PPC32 which leads to a crash when compiled with `vsx`
132+
export RUSTFLAGS="${RUSTFLAGS} -C target-feature=+altivec"
131133
cargo_test "${PROFILE}"
132134
;;
133135

crates/stdarch-verify/tests/x86-intel.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -749,7 +749,8 @@ fn equate(
749749
&Type::PrimUnsigned(32),
750750
"unsigned __int32" | "unsigned int" | "unsigned long" | "const unsigned int",
751751
) => {}
752-
(&Type::PrimUnsigned(64), "unsigned __int64" | "size_t") => {}
752+
(&Type::PrimUnsigned(64), "unsigned __int64") => {}
753+
(&Type::PrimUnsigned(SS), "size_t") => {}
753754

754755
(&Type::M128, "__m128") => {}
755756
(&Type::M128BH, "__m128bh") => {}

0 commit comments

Comments
 (0)