diff options
Diffstat (limited to 'test_util/src/lib.rs')
-rw-r--r-- | test_util/src/lib.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/test_util/src/lib.rs b/test_util/src/lib.rs index 1f8548e34..832c40f59 100644 --- a/test_util/src/lib.rs +++ b/test_util/src/lib.rs @@ -39,6 +39,8 @@ const DOUBLE_REDIRECTS_PORT: u16 = 4548; const INF_REDIRECTS_PORT: u16 = 4549; const REDIRECT_ABSOLUTE_PORT: u16 = 4550; const HTTPS_PORT: u16 = 5545; +const WS_PORT: u16 = 4242; +const WSS_PORT: u16 = 4243; pub const PERMISSION_VARIANTS: [&str; 5] = ["read", "write", "env", "net", "run"]; @@ -135,6 +137,25 @@ pub async fn run_all_servers() { let redirect_server_fut = warp::serve(routes).bind(([127, 0, 0, 1], REDIRECT_PORT)); + let websocket_route = warp::ws().map(|ws: warp::ws::Ws| { + ws.on_upgrade(|websocket| { + use futures::stream::StreamExt; + let (tx, rx) = websocket.split(); + rx.forward(tx).map(|result| { + if let Err(e) = result { + println!("websocket server error: {:?}", e); + } + }) + }) + }); + let ws_server_fut = + warp::serve(websocket_route).bind(([127, 0, 0, 1], WS_PORT)); + let wss_server_fut = warp::serve(websocket_route) + .tls() + .cert_path("std/http/testdata/tls/localhost.crt") + .key_path("std/http/testdata/tls/localhost.key") + .bind(([127, 0, 0, 1], WSS_PORT)); + let routes = warp::path::full().map(|path: warp::path::FullPath| { let p = path.as_str(); assert_eq!(&p[0..1], "/"); @@ -426,6 +447,8 @@ pub async fn run_all_servers() { http_fut, https_fut, redirect_server_fut, + ws_server_fut, + wss_server_fut, another_redirect_server_fut, inf_redirect_server_fut, double_redirect_server_fut, |