Skip to content

Commit 5f6d231

Browse files
authored
CI: Test all backends using Memory Sanitizer on Linux AArch64/x86_64 (#682)
1 parent ecd4881 commit 5f6d231

File tree

1 file changed

+50
-20
lines changed

1 file changed

+50
-20
lines changed

.github/workflows/tests.yml

Lines changed: 50 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -139,35 +139,65 @@ jobs:
139139
- run: cargo test --target=x86_64-win7-windows-msvc -Z build-std --features=std
140140
- run: cargo test --target=i686-win7-windows-msvc -Z build-std --features=std
141141

142-
sanitizer-linux-aarch64:
143-
name: Sanitizer Linux AArch64
144-
# MemorySanitizer won't run in QEMU so we can't run it in cross:
145-
# https://github.com/llvm/llvm-project/issues/65144
146-
runs-on: ubuntu-24.04-arm
147-
steps:
148-
- uses: actions/checkout@v4
149-
- uses: dtolnay/rust-toolchain@master
150-
with:
151-
toolchain: nightly-2025-06-01
152-
components: rust-src
153-
- env:
154-
RUSTFLAGS: -Dwarnings -Zsanitizer=memory
155-
RUSTDOCFLAGS: -Dwarnings -Zsanitizer=memory
156-
run: cargo test -Zbuild-std --target=aarch64-unknown-linux-gnu
142+
sanitizer-linux:
143+
name: Sanitizer Linux
144+
runs-on: ${{ matrix.runner }}
145+
strategy:
146+
matrix:
147+
arch: [
148+
"aarch64",
149+
"x86_64",
150+
]
151+
include:
152+
# MemorySanitizer won't run in QEMU so we can't run it in cross:
153+
# https://github.com/llvm/llvm-project/issues/65144
154+
- arch: aarch64
155+
runner: ubuntu-24.04-arm
157156

158-
sanitizer-linux-x86_64:
159-
name: Sanitizer Linux x86_64
160-
runs-on: ubuntu-24.04
157+
- arch: x86_64
158+
runner: ubuntu-24.04
161159
steps:
162160
- uses: actions/checkout@v4
163161
- uses: dtolnay/rust-toolchain@master
164162
with:
165163
toolchain: nightly-2025-06-01
166164
components: rust-src
167-
- env:
165+
- name: default configuration
166+
env:
168167
RUSTFLAGS: -Dwarnings -Zsanitizer=memory
169168
RUSTDOCFLAGS: -Dwarnings -Zsanitizer=memory
170-
run: cargo test -Zbuild-std --target=x86_64-unknown-linux-gnu
169+
run: cargo test -Zbuild-std --target=${{ matrix.arch }}-unknown-linux-gnu
170+
- name: --cfg getrandom_backend="linux_getrandom"
171+
env:
172+
RUSTFLAGS: --cfg getrandom_backend="linux_getrandom" -Dwarnings -Zsanitizer=memory
173+
RUSTDOCFLAGS: --cfg getrandom_backend="linux_getrandom" -Dwarnings -Zsanitizer=memory
174+
run: cargo test -Zbuild-std --target=${{ matrix.arch }}-unknown-linux-gnu
175+
- name: --cfg getrandom_backend="linux_raw"
176+
env:
177+
RUSTFLAGS: --cfg getrandom_backend="linux_raw" -Dwarnings -Zsanitizer=memory
178+
RUSTDOCFLAGS: --cfg getrandom_backend="linux_raw" -Dwarnings -Zsanitizer=memory
179+
run: cargo test -Zbuild-std --target=${{ matrix.arch }}-unknown-linux-gnu
180+
- name: --cfg getrandom_backend="linux_fallback"
181+
env:
182+
RUSTFLAGS: --cfg getrandom_backend="linux_fallback" -Dwarnings -Zsanitizer=memory
183+
RUSTDOCFLAGS: --cfg getrandom_backend="linux_fallback" -Dwarnings -Zsanitizer=memory
184+
run: cargo test -Zbuild-std --target=${{ matrix.arch }}-unknown-linux-gnu
185+
- if: ${{ matrix.arch == 'x86_64' }}
186+
name: --cfg getrandom_backend="rdrand"
187+
env:
188+
RUSTFLAGS: --cfg getrandom_backend="rdrand" -Dwarnings -Zsanitizer=memory
189+
RUSTDOCFLAGS: --cfg getrandom_backend="rdrand" -Dwarnings -Zsanitizer=memory
190+
run: cargo test -Zbuild-std --target=${{ matrix.arch }}-unknown-linux-gnu
191+
- name: --cfg getrandom_test_linux_fallback
192+
env:
193+
RUSTFLAGS: --cfg getrandom_test_linux_fallback -Dwarnings -Zsanitizer=memory
194+
RUSTDOCFLAGS: --cfg getrandom_test_linux_fallback -Dwarnings -Zsanitizer=memory
195+
run: cargo test -Zbuild-std --target=${{ matrix.arch }}-unknown-linux-gnu
196+
- name: --cfg getrandom_test_linux_without_fallback
197+
env:
198+
RUSTFLAGS: --cfg getrandom_test_linux_without_fallback -Dwarnings -Zsanitizer=memory
199+
RUSTDOCFLAGS: --cfg getrandom_test_linux_without_fallback -Dwarnings -Zsanitizer=memory
200+
run: cargo test -Zbuild-std --target=${{ matrix.arch }}-unknown-linux-gnu
171201

172202
cross:
173203
name: Cross

0 commit comments

Comments
 (0)