summaryrefslogtreecommitdiff
path: root/test_util/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'test_util/src/lib.rs')
-rw-r--r--test_util/src/lib.rs23
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,