mirror of https://github.com/fafhrd91/actix-net
refactor actix-server tests
This commit is contained in:
parent
62ddda420b
commit
ba8dedc212
|
@ -139,7 +139,8 @@ jobs:
|
||||||
args: cargo-hack
|
args: cargo-hack
|
||||||
|
|
||||||
- name: tests
|
- name: tests
|
||||||
run: cargo ci-test-lower-msrv
|
run: |
|
||||||
|
sudo bash -c "ulimit -Sl 512 && ulimit -Hl 512 && PATH=$PATH:/usr/share/rust/.cargo/bin && RUSTUP_TOOLCHAIN=1.46 cargo ci-test-lower-msrv"
|
||||||
|
|
||||||
- name: Clear the cargo caches
|
- name: Clear the cargo caches
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -5,8 +5,6 @@ use std::{net, thread, time::Duration};
|
||||||
use actix_rt::{net::TcpStream, time::sleep};
|
use actix_rt::{net::TcpStream, time::sleep};
|
||||||
use actix_server::Server;
|
use actix_server::Server;
|
||||||
use actix_service::fn_service;
|
use actix_service::fn_service;
|
||||||
use actix_utils::future::ok;
|
|
||||||
use futures_util::future::lazy;
|
|
||||||
|
|
||||||
fn unused_addr() -> net::SocketAddr {
|
fn unused_addr() -> net::SocketAddr {
|
||||||
let addr: net::SocketAddr = "127.0.0.1:0".parse().unwrap();
|
let addr: net::SocketAddr = "127.0.0.1:0".parse().unwrap();
|
||||||
|
@ -23,25 +21,28 @@ fn test_bind() {
|
||||||
let (tx, rx) = mpsc::channel();
|
let (tx, rx) = mpsc::channel();
|
||||||
|
|
||||||
let h = thread::spawn(move || {
|
let h = thread::spawn(move || {
|
||||||
let sys = actix_rt::System::new();
|
actix_rt::System::new().block_on(async {
|
||||||
let srv = sys.block_on(lazy(|_| {
|
let srv = Server::build()
|
||||||
Server::build()
|
|
||||||
.workers(1)
|
.workers(1)
|
||||||
.disable_signals()
|
.disable_signals()
|
||||||
.bind("test", addr, move || fn_service(|_| ok::<_, ()>(())))
|
.bind("test", addr, move || {
|
||||||
.unwrap()
|
fn_service(|_| async { Ok::<_, ()>(()) })
|
||||||
.run()
|
})?
|
||||||
}));
|
.run();
|
||||||
|
|
||||||
let _ = tx.send((srv, actix_rt::System::current()));
|
let _ = tx.send((srv.clone(), actix_rt::System::current()));
|
||||||
let _ = sys.run();
|
|
||||||
|
srv.await
|
||||||
|
})
|
||||||
});
|
});
|
||||||
let (_, sys) = rx.recv().unwrap();
|
let (srv, sys) = rx.recv().unwrap();
|
||||||
|
|
||||||
thread::sleep(Duration::from_millis(500));
|
thread::sleep(Duration::from_millis(500));
|
||||||
assert!(net::TcpStream::connect(addr).is_ok());
|
assert!(net::TcpStream::connect(addr).is_ok());
|
||||||
|
|
||||||
|
let _ = srv.stop(true);
|
||||||
sys.stop();
|
sys.stop();
|
||||||
let _ = h.join();
|
h.join().unwrap().unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -50,25 +51,30 @@ fn test_listen() {
|
||||||
let (tx, rx) = mpsc::channel();
|
let (tx, rx) = mpsc::channel();
|
||||||
|
|
||||||
let h = thread::spawn(move || {
|
let h = thread::spawn(move || {
|
||||||
let sys = actix_rt::System::new();
|
let lst = net::TcpListener::bind(addr)?;
|
||||||
let lst = net::TcpListener::bind(addr).unwrap();
|
actix_rt::System::new().block_on(async {
|
||||||
sys.block_on(async {
|
let srv = Server::build()
|
||||||
Server::build()
|
|
||||||
.disable_signals()
|
.disable_signals()
|
||||||
.workers(1)
|
.workers(1)
|
||||||
.listen("test", lst, move || fn_service(|_| ok::<_, ()>(())))
|
.listen("test", lst, move || {
|
||||||
.unwrap()
|
fn_service(|_| async { Ok::<_, ()>(()) })
|
||||||
|
})?
|
||||||
.run();
|
.run();
|
||||||
let _ = tx.send(actix_rt::System::current());
|
|
||||||
|
let _ = tx.send((srv.clone(), actix_rt::System::current()));
|
||||||
|
|
||||||
|
srv.await
|
||||||
|
})
|
||||||
});
|
});
|
||||||
let _ = sys.run();
|
|
||||||
});
|
let (srv, sys) = rx.recv().unwrap();
|
||||||
let sys = rx.recv().unwrap();
|
|
||||||
|
|
||||||
thread::sleep(Duration::from_millis(500));
|
thread::sleep(Duration::from_millis(500));
|
||||||
assert!(net::TcpStream::connect(addr).is_ok());
|
assert!(net::TcpStream::connect(addr).is_ok());
|
||||||
|
|
||||||
|
let _ = srv.stop(true);
|
||||||
sys.stop();
|
sys.stop();
|
||||||
let _ = h.join();
|
h.join().unwrap().unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -84,9 +90,8 @@ fn test_start() {
|
||||||
let (tx, rx) = mpsc::channel();
|
let (tx, rx) = mpsc::channel();
|
||||||
|
|
||||||
let h = thread::spawn(move || {
|
let h = thread::spawn(move || {
|
||||||
let sys = actix_rt::System::new();
|
actix_rt::System::new().block_on(async {
|
||||||
let srv = sys.block_on(lazy(|_| {
|
let srv = Server::build()
|
||||||
Server::build()
|
|
||||||
.backlog(100)
|
.backlog(100)
|
||||||
.disable_signals()
|
.disable_signals()
|
||||||
.bind("test", addr, move || {
|
.bind("test", addr, move || {
|
||||||
|
@ -95,13 +100,13 @@ fn test_start() {
|
||||||
f.send(Bytes::from_static(b"test")).await.unwrap();
|
f.send(Bytes::from_static(b"test")).await.unwrap();
|
||||||
Ok::<_, ()>(())
|
Ok::<_, ()>(())
|
||||||
})
|
})
|
||||||
})
|
})?
|
||||||
.unwrap()
|
.run();
|
||||||
.run()
|
|
||||||
}));
|
|
||||||
|
|
||||||
let _ = tx.send((srv, actix_rt::System::current()));
|
let _ = tx.send((srv.clone(), actix_rt::System::current()));
|
||||||
let _ = sys.run();
|
|
||||||
|
srv.await
|
||||||
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
let (srv, sys) = rx.recv().unwrap();
|
let (srv, sys) = rx.recv().unwrap();
|
||||||
|
@ -134,12 +139,10 @@ fn test_start() {
|
||||||
|
|
||||||
// stop
|
// stop
|
||||||
let _ = srv.stop(false);
|
let _ = srv.stop(false);
|
||||||
thread::sleep(Duration::from_millis(100));
|
|
||||||
assert!(net::TcpStream::connect(addr).is_err());
|
|
||||||
|
|
||||||
thread::sleep(Duration::from_millis(100));
|
|
||||||
sys.stop();
|
sys.stop();
|
||||||
let _ = h.join();
|
h.join().unwrap().unwrap();
|
||||||
|
|
||||||
|
assert!(net::TcpStream::connect(addr).is_err());
|
||||||
}
|
}
|
||||||
|
|
||||||
#[actix_rt::test]
|
#[actix_rt::test]
|
||||||
|
@ -209,9 +212,8 @@ async fn test_max_concurrent_connections() {
|
||||||
}
|
}
|
||||||
|
|
||||||
srv.stop(false).await;
|
srv.stop(false).await;
|
||||||
|
|
||||||
sys.stop();
|
sys.stop();
|
||||||
let _ = h.join().unwrap();
|
h.join().unwrap().unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[actix_rt::test]
|
#[actix_rt::test]
|
||||||
|
@ -266,16 +268,14 @@ async fn test_service_restart() {
|
||||||
let num = num.clone();
|
let num = num.clone();
|
||||||
async move { Ok::<_, ()>(TestService(num)) }
|
async move { Ok::<_, ()>(TestService(num)) }
|
||||||
})
|
})
|
||||||
})
|
})?
|
||||||
.unwrap()
|
|
||||||
.bind("addr2", addr2, move || {
|
.bind("addr2", addr2, move || {
|
||||||
let num2 = num2.clone();
|
let num2 = num2.clone();
|
||||||
fn_factory(move || {
|
fn_factory(move || {
|
||||||
let num2 = num2.clone();
|
let num2 = num2.clone();
|
||||||
async move { Ok::<_, ()>(TestService(num2)) }
|
async move { Ok::<_, ()>(TestService(num2)) }
|
||||||
})
|
})
|
||||||
})
|
})?
|
||||||
.unwrap()
|
|
||||||
.workers(1)
|
.workers(1)
|
||||||
.run();
|
.run();
|
||||||
|
|
||||||
|
@ -306,9 +306,9 @@ async fn test_service_restart() {
|
||||||
assert!(num_clone.load(Ordering::SeqCst) > 5);
|
assert!(num_clone.load(Ordering::SeqCst) > 5);
|
||||||
assert!(num2_clone.load(Ordering::SeqCst) > 5);
|
assert!(num2_clone.load(Ordering::SeqCst) > 5);
|
||||||
|
|
||||||
sys.stop();
|
|
||||||
let _ = server.stop(false);
|
let _ = server.stop(false);
|
||||||
let _ = h.join().unwrap();
|
sys.stop();
|
||||||
|
h.join().unwrap().unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
#[ignore]
|
#[ignore]
|
||||||
|
@ -380,12 +380,12 @@ async fn worker_restart() {
|
||||||
actix_rt::System::new().block_on(async {
|
actix_rt::System::new().block_on(async {
|
||||||
let server = Server::build()
|
let server = Server::build()
|
||||||
.disable_signals()
|
.disable_signals()
|
||||||
.bind("addr", addr, move || TestServiceFactory(counter.clone()))
|
.bind("addr", addr, move || TestServiceFactory(counter.clone()))?
|
||||||
.unwrap()
|
|
||||||
.workers(2)
|
.workers(2)
|
||||||
.run();
|
.run();
|
||||||
|
|
||||||
let _ = tx.send((server.clone(), actix_rt::System::current()));
|
let _ = tx.send((server.clone(), actix_rt::System::current()));
|
||||||
|
|
||||||
server.await
|
server.await
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
@ -447,7 +447,7 @@ async fn worker_restart() {
|
||||||
assert_eq!("3", id);
|
assert_eq!("3", id);
|
||||||
stream.shutdown().await.unwrap();
|
stream.shutdown().await.unwrap();
|
||||||
|
|
||||||
sys.stop();
|
|
||||||
let _ = server.stop(false);
|
let _ = server.stop(false);
|
||||||
let _ = h.join().unwrap();
|
sys.stop();
|
||||||
|
h.join().unwrap().unwrap();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue