mirror of
https://github.com/tokio-rs/tokio.git
synced 2025-09-25 12:00:35 +00:00

Currently, we only have WASM regression tests that run without WASI. However, rust provides a WASI specific target which enables code to special case WASI. This PR adds a basic test to cover that case. This is an initial addition to help land tokio-rs/tokio#4716.
42 lines
709 B
Rust
42 lines
709 B
Rust
use tokio::sync::oneshot;
|
|
use tokio::task;
|
|
|
|
async fn spawn_send() {
|
|
let (tx, rx) = oneshot::channel();
|
|
|
|
let task = tokio::spawn(async {
|
|
for _ in 0..10 {
|
|
task::yield_now().await;
|
|
}
|
|
|
|
tx.send("done").unwrap();
|
|
});
|
|
|
|
assert_eq!("done", rx.await.unwrap());
|
|
task.await.unwrap();
|
|
}
|
|
|
|
#[tokio::main(flavor = "current_thread")]
|
|
async fn entry_point() {
|
|
spawn_send().await;
|
|
}
|
|
|
|
#[tokio::test]
|
|
async fn test_macro() {
|
|
spawn_send().await;
|
|
}
|
|
|
|
#[test]
|
|
fn main_macro() {
|
|
entry_point();
|
|
}
|
|
|
|
#[test]
|
|
fn manual_rt() {
|
|
let rt = tokio::runtime::Builder::new_current_thread()
|
|
.build()
|
|
.unwrap();
|
|
|
|
rt.block_on(async { spawn_send().await });
|
|
}
|