diff options
author | Yosi Pramajaya <yosi.pramajaya@gmail.com> | 2021-01-10 19:20:47 +0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-10 13:20:47 +0100 |
commit | 9e9e104664d8574c7480f0800e08326f56254f6f (patch) | |
tree | e593f34ae0873edaad215db0653efe054778ffa1 | |
parent | 43618954766a2ba525541501422bb6e7d5ccc913 (diff) |
upgrade: tokio 0.1 in test_util crate (#8885)
This commit upgrades "tokio" and crates from tokio
ecosystem in "test_util" crate.
-rw-r--r-- | Cargo.lock | 284 | ||||
-rw-r--r-- | test_util/Cargo.toml | 15 | ||||
-rw-r--r-- | test_util/src/lib.rs | 65 |
3 files changed, 285 insertions, 79 deletions
diff --git a/Cargo.lock b/Cargo.lock index ab546e2d6..0f94d525a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -105,6 +105,27 @@ dependencies = [ ] [[package]] +name = "async-stream" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3670df70cbc01729f901f94c887814b3c68db038aad1329a418bae178bc5295c" +dependencies = [ + "async-stream-impl", + "futures-core", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3548b8efc9f8e8a5a0a2808c5bd8451a9031b9e5b879a79590304ae928b0a70" +dependencies = [ + "proc-macro2 1.0.24", + "quote 1.0.7", + "syn 1.0.56", +] + +[[package]] name = "async-trait" version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -157,6 +178,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" [[package]] +name = "base64" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" + +[[package]] name = "bitflags" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -223,6 +250,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0dcbc35f504eb6fc275a6d20e4ebcda18cf50d40ba6fabff8c711fa16cb3b16" [[package]] +name = "bytes" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad1f8e949d755f9d79112b5bb46938e0ef9d3804a0b16dfab13aafcaa5f0fa72" + +[[package]] name = "cargo_gn" version = "0.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -297,7 +330,7 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25e4c606eb459dd29f7c57b2e0879f2b6f14ee130918c2b78ccb58a9624e6c7a" dependencies = [ - "getrandom", + "getrandom 0.1.15", "proc-macro-hack", ] @@ -451,7 +484,7 @@ dependencies = [ "termcolor", "test_util", "tokio 0.2.22", - "tokio-rustls", + "tokio-rustls 0.14.1", "tower-test", "uuid", "walkdir", @@ -483,7 +516,7 @@ name = "deno_crypto" version = "0.9.0" dependencies = [ "deno_core", - "rand", + "rand 0.7.3", ] [[package]] @@ -545,7 +578,7 @@ dependencies = [ "filetime", "fwdansi", "http", - "hyper", + "hyper 0.13.9", "indexmap", "lazy_static", "libc", @@ -563,7 +596,7 @@ dependencies = [ "termcolor", "test_util", "tokio 0.2.22", - "tokio-rustls", + "tokio-rustls 0.14.1", "uuid", "webpki", "webpki-roots", @@ -589,8 +622,8 @@ dependencies = [ "http", "serde", "tokio 0.2.22", - "tokio-rustls", - "tokio-tungstenite", + "tokio-rustls 0.14.1", + "tokio-tungstenite 0.11.0", "webpki", "webpki-roots", ] @@ -1026,6 +1059,17 @@ dependencies = [ ] [[package]] +name = "getrandom" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4060f4657be78b8e766215b02b18a2e862d83745545de804638e2b545e81aee6" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", +] + +[[package]] name = "h2" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1090,6 +1134,16 @@ dependencies = [ ] [[package]] +name = "http-body" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2861bd27ee074e5ee891e8b539837a9430012e249d7f0ca2d795650f579c1994" +dependencies = [ + "bytes 1.0.0", + "http", +] + +[[package]] name = "httparse" version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1122,7 +1176,7 @@ dependencies = [ "futures-util", "h2", "http", - "http-body", + "http-body 0.3.1", "httparse", "httpdate", "itoa", @@ -1135,6 +1189,29 @@ dependencies = [ ] [[package]] +name = "hyper" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12219dc884514cb4a6a03737f4413c0e01c23a1b059b0156004b23f1e19dccbe" +dependencies = [ + "bytes 1.0.0", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body 0.4.0", + "httparse", + "httpdate", + "itoa", + "pin-project 1.0.2", + "socket2", + "tokio 1.0.1", + "tower-service", + "tracing", + "want", +] + +[[package]] name = "hyper-rustls" version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1142,11 +1219,11 @@ checksum = "37743cc83e8ee85eacfce90f2f4102030d9ff0a95244098d781e9bee4a90abb6" dependencies = [ "bytes 0.5.6", "futures-util", - "hyper", + "hyper 0.13.9", "log", - "rustls", + "rustls 0.18.1", "tokio 0.2.22", - "tokio-rustls", + "tokio-rustls 0.14.1", "webpki", ] @@ -1213,6 +1290,15 @@ dependencies = [ ] [[package]] +name = "input_buffer" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f97967975f448f1a7ddb12b0bc41069d09ed6a1c161a92687e057325db35d413" +dependencies = [ + "bytes 1.0.0", +] + +[[package]] name = "instant" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1698,7 +1784,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" dependencies = [ "phf_shared", - "rand", + "rand 0.7.3", ] [[package]] @@ -1905,22 +1991,44 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ - "getrandom", + "getrandom 0.1.15", "libc", - "rand_chacha", - "rand_core", - "rand_hc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc 0.2.0", "rand_pcg", ] [[package]] +name = "rand" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c24fcd450d3fa2b592732565aa4f17a27a61c65ece4726353e000939b0edee34" +dependencies = [ + "libc", + "rand_chacha 0.3.0", + "rand_core 0.6.1", + "rand_hc 0.3.0", +] + +[[package]] name = "rand_chacha" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.1", ] [[package]] @@ -1929,7 +2037,16 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" dependencies = [ - "getrandom", + "getrandom 0.1.15", +] + +[[package]] +name = "rand_core" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c026d7df8b298d90ccbbc5190bd04d85e159eaf5576caeacf8741da93ccbd2e5" +dependencies = [ + "getrandom 0.2.1", ] [[package]] @@ -1938,7 +2055,16 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" dependencies = [ - "rand_core", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_hc" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" +dependencies = [ + "rand_core 0.6.1", ] [[package]] @@ -1947,7 +2073,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" dependencies = [ - "rand_core", + "rand_core 0.5.1", ] [[package]] @@ -2002,8 +2128,8 @@ dependencies = [ "futures-core", "futures-util", "http", - "http-body", - "hyper", + "http-body 0.3.1", + "hyper 0.13.9", "hyper-rustls", "ipnet", "js-sys", @@ -2013,11 +2139,11 @@ dependencies = [ "mime_guess", "percent-encoding", "pin-project-lite 0.1.7", - "rustls", + "rustls 0.18.1", "serde", "serde_urlencoded", "tokio 0.2.22", - "tokio-rustls", + "tokio-rustls 0.14.1", "url", "wasm-bindgen", "wasm-bindgen-futures", @@ -2070,6 +2196,19 @@ dependencies = [ ] [[package]] +name = "rustls" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "064fd21ff87c6e87ed4506e68beb42459caa4a0e2eb144932e6776768556980b" +dependencies = [ + "base64 0.13.0", + "log", + "ring", + "sct", + "webpki", +] + +[[package]] name = "rusty_v8" version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2746,7 +2885,7 @@ checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" dependencies = [ "cfg-if 0.1.10", "libc", - "rand", + "rand 0.7.3", "redox_syscall", "remove_dir_all", "winapi 0.3.9", @@ -2774,17 +2913,18 @@ dependencies = [ name = "test_util" version = "0.1.0" dependencies = [ - "bytes 0.5.6", + "async-stream", + "bytes 1.0.0", "futures", - "hyper", + "hyper 0.14.2", "lazy_static", "os_pipe", "pty", "regex", "tempfile", - "tokio 0.2.22", - "tokio-rustls", - "tokio-tungstenite", + "tokio 1.0.1", + "tokio-rustls 0.22.0", + "tokio-tungstenite 0.13.0", ] [[package]] @@ -2889,6 +3029,26 @@ dependencies = [ ] [[package]] +name = "tokio" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d258221f566b6c803c7b4714abadc080172b272090cdc5e244a6d4dd13c3a6bd" +dependencies = [ + "autocfg", + "bytes 1.0.0", + "libc", + "memchr", + "mio 0.7.6", + "num_cpus", + "once_cell", + "parking_lot", + "pin-project-lite 0.2.0", + "signal-hook-registry", + "tokio-macros 1.0.0", + "winapi 0.3.9", +] + +[[package]] name = "tokio-macros" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2911,18 +3071,40 @@ dependencies = [ ] [[package]] +name = "tokio-macros" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42517d2975ca3114b22a16192634e8241dc5cc1f130be194645970cc1c371494" +dependencies = [ + "proc-macro2 1.0.24", + "quote 1.0.7", + "syn 1.0.56", +] + +[[package]] name = "tokio-rustls" version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e12831b255bcfa39dc0436b01e19fea231a37db570686c06ee72c423479f889a" dependencies = [ "futures-core", - "rustls", + "rustls 0.18.1", "tokio 0.2.22", "webpki", ] [[package]] +name = "tokio-rustls" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" +dependencies = [ + "rustls 0.19.0", + "tokio 1.0.1", + "webpki", +] + +[[package]] name = "tokio-test" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2943,7 +3125,20 @@ dependencies = [ "log", "pin-project 0.4.23", "tokio 0.2.22", - "tungstenite", + "tungstenite 0.11.1", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1a5f475f1b9d077ea1017ecbc60890fda8e54942d680ca0b1d2b47cfa2d861b" +dependencies = [ + "futures-util", + "log", + "pin-project 1.0.2", + "tokio 1.0.1", + "tungstenite 0.12.0", ] [[package]] @@ -3032,9 +3227,28 @@ dependencies = [ "bytes 0.5.6", "http", "httparse", - "input_buffer", + "input_buffer 0.3.1", + "log", + "rand 0.7.3", + "sha-1", + "url", + "utf-8", +] + +[[package]] +name = "tungstenite" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ada8297e8d70872fa9a551d93250a9f407beb9f37ef86494eb20012a2ff7c24" +dependencies = [ + "base64 0.13.0", + "byteorder", + "bytes 1.0.0", + "http", + "httparse", + "input_buffer 0.4.0", "log", - "rand", + "rand 0.8.1", "sha-1", "url", "utf-8", @@ -3134,7 +3348,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fde2f6a4bea1d6e007c4ad38c6839fa71cbb63b6dbf5b595aa38dc9b1093c11" dependencies = [ - "rand", + "rand 0.7.3", ] [[package]] diff --git a/test_util/Cargo.toml b/test_util/Cargo.toml index 6eee12ebc..3831c68f1 100644 --- a/test_util/Cargo.toml +++ b/test_util/Cargo.toml @@ -12,16 +12,17 @@ name = "test_server" path = "src/test_server.rs" [dependencies] -tokio = { version = "0.2.22", features = ["full"] } -futures = "0.3.8" -bytes = "0.5.6" +tokio = { version = "1.0", features = ["full"] } +futures = "0.3" +bytes = "1" lazy_static = "1.4.0" -os_pipe = "0.9.2" +os_pipe = "0.9" regex = "1.3.9" tempfile = "3.1.0" -hyper = "0.13" -tokio-tungstenite = "0.11" -tokio-rustls = "0.14" +hyper = { version = "0.14.2", features = ["server", "http1", "runtime"] } +tokio-tungstenite = "0.13" +tokio-rustls = "0.22" +async-stream = "0.3.0" [target.'cfg(unix)'.dependencies] pty = "0.2.2" diff --git a/test_util/src/lib.rs b/test_util/src/lib.rs index 3d5c60175..3f54fa9ee 100644 --- a/test_util/src/lib.rs +++ b/test_util/src/lib.rs @@ -5,28 +5,28 @@ #[macro_use] extern crate lazy_static; +use core::mem::replace; use futures::FutureExt; use futures::Stream; use futures::StreamExt; -use futures::TryStreamExt; use hyper::header::HeaderValue; +use hyper::server::Server; use hyper::service::make_service_fn; use hyper::service::service_fn; use hyper::Body; use hyper::Request; use hyper::Response; -use hyper::Server; use hyper::StatusCode; use os_pipe::pipe; #[cfg(unix)] pub use pty; use regex::Regex; use std::collections::HashMap; +use std::convert::Infallible; use std::env; use std::io; use std::io::Read; use std::io::Write; -use std::mem::replace; use std::net::SocketAddr; use std::path::PathBuf; use std::pin::Pin; @@ -146,11 +146,9 @@ async fn hyper_hello(port: u16) { println!("hyper hello"); let addr = SocketAddr::from(([127, 0, 0, 1], port)); let hello_svc = make_service_fn(|_| async move { - Ok::<_, hyper::error::Error>(service_fn( - move |_: Request<Body>| async move { - Ok::<_, hyper::error::Error>(Response::new(Body::from("Hello World!"))) - }, - )) + Ok::<_, Infallible>(service_fn(move |_: Request<Body>| async move { + Ok::<_, Infallible>(Response::new(Body::from("Hello World!"))) + })) }); let server = Server::bind(&addr).serve(hello_svc); @@ -203,7 +201,7 @@ async fn another_redirect(req: Request<Body>) -> hyper::Result<Response<Body>> { } async fn run_ws_server(addr: &SocketAddr) { - let mut listener = TcpListener::bind(addr).await.unwrap(); + let listener = TcpListener::bind(addr).await.unwrap(); while let Ok((stream, _addr)) = listener.accept().await { tokio::spawn(async move { let ws_stream_fut = accept_async(stream); @@ -278,7 +276,7 @@ async fn run_wss_server(addr: &SocketAddr) { let tls_config = get_tls_config(cert_file, key_file).await.unwrap(); let tls_acceptor = TlsAcceptor::from(tls_config); - let mut listener = TcpListener::bind(addr).await.unwrap(); + let listener = TcpListener::bind(addr).await.unwrap(); while let Ok((stream, _addr)) = listener.accept().await { let acceptor = tls_acceptor.clone(); @@ -620,7 +618,7 @@ unsafe impl std::marker::Send for HyperAcceptor<'_> {} async fn wrap_redirect_server() { let redirect_svc = - make_service_fn(|_| async { Ok::<_, hyper::Error>(service_fn(redirect)) }); + make_service_fn(|_| async { Ok::<_, Infallible>(service_fn(redirect)) }); let redirect_addr = SocketAddr::from(([127, 0, 0, 1], REDIRECT_PORT)); let redirect_server = Server::bind(&redirect_addr).serve(redirect_svc); if let Err(e) = redirect_server.await { @@ -630,7 +628,7 @@ async fn wrap_redirect_server() { async fn wrap_double_redirect_server() { let double_redirects_svc = make_service_fn(|_| async { - Ok::<_, hyper::Error>(service_fn(double_redirects)) + Ok::<_, Infallible>(service_fn(double_redirects)) }); let double_redirects_addr = SocketAddr::from(([127, 0, 0, 1], DOUBLE_REDIRECTS_PORT)); @@ -643,7 +641,7 @@ async fn wrap_double_redirect_server() { async fn wrap_inf_redirect_server() { let inf_redirects_svc = make_service_fn(|_| async { - Ok::<_, hyper::Error>(service_fn(inf_redirects)) + Ok::<_, Infallible>(service_fn(inf_redirects)) }); let inf_redirects_addr = SocketAddr::from(([127, 0, 0, 1], INF_REDIRECTS_PORT)); @@ -656,7 +654,7 @@ async fn wrap_inf_redirect_server() { async fn wrap_another_redirect_server() { let another_redirect_svc = make_service_fn(|_| async { - Ok::<_, hyper::Error>(service_fn(another_redirect)) + Ok::<_, Infallible>(service_fn(another_redirect)) }); let another_redirect_addr = SocketAddr::from(([127, 0, 0, 1], ANOTHER_REDIRECT_PORT)); @@ -669,7 +667,7 @@ async fn wrap_another_redirect_server() { async fn wrap_abs_redirect_server() { let abs_redirect_svc = make_service_fn(|_| async { - Ok::<_, hyper::Error>(service_fn(absolute_redirect)) + Ok::<_, Infallible>(service_fn(absolute_redirect)) }); let abs_redirect_addr = SocketAddr::from(([127, 0, 0, 1], REDIRECT_ABSOLUTE_PORT)); @@ -681,9 +679,8 @@ async fn wrap_abs_redirect_server() { } async fn wrap_main_server() { - let main_server_svc = make_service_fn(|_| async { - Ok::<_, hyper::Error>(service_fn(main_server)) - }); + let main_server_svc = + make_service_fn(|_| async { Ok::<_, Infallible>(service_fn(main_server)) }); let main_server_addr = SocketAddr::from(([127, 0, 0, 1], PORT)); let main_server = Server::bind(&main_server_addr).serve(main_server_svc); if let Err(e) = main_server.await { @@ -698,29 +695,23 @@ async fn wrap_main_https_server() { let tls_config = get_tls_config(cert_file, key_file) .await .expect("Cannot get TLS config"); - let mut tcp = TcpListener::bind(&main_server_https_addr) - .await - .expect("Cannot bind TCP"); loop { + let tcp = TcpListener::bind(&main_server_https_addr) + .await + .expect("Cannot bind TCP"); let tls_acceptor = TlsAcceptor::from(tls_config.clone()); // Prepare a long-running future stream to accept and serve cients. - let incoming_tls_stream = tcp - .incoming() - .map_err(|e| { - eprintln!("Error Incoming: {:?}", e); - io::Error::new(io::ErrorKind::Other, e) - }) - .and_then(move |s| { - use futures::TryFutureExt; - tls_acceptor.accept(s).map_err(|e| { - eprintln!("TLS Error {:?}", e); - e - }) - }) - .boxed(); + let incoming_tls_stream = async_stream::stream! { + loop { + let (socket, _) = tcp.accept().await?; + let stream = tls_acceptor.accept(socket); + yield stream.await; + } + } + .boxed(); let main_server_https_svc = make_service_fn(|_| async { - Ok::<_, hyper::Error>(service_fn(main_server)) + Ok::<_, Infallible>(service_fn(main_server)) }); let main_server_https = Server::builder(HyperAcceptor { acceptor: incoming_tls_stream, @@ -737,7 +728,7 @@ async fn wrap_main_https_server() { // Use the single-threaded scheduler. The hyper server is used as a point of // comparison for the (single-threaded!) benchmarks in cli/bench. We're not // comparing apples to apples if we use the default multi-threaded scheduler. -#[tokio::main(basic_scheduler)] +#[tokio::main(flavor = "current_thread")] pub async fn run_all_servers() { if let Some(port) = env::args().nth(1) { return hyper_hello(port.parse::<u16>().unwrap()).await; |