1 unstable release
0.0.2 | Feb 23, 2025 |
---|
#512 in Testing
140 downloads per month
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
~200–630KB
~15K SLoC