(
component: &str,
connection_count: usize,
requests_per_connection: usize,
configure: impl FnOnce(&mut Command),
)
| 2751 | } |
| 2752 | |
| 2753 | async fn cli_serve_sleep( |
| 2754 | component: &str, |
| 2755 | connection_count: usize, |
| 2756 | requests_per_connection: usize, |
| 2757 | configure: impl FnOnce(&mut Command), |
| 2758 | ) -> Result<()> { |
| 2759 | let server = std::sync::Arc::new(WasmtimeServe::new(component, move |cmd| { |
| 2760 | configure(cmd); |
| 2761 | cmd.arg("-Wtimeout=100us"); |
| 2762 | })?); |
| 2763 | |
| 2764 | let tasks = (0..connection_count).map({ |
| 2765 | let server = server.clone(); |
| 2766 | move |_| { |
| 2767 | tokio::task::spawn({ |
| 2768 | let server = server.clone(); |
| 2769 | async move { |
| 2770 | let (mut send, conn_task) = server.start_requests().await?; |
| 2771 | |
| 2772 | for _ in 0..requests_per_connection { |
| 2773 | let result = WasmtimeServe::send_request_with( |
| 2774 | &mut send, |
| 2775 | hyper::Request::builder() |
| 2776 | .uri("http://localhost/") |
| 2777 | .body(String::new()) |
| 2778 | .context("failed to make request")?, |
| 2779 | ) |
| 2780 | .await?; |
| 2781 | |
| 2782 | assert!(result.status().is_server_error()); |
| 2783 | } |
| 2784 | |
| 2785 | drop(send); |
| 2786 | |
| 2787 | conn_task.await??; |
| 2788 | |
| 2789 | wasmtime::error::Ok(()) |
| 2790 | } |
| 2791 | }) |
| 2792 | } |
| 2793 | }); |
| 2794 | |
| 2795 | for task in tasks { |
| 2796 | task.await??; |
| 2797 | } |
| 2798 | |
| 2799 | let (stdout, stderr) = std::sync::Arc::into_inner(server).unwrap().finish()?; |
| 2800 | assert_eq!(stdout, ""); |
| 2801 | assert!(stderr.contains("guest timed out"), "bad stderr: {stderr}"); |
| 2802 | Ok(()) |
| 2803 | } |
| 2804 | |
| 2805 | #[test] |
| 2806 | fn p2_cli_many_resources() -> Result<()> { |
no test coverage detected