1 unstable release
| 0.0.2 | Feb 23, 2025 |
|---|
#18 in #tokio-test
6KB
58 lines
tokio-test-shutdown-timeout
A wrapper for #[tokio::test] that allows specifying a shutdown timeout.
Useful in situations where normal tokio tests hang because dropping the tokio runtime waits forever for all tasks to finish.
Usage
#[tokio_test_shutdown_timeout::test(1)]
#[should_panic]
async fn minimal_async_test() {
// Start a forever-running blocking tokio task
tokio::task::spawn_blocking(|| thread::sleep(Duration::MAX));
// panic to fail the test
panic!();
// Normal tokio::test would block here, as dropping the tokio runtime
// blocks until all tasks quit, and we have a task that never quits.
// This custom version uses tokio's shutdown_timeout to avoid the deadlock.
}
Dependencies
~115–485KB
~11K SLoC