1 use test_programs::p3::wasi::http::types::{ErrorCode, Method, Scheme};
2 
3 struct Component;
4 
5 test_programs::p3::export!(Component);
6 
7 impl test_programs::p3::exports::wasi::cli::run::Guest for Component {
run() -> Result<(), ()>8     async fn run() -> Result<(), ()> {
9         let res = test_programs::p3::http::request(
10             Method::Get,
11             Scheme::Http,
12             "some.invalid.dnsname:3000",
13             "/",
14             None,
15             None,
16             None,
17             None,
18             None,
19         )
20         .await;
21 
22         let e = res.unwrap_err();
23         assert!(
24             matches!(
25                 e.downcast_ref::<ErrorCode>()
26                     .expect("expected a wasi-http ErrorCode"),
27                 ErrorCode::DnsError(_) | ErrorCode::ConnectionRefused,
28             ),
29             "Unexpected error: {e:#?}"
30         );
31         Ok(())
32     }
33 }
34 
main()35 fn main() {}
36