From cce21141640dfc6dce90fd107d80a6a73b7755c8 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 14 Nov 2021 19:32:21 +0000 Subject: [PATCH] add test for plain tokio runtime --- actix-server/src/test_server.rs | 13 ++++++++++++ actix-server/tests/test_server.rs | 35 +++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/actix-server/src/test_server.rs b/actix-server/src/test_server.rs index 7cf0d0a6..a7914372 100644 --- a/actix-server/src/test_server.rs +++ b/actix-server/src/test_server.rs @@ -147,3 +147,16 @@ impl Drop for TestServerRuntime { self.stop() } } + +#[cfg(test)] +mod tests { + use actix_service::fn_service; + + use super::*; + + #[tokio::test] + async fn plain_tokio_runtime() { + let srv = TestServer::with(|| fn_service(|_sock| async move { Ok::<_, ()>(()) })); + assert!(srv.connect().is_ok()); + } +} diff --git a/actix-server/tests/test_server.rs b/actix-server/tests/test_server.rs index c3951317..9a14e78a 100644 --- a/actix-server/tests/test_server.rs +++ b/actix-server/tests/test_server.rs @@ -47,6 +47,41 @@ fn test_bind() { h.join().unwrap().unwrap(); } +#[test] +fn plain_tokio_runtime() { + let addr = unused_addr(); + let (tx, rx) = mpsc::channel(); + + let h = thread::spawn(move || { + let rt = tokio::runtime::Builder::new_current_thread() + .enable_all() + .build() + .unwrap(); + + rt.block_on(async { + let srv = Server::build() + .workers(1) + .disable_signals() + .bind("test", addr, move || { + fn_service(|_| async { Ok::<_, ()>(()) }) + })? + .run(); + + tx.send(srv.handle()).unwrap(); + + srv.await + }) + }); + + let srv = rx.recv().unwrap(); + + thread::sleep(Duration::from_millis(500)); + assert!(net::TcpStream::connect(addr).is_ok()); + + let _ = srv.stop(true); + h.join().unwrap().unwrap(); +} + #[test] fn test_listen() { let addr = unused_addr();