diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/Cargo.toml | 8 | ||||
-rw-r--r-- | cli/tests/integration/inspector_tests.rs | 41 | ||||
-rw-r--r-- | cli/tests/integration/run_tests.rs | 54 | ||||
-rw-r--r-- | cli/tools/registry/mod.rs | 2 | ||||
-rw-r--r-- | cli/tools/registry/tar.rs | 2 |
5 files changed, 60 insertions, 47 deletions
diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 413da7db8..77aded6da 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -95,14 +95,12 @@ dprint-plugin-typescript = "=0.88.7" encoding_rs.workspace = true env_logger = "=0.10.0" fancy-regex = "=0.10.0" -fastwebsockets.workspace = true # If you disable the default __vendored_zlib_ng feature above, you _must_ be able to link against `-lz`. flate2.workspace = true fs3.workspace = true glob = "0.3.1" hex.workspace = true http.workspace = true -hyper.workspace = true import_map = { version = "=0.18.0", features = ["ext"] } indexmap.workspace = true jsonc-parser = { version = "=0.23.0", features = ["serde"] } @@ -152,7 +150,13 @@ nix.workspace = true [dev-dependencies] deno_bench_util.workspace = true +fastwebsockets_06 = { package = "fastwebsockets", version = "0.6", features = ["upgrade", "unstable-split"] } flaky_test = "=0.1.0" +h2_04 = { package = "h2", version = "0.4" } +http-body-util = "0.1" +http_1 = { package = "http", version = "1.0" } +hyper-util.workspace = true +hyper1.workspace = true once_cell.workspace = true os_pipe.workspace = true pretty_assertions.workspace = true diff --git a/cli/tests/integration/inspector_tests.rs b/cli/tests/integration/inspector_tests.rs index 95310667b..c06cb6a0d 100644 --- a/cli/tests/integration/inspector_tests.rs +++ b/cli/tests/integration/inspector_tests.rs @@ -1,20 +1,20 @@ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. +use bytes::Bytes; use deno_core::anyhow::anyhow; use deno_core::error::AnyError; use deno_core::serde_json; use deno_core::serde_json::json; use deno_core::url; use deno_runtime::deno_fetch::reqwest; -use fastwebsockets::FragmentCollector; -use fastwebsockets::Frame; -use fastwebsockets::WebSocket; -use http::header::HOST; -use hyper::header::HeaderValue; -use hyper::upgrade::Upgraded; -use hyper::Body; -use hyper::Request; -use hyper::Response; +use fastwebsockets_06::FragmentCollector; +use fastwebsockets_06::Frame; +use fastwebsockets_06::WebSocket; +use hyper1::body::Incoming; +use hyper1::upgrade::Upgraded; +use hyper1::Request; +use hyper1::Response; +use hyper_util::rt::TokioIo; use std::io::BufRead; use std::time::Duration; use test_util as util; @@ -25,9 +25,14 @@ use util::assert_starts_with; use util::DenoChild; use util::TestContextBuilder; +// TODO(bartlomieju): remove `http::header` once we update to `reqwest` +// to version that uses Hyper 1.0 +use http::header::HeaderValue; +use http::header::HOST; + struct SpawnExecutor; -impl<Fut> hyper::rt::Executor<Fut> for SpawnExecutor +impl<Fut> hyper1::rt::Executor<Fut> for SpawnExecutor where Fut: std::future::Future + Send + 'static, Fut::Output: Send + 'static, @@ -37,7 +42,9 @@ where } } -async fn connect_to_ws(uri: Url) -> (WebSocket<Upgraded>, Response<Body>) { +async fn connect_to_ws( + uri: Url, +) -> (WebSocket<TokioIo<Upgraded>>, Response<Incoming>) { let domain = &uri.host().unwrap().to_string(); let port = &uri.port().unwrap_or(match uri.scheme() { "wss" | "https" => 443, @@ -53,23 +60,23 @@ async fn connect_to_ws(uri: Url) -> (WebSocket<Upgraded>, Response<Body>) { .method("GET") .uri(uri.path()) .header("Host", host) - .header(hyper::header::UPGRADE, "websocket") - .header(hyper::header::CONNECTION, "Upgrade") + .header(hyper1::header::UPGRADE, "websocket") + .header(hyper1::header::CONNECTION, "Upgrade") .header( "Sec-WebSocket-Key", - fastwebsockets::handshake::generate_key(), + fastwebsockets_06::handshake::generate_key(), ) .header("Sec-WebSocket-Version", "13") - .body(hyper::Body::empty()) + .body(http_body_util::Empty::<Bytes>::new()) .unwrap(); - fastwebsockets::handshake::client(&SpawnExecutor, req, stream) + fastwebsockets_06::handshake::client(&SpawnExecutor, req, stream) .await .unwrap() } struct InspectorTester { - socket: FragmentCollector<Upgraded>, + socket: FragmentCollector<TokioIo<Upgraded>>, notification_filter: Box<dyn FnMut(&str) -> bool + 'static>, child: DenoChild, stderr_lines: Box<dyn Iterator<Item = String>>, diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs index 6bba87ae3..db18d1812 100644 --- a/cli/tests/integration/run_tests.rs +++ b/cli/tests/integration/run_tests.rs @@ -1,5 +1,6 @@ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. +use bytes::Bytes; use deno_core::serde_json::json; use deno_core::url; use deno_runtime::deno_fetch::reqwest; @@ -4378,32 +4379,32 @@ async fn websocketstream_ping() { let script = util::testdata_path().join("run/websocketstream_ping_test.ts"); let root_ca = util::testdata_path().join("tls/RootCA.pem"); - let srv_fn = hyper::service::service_fn(|mut req| async move { + let srv_fn = hyper1::service::service_fn(|mut req| async move { let (response, upgrade_fut) = - fastwebsockets::upgrade::upgrade(&mut req).unwrap(); + fastwebsockets_06::upgrade::upgrade(&mut req).unwrap(); tokio::spawn(async move { let mut ws = upgrade_fut.await.unwrap(); - ws.write_frame(fastwebsockets::Frame::text(b"A"[..].into())) + ws.write_frame(fastwebsockets_06::Frame::text(b"A"[..].into())) .await .unwrap(); - ws.write_frame(fastwebsockets::Frame::new( + ws.write_frame(fastwebsockets_06::Frame::new( true, - fastwebsockets::OpCode::Ping, + fastwebsockets_06::OpCode::Ping, None, vec![].into(), )) .await .unwrap(); - ws.write_frame(fastwebsockets::Frame::text(b"B"[..].into())) + ws.write_frame(fastwebsockets_06::Frame::text(b"B"[..].into())) .await .unwrap(); let message = ws.read_frame().await.unwrap(); - assert_eq!(message.opcode, fastwebsockets::OpCode::Pong); - ws.write_frame(fastwebsockets::Frame::text(b"C"[..].into())) + assert_eq!(message.opcode, fastwebsockets_06::OpCode::Pong); + ws.write_frame(fastwebsockets_06::Frame::text(b"C"[..].into())) .await .unwrap(); - ws.write_frame(fastwebsockets::Frame::close_raw(vec![].into())) + ws.write_frame(fastwebsockets_06::Frame::close_raw(vec![].into())) .await .unwrap(); }); @@ -4425,8 +4426,9 @@ async fn websocketstream_ping() { .unwrap(); tokio::spawn(async move { let (stream, _) = server.accept().await.unwrap(); - let conn_fut = hyper::server::conn::Http::new() - .serve_connection(stream, srv_fn) + let io = hyper_util::rt::TokioIo::new(stream); + let conn_fut = hyper1::server::conn::http1::Builder::new() + .serve_connection(io, srv_fn) .with_upgrades(); if let Err(e) = conn_fut.await { @@ -4440,7 +4442,7 @@ async fn websocketstream_ping() { struct SpawnExecutor; -impl<Fut> hyper::rt::Executor<Fut> for SpawnExecutor +impl<Fut> hyper1::rt::Executor<Fut> for SpawnExecutor where Fut: std::future::Future + Send + 'static, Fut::Output: Send + 'static, @@ -4476,28 +4478,28 @@ async fn websocket_server_multi_field_connection_header() { let stream = tokio::net::TcpStream::connect("localhost:4319") .await .unwrap(); - let req = hyper::Request::builder() - .header(hyper::header::UPGRADE, "websocket") - .header(http::header::CONNECTION, "keep-alive, Upgrade") + let req = http_1::Request::builder() + .header(http_1::header::UPGRADE, "websocket") + .header(http_1::header::CONNECTION, "keep-alive, Upgrade") .header( "Sec-WebSocket-Key", - fastwebsockets::handshake::generate_key(), + fastwebsockets_06::handshake::generate_key(), ) .header("Sec-WebSocket-Version", "13") .uri("ws://localhost:4319") - .body(hyper::Body::empty()) + .body(http_body_util::Empty::<Bytes>::new()) .unwrap(); let (mut socket, _) = - fastwebsockets::handshake::client(&SpawnExecutor, req, stream) + fastwebsockets_06::handshake::client(&SpawnExecutor, req, stream) .await .unwrap(); let message = socket.read_frame().await.unwrap(); - assert_eq!(message.opcode, fastwebsockets::OpCode::Close); + assert_eq!(message.opcode, fastwebsockets_06::OpCode::Close); assert!(message.payload.is_empty()); socket - .write_frame(fastwebsockets::Frame::close_raw(vec![].into())) + .write_frame(fastwebsockets_06::Frame::close_raw(vec![].into())) .await .unwrap(); assert!(child.wait().unwrap().success()); @@ -4531,20 +4533,20 @@ async fn websocket_server_idletimeout() { let stream = tokio::net::TcpStream::connect("localhost:4509") .await .unwrap(); - let req = hyper::Request::builder() - .header(hyper::header::UPGRADE, "websocket") - .header(http::header::CONNECTION, "keep-alive, Upgrade") + let req = http_1::Request::builder() + .header(http_1::header::UPGRADE, "websocket") + .header(http_1::header::CONNECTION, "keep-alive, Upgrade") .header( "Sec-WebSocket-Key", - fastwebsockets::handshake::generate_key(), + fastwebsockets_06::handshake::generate_key(), ) .header("Sec-WebSocket-Version", "13") .uri("ws://localhost:4509") - .body(hyper::Body::empty()) + .body(http_body_util::Empty::<Bytes>::new()) .unwrap(); let (_socket, _) = - fastwebsockets::handshake::client(&SpawnExecutor, req, stream) + fastwebsockets_06::handshake::client(&SpawnExecutor, req, stream) .await .unwrap(); diff --git a/cli/tools/registry/mod.rs b/cli/tools/registry/mod.rs index 06d5a0091..42623039d 100644 --- a/cli/tools/registry/mod.rs +++ b/cli/tools/registry/mod.rs @@ -8,6 +8,7 @@ use std::sync::Arc; use base64::prelude::BASE64_STANDARD; use base64::Engine; +use bytes::Bytes; use deno_config::ConfigFile; use deno_core::anyhow::bail; use deno_core::anyhow::Context; @@ -20,7 +21,6 @@ use deno_runtime::colors; use deno_runtime::deno_fetch::reqwest; use http::header::AUTHORIZATION; use http::header::CONTENT_ENCODING; -use hyper::body::Bytes; use import_map::ImportMap; use lsp_types::Url; use serde::Serialize; diff --git a/cli/tools/registry/tar.rs b/cli/tools/registry/tar.rs index 7d03e10a6..14d0f4e4b 100644 --- a/cli/tools/registry/tar.rs +++ b/cli/tools/registry/tar.rs @@ -1,10 +1,10 @@ // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. +use bytes::Bytes; use deno_core::anyhow; use deno_core::anyhow::Context; use deno_core::error::AnyError; use deno_core::url::Url; -use hyper::body::Bytes; use std::io::Write; use std::path::Path; use tar::Header; |