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 { 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 35 fn main() {} 36