diff --git a/tests/test-components/components/tcp-sockets/src/lib.rs b/tests/test-components/components/tcp-sockets/src/lib.rs index a2a682348d..541cd4c94e 100644 --- a/tests/test-components/components/tcp-sockets/src/lib.rs +++ b/tests/test-components/components/tcp-sockets/src/lib.rs @@ -1,6 +1,6 @@ use bindings::wasi::{ - io0_2_0_rc_2023_10_18::poll, - sockets0_2_0_rc_2023_10_18::{ + io0_2_0::poll, + sockets0_2_0::{ instance_network, network::{ ErrorCode, IpAddressFamily, IpSocketAddress, Ipv4SocketAddress, Ipv6SocketAddress, @@ -43,7 +43,7 @@ impl Component { let (rx, tx) = loop { match client.finish_connect() { - Err(ErrorCode::WouldBlock) => poll::poll_one(&client.subscribe()), + Err(ErrorCode::WouldBlock) => { poll::poll(&[&client.subscribe()]); }, result => break ensure_ok!(result), } }; diff --git a/tests/test-components/helper/src/lib.rs b/tests/test-components/helper/src/lib.rs index a9cb230980..bcf056f47f 100644 --- a/tests/test-components/helper/src/lib.rs +++ b/tests/test-components/helper/src/lib.rs @@ -1,18 +1,18 @@ #[cfg(feature = "define-component")] pub mod bindings { wit_bindgen::generate!({ - world: "platform-rc20231018", + world: "fermyon:spin/platform@3.0.0", path: "../../../wit", runtime_path: "::wit_bindgen::rt" }); } #[cfg(feature = "define-component")] -use bindings::wasi::http0_2_0_rc_2023_10_18::types::{ - Error, Headers, OutgoingBody, OutgoingResponse, ResponseOutparam, +use bindings::wasi::http0_2_0::types::{ + ErrorCode, Fields, OutgoingBody, OutgoingResponse, ResponseOutparam, }; #[cfg(feature = "define-component")] -use bindings::wasi::io0_2_0_rc_2023_10_18::streams::OutputStream; +use bindings::wasi::io0_2_0::streams::OutputStream; #[cfg(feature = "define-component")] #[macro_export] @@ -23,15 +23,15 @@ macro_rules! define_component { // For now, this assumes the crate using this macro has `wit-bindgen` as a dependency mod bindings { $crate::wit_bindgen::generate!({ - world: "http-trigger-rc20231018", + world: "fermyon:spin/http-trigger@3.0.0", path: "../../../../wit", exports: { - "wasi:http/incoming-handler@0.2.0-rc-2023-10-18": super::Component + "wasi:http/incoming-handler@0.2.0": super::Component }, }); } - use bindings::exports::wasi::http0_2_0_rc_2023_10_18::incoming_handler::{Guest, IncomingRequest, ResponseOutparam}; + use bindings::exports::wasi::http0_2_0::incoming_handler::{Guest, IncomingRequest, ResponseOutparam}; struct $name; impl Guest for $name { @@ -40,7 +40,7 @@ macro_rules! define_component { } } - impl From for $crate::bindings::wasi::http0_2_0_rc_2023_10_18::types::ResponseOutparam { + impl From for $crate::bindings::wasi::http0_2_0::types::ResponseOutparam { fn from(value: ResponseOutparam) -> Self { unsafe { Self::from_handle(value.into_handle()) } } @@ -50,12 +50,16 @@ macro_rules! define_component { #[cfg(feature = "define-component")] pub fn handle(response_out: ResponseOutparam, result: Result<(), String>) { - let response = |status| OutgoingResponse::new(status, &Headers::new(&[])); + let response = |status| { + let resp = OutgoingResponse::new(Fields::new()); + resp.set_status_code(status).expect("should have set status code"); + resp + }; match result { Ok(()) => ResponseOutparam::set(response_out, Ok(response(200))), Err(err) => { let resp = response(500); - let body = resp.write().expect("response body was already taken"); + let body = resp.body().unwrap(); ResponseOutparam::set(response_out, Ok(resp)); outgoing_body(body, err.into_bytes()).unwrap(); } @@ -63,14 +67,14 @@ pub fn handle(response_out: ResponseOutparam, result: Result<(), String>) { } #[cfg(feature = "define-component")] -pub fn outgoing_body(body: OutgoingBody, buffer: Vec) -> Result<(), Error> { +pub fn outgoing_body(body: OutgoingBody, buffer: Vec) -> Result<(), ErrorCode> { struct Outgoing(Option<(OutputStream, OutgoingBody)>); impl Drop for Outgoing { fn drop(&mut self) { if let Some((stream, body)) = self.0.take() { drop(stream); - OutgoingBody::finish(body, None); + OutgoingBody::finish(body, None).expect("should have finished OutgoingBody"); } } } @@ -101,11 +105,11 @@ pub fn outgoing_body(body: OutgoingBody, buffer: Vec) -> Result<(), Error> { Ok(()) => { offset += count; } - Err(e) => return Err(Error::ProtocolError(format!("I/O error: {e}"))), + Err(e) => return Err(ErrorCode::InternalError(Some(format!("I/O error: {e}")))), } } } - Err(e) => return Err(Error::ProtocolError(format!("I/O error: {e}"))), + Err(e) => return Err(ErrorCode::InternalError(Some(format!("I/O error: {e}")))), } } } diff --git a/wit/deps/spin@3.0.0/world.wit b/wit/deps/spin@3.0.0/world.wit index a959cb002c..e920055a9a 100644 --- a/wit/deps/spin@3.0.0/world.wit +++ b/wit/deps/spin@3.0.0/world.wit @@ -8,14 +8,5 @@ world http-trigger { /// The imports needed for a guest to run on a Spin host world platform { - include wasi:cli/imports@0.2.0; - import wasi:http/outgoing-handler@0.2.0; - import fermyon:spin/llm@2.0.0; - import fermyon:spin/redis@2.0.0; - import fermyon:spin/mqtt@2.0.0; - import fermyon:spin/postgres@2.0.0; - import fermyon:spin/mysql@2.0.0; - import fermyon:spin/sqlite@2.0.0; - import fermyon:spin/key-value@2.0.0; - import fermyon:spin/variables@2.0.0; + include fermyon:spin/platform@2.0.0; }