Path: blob/main/crates/wasi-http/tests/all/p2/async_.rs
3141 views
use super::*;1use test_programs_artifacts::*;2use wasmtime_wasi::p2::bindings::Command;34foreach_p2_http!(assert_test_exists);56async fn run(path: &str, server: &Server) -> Result<()> {7let engine = test_programs_artifacts::engine(|config| {8config.wasm_backtrace_details(wasmtime::WasmBacktraceDetails::Enable);9});10let component = Component::from_file(&engine, path)?;11let mut store = store(&engine, server);12let mut linker = Linker::new(&engine);13wasmtime_wasi::p2::add_to_linker_async(&mut linker)?;14wasmtime_wasi_http::add_only_http_to_linker_async(&mut linker)?;15let command = Command::instantiate_async(&mut store, &component, &linker).await?;16let result = command.wasi_cli_run().call_run(&mut store).await?;17result.map_err(|()| wasmtime::format_err!("run returned an error"))18}1920#[test_log::test(tokio::test(flavor = "multi_thread"))]21async fn p2_http_outbound_request_get() -> Result<()> {22let server = Server::http1(1)?;23run(P2_HTTP_OUTBOUND_REQUEST_GET_COMPONENT, &server).await24}2526#[test_log::test(tokio::test(flavor = "multi_thread"))]27async fn p2_http_outbound_request_timeout() -> Result<()> {28let server = Server::http1(1)?;29run(P2_HTTP_OUTBOUND_REQUEST_TIMEOUT_COMPONENT, &server).await30}3132#[test_log::test(tokio::test(flavor = "multi_thread"))]33async fn p2_http_outbound_request_post() -> Result<()> {34let server = Server::http1(1)?;35run(P2_HTTP_OUTBOUND_REQUEST_POST_COMPONENT, &server).await36}3738#[test_log::test(tokio::test(flavor = "multi_thread"))]39async fn p2_http_outbound_request_large_post() -> Result<()> {40let server = Server::http1(1)?;41run(P2_HTTP_OUTBOUND_REQUEST_LARGE_POST_COMPONENT, &server).await42}4344#[test_log::test(tokio::test(flavor = "multi_thread"))]45async fn p2_http_outbound_request_put() -> Result<()> {46let server = Server::http1(1)?;47run(P2_HTTP_OUTBOUND_REQUEST_PUT_COMPONENT, &server).await48}4950#[test_log::test(tokio::test(flavor = "multi_thread"))]51async fn p2_http_outbound_request_invalid_version() -> Result<()> {52let server = Server::http2(1)?;53run(P2_HTTP_OUTBOUND_REQUEST_INVALID_VERSION_COMPONENT, &server).await54}5556#[test_log::test(tokio::test(flavor = "multi_thread"))]57async fn p2_http_outbound_request_invalid_header() -> Result<()> {58let server = Server::http2(1)?;59run(P2_HTTP_OUTBOUND_REQUEST_INVALID_HEADER_COMPONENT, &server).await60}6162#[test_log::test(tokio::test(flavor = "multi_thread"))]63async fn p2_http_outbound_request_unknown_method() -> Result<()> {64let server = Server::http1(1)?;65run(P2_HTTP_OUTBOUND_REQUEST_UNKNOWN_METHOD_COMPONENT, &server).await66}6768#[test_log::test(tokio::test(flavor = "multi_thread"))]69async fn p2_http_outbound_request_unsupported_scheme() -> Result<()> {70let server = Server::http1(1)?;71run(72P2_HTTP_OUTBOUND_REQUEST_UNSUPPORTED_SCHEME_COMPONENT,73&server,74)75.await76}7778#[test_log::test(tokio::test(flavor = "multi_thread"))]79async fn p2_http_outbound_request_invalid_port() -> Result<()> {80let server = Server::http1(1)?;81run(P2_HTTP_OUTBOUND_REQUEST_INVALID_PORT_COMPONENT, &server).await82}8384#[test_log::test(tokio::test(flavor = "multi_thread"))]85async fn p2_http_outbound_request_invalid_dnsname() -> Result<()> {86let server = Server::http1(1)?;87run(P2_HTTP_OUTBOUND_REQUEST_INVALID_DNSNAME_COMPONENT, &server).await88}8990#[test_log::test(tokio::test(flavor = "multi_thread"))]91async fn p2_http_outbound_request_response_build() -> Result<()> {92let server = Server::http1(1)?;93run(P2_HTTP_OUTBOUND_REQUEST_RESPONSE_BUILD_COMPONENT, &server).await94}9596#[test_log::test(tokio::test(flavor = "multi_thread"))]97async fn p2_http_outbound_request_content_length() -> Result<()> {98let server = Server::http1(1)?;99run(P2_HTTP_OUTBOUND_REQUEST_CONTENT_LENGTH_COMPONENT, &server).await100}101102#[test_log::test(tokio::test(flavor = "multi_thread"))]103async fn p2_http_outbound_request_missing_path_and_query() -> Result<()> {104let server = Server::http1(1)?;105run(106P2_HTTP_OUTBOUND_REQUEST_MISSING_PATH_AND_QUERY_COMPONENT,107&server,108)109.await110}111112113