summaryrefslogtreecommitdiff
path: root/test_util/src/servers/grpc.rs
diff options
context:
space:
mode:
Diffstat (limited to 'test_util/src/servers/grpc.rs')
-rw-r--r--test_util/src/servers/grpc.rs103
1 files changed, 0 insertions, 103 deletions
diff --git a/test_util/src/servers/grpc.rs b/test_util/src/servers/grpc.rs
deleted file mode 100644
index 144afc06a..000000000
--- a/test_util/src/servers/grpc.rs
+++ /dev/null
@@ -1,103 +0,0 @@
-// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
-
-use futures::StreamExt;
-use h2;
-use hyper::header::HeaderName;
-use hyper::header::HeaderValue;
-use rustls_tokio_stream::TlsStream;
-use tokio::net::TcpStream;
-use tokio::task::LocalSet;
-
-use super::get_tcp_listener_stream;
-use super::get_tls_listener_stream;
-use super::SupportedHttpVersions;
-
-pub async fn h2_grpc_server(h2_grpc_port: u16, h2s_grpc_port: u16) {
- let mut tcp = get_tcp_listener_stream("grpc", h2_grpc_port).await;
- let mut tls = get_tls_listener_stream(
- "grpc (tls)",
- h2s_grpc_port,
- SupportedHttpVersions::Http2Only,
- )
- .await;
-
- async fn serve(socket: TcpStream) -> Result<(), anyhow::Error> {
- let mut connection = h2::server::handshake(socket).await?;
-
- while let Some(result) = connection.accept().await {
- let (request, respond) = result?;
- tokio::spawn(async move {
- let _ = handle_request(request, respond).await;
- });
- }
-
- Ok(())
- }
-
- async fn serve_tls(socket: TlsStream) -> Result<(), anyhow::Error> {
- let mut connection = h2::server::handshake(socket).await?;
-
- while let Some(result) = connection.accept().await {
- let (request, respond) = result?;
- tokio::spawn(async move {
- let _ = handle_request(request, respond).await;
- });
- }
-
- Ok(())
- }
-
- async fn handle_request(
- mut request: hyper::Request<h2::RecvStream>,
- mut respond: h2::server::SendResponse<bytes::Bytes>,
- ) -> Result<(), anyhow::Error> {
- let body = request.body_mut();
- while let Some(data) = body.data().await {
- let data = data?;
- let _ = body.flow_control().release_capacity(data.len());
- }
-
- let maybe_recv_trailers = body.trailers().await?;
-
- let response = hyper::Response::new(());
- let mut send = respond.send_response(response, false)?;
- send.send_data(bytes::Bytes::from_static(b"hello "), false)?;
- send.send_data(bytes::Bytes::from_static(b"world\n"), false)?;
- let mut trailers = hyper::HeaderMap::new();
- trailers.insert(
- HeaderName::from_static("abc"),
- HeaderValue::from_static("def"),
- );
- trailers.insert(
- HeaderName::from_static("opr"),
- HeaderValue::from_static("stv"),
- );
- if let Some(recv_trailers) = maybe_recv_trailers {
- for (key, value) in recv_trailers {
- trailers.insert(key.unwrap(), value);
- }
- }
- send.send_trailers(trailers)?;
-
- Ok(())
- }
-
- let local_set = LocalSet::new();
- local_set.spawn_local(async move {
- while let Some(Ok(tcp)) = tcp.next().await {
- tokio::spawn(async move {
- let _ = serve(tcp).await;
- });
- }
- });
-
- local_set.spawn_local(async move {
- while let Some(Ok(tls)) = tls.next().await {
- tokio::spawn(async move {
- let _ = serve_tls(tls).await;
- });
- }
- });
-
- local_set.await;
-}