mirror of
https://github.com/tokio-rs/tokio.git
synced 2025-10-01 12:20:39 +00:00

The Tokio runtime provides a "shell" runtime when `rt-core` is not available. This shell runtime is enough to support `#[tokio::main`] and `#[tokio::test]. A previous change disabled these two attr macros when `rt-core` was not selected. This patch fixes this by re-enabling the `main` and `test` attr macros without `rt-core` and adds some integration tests to prevent future regressions.
26 lines
400 B
Rust
26 lines
400 B
Rust
#![cfg(feature = "macros")]
|
|
|
|
#[tokio::main]
|
|
async fn basic_main() -> usize {
|
|
1
|
|
}
|
|
|
|
#[cfg(feature = "rt-core")]
|
|
mod spawn {
|
|
#[tokio::main]
|
|
async fn spawning() -> usize {
|
|
let join = tokio::spawn(async { 1 });
|
|
join.await.unwrap()
|
|
}
|
|
|
|
#[test]
|
|
fn main_with_spawn() {
|
|
assert_eq!(1, spawning());
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn shell() {
|
|
assert_eq!(1, basic_main());
|
|
}
|