tokio: enable more tests in Miri (#7734)

This commit is contained in:
Ralf Jung
2025-11-29 15:08:47 +08:00
committed by GitHub
parent 73d733a341
commit c03a37fa0b
12 changed files with 13 additions and 16 deletions
+4 -4
View File
@@ -18,7 +18,7 @@ env:
rust_stable: stable
rust_nightly: nightly-2025-10-12
# Pin a specific miri version
rust_miri_nightly: nightly-2025-11-09
rust_miri_nightly: nightly-2025-11-13
rust_clippy: '1.88'
# When updating this, also update:
# - README.md
@@ -372,7 +372,7 @@ jobs:
cargo miri nextest run --features full --lib --no-fail-fast
working-directory: tokio
env:
MIRIFLAGS: -Zmiri-disable-isolation -Zmiri-strict-provenance -Zmiri-retag-fields
MIRIFLAGS: -Zmiri-disable-isolation -Zmiri-strict-provenance
miri-test:
name: miri-test
@@ -395,7 +395,7 @@ jobs:
cargo miri nextest run --features full --test '*' --no-fail-fast
working-directory: tokio
env:
MIRIFLAGS: -Zmiri-disable-isolation -Zmiri-strict-provenance -Zmiri-retag-fields
MIRIFLAGS: -Zmiri-disable-isolation -Zmiri-strict-provenance
miri-doc:
name: miri-doc
@@ -414,7 +414,7 @@ jobs:
cargo miri test --doc --features $TOKIO_STABLE_FEATURES --no-fail-fast
working-directory: tokio
env:
MIRIFLAGS: -Zmiri-disable-isolation -Zmiri-strict-provenance -Zmiri-retag-fields
MIRIFLAGS: -Zmiri-disable-isolation -Zmiri-strict-provenance
asan:
name: asan
+1 -1
View File
@@ -200,7 +200,7 @@ run loom tests that test unstable features.
You can run miri tests with
```
MIRIFLAGS="-Zmiri-disable-isolation -Zmiri-strict-provenance -Zmiri-retag-fields" \
MIRIFLAGS="-Zmiri-disable-isolation -Zmiri-strict-provenance" \
cargo +nightly miri test --features full --lib --tests
```
+2 -2
View File
@@ -177,7 +177,7 @@ mod tests {
}
#[test]
#[cfg_attr(miri, ignore)]
#[cfg_attr(miri, ignore)] // takes a really long time with miri
fn test_splitter() {
let data = str::repeat("", DEFAULT_MAX_BUF_SIZE);
let mut wr = super::SplitByUtf8BoundaryIfWindows::new(TextMockWriter);
@@ -191,7 +191,7 @@ mod tests {
}
#[test]
#[cfg_attr(miri, ignore)]
#[cfg_attr(miri, ignore)] // takes a really long time with miri
fn test_pseudo_text() {
// In this test we write a piece of binary data, whose beginning is
// text though. We then validate that even in this corner case buffer
+1
View File
@@ -51,6 +51,7 @@ pub(crate) mod sync {
// internal use. Note however that some are not _currently_ named by
// consuming code.
// Not using parking_lot in Miri due to <https://github.com/Amanieu/parking_lot/issues/477>.
#[cfg(all(feature = "parking_lot", not(miri)))]
#[allow(unused_imports)]
pub(crate) use crate::loom::std::parking_lot::{
+1 -1
View File
@@ -292,7 +292,7 @@ pub(crate) mod test {
drop(signal_guard);
}
#[cfg_attr(miri, ignore)] // Miri does not support epoll.
#[cfg_attr(miri, ignore)] // No `sigaction` on Miri
#[test]
fn does_not_register_signal_if_queue_empty() {
let (io_driver, io_handle) = IoDriver::new(1024).unwrap();
-1
View File
@@ -431,7 +431,6 @@ impl Runtime {
/// use std::time::Duration;
///
/// fn main() {
/// # if cfg!(miri) { return } // Miri reports error when main thread terminated without waiting all remaining threads.
/// let runtime = Runtime::new().unwrap();
///
/// runtime.block_on(async move {
+1 -1
View File
@@ -77,7 +77,7 @@ cfg_not_loom! {
mod inject;
mod queue;
#[cfg(not(miri))]
#[cfg(not(miri))] // takes a really long time with miri
mod task_combinations;
#[cfg(miri)]
-2
View File
@@ -479,8 +479,6 @@ async fn multiple_waiters() {
}
#[tokio::test]
// Block on https://github.com/rust-lang/miri/issues/4374
#[cfg_attr(miri, ignore)]
async fn poll_fns() {
let (a, b) = socketpair();
let afd_a = Arc::new(AsyncFd::new(a).unwrap());
+1 -1
View File
@@ -3,7 +3,7 @@
// This tests test the behavior of `process::Command::spawn` when it is used
// outside runtime, and when `process::Child::wait ` is used in a different
// runtime from which `process::Command::spawn` is used.
#![cfg(all(unix, not(target_os = "freebsd"), not(miri)))]
#![cfg(all(unix, not(target_os = "freebsd"), not(miri)))] // Miri cannot run system commands
use std::process::Stdio;
use tokio::{process::Command, runtime::Runtime};
+1 -1
View File
@@ -1,5 +1,5 @@
#![warn(rust_2018_idioms)]
#![cfg(all(feature = "full", not(target_os = "wasi"), not(miri)))] // Wasi cannot run system commands
#![cfg(all(feature = "full", not(target_os = "wasi"), not(miri)))] // Wasi/Miri cannot run system commands
use tokio::process::Command;
+1 -1
View File
@@ -1,5 +1,5 @@
#![warn(rust_2018_idioms)]
#![cfg(all(feature = "full", not(target_os = "wasi"), not(miri)))] // Wasi cannot run system commands
#![cfg(all(feature = "full", not(target_os = "wasi"), not(miri)))] // Wasi/Miri cannot run system commands
use tokio::process::Command;
use tokio_test::assert_ok;
-1
View File
@@ -1,6 +1,5 @@
#![warn(rust_2018_idioms)]
#![cfg(feature = "full")]
#![cfg(not(miri))] // Possible bug on Miri.
use tokio::runtime::Runtime;
use tokio::sync::oneshot;