Skip to content

Commit

Permalink
Move tests to platform 3 instead of platform-rc
Browse files Browse the repository at this point in the history
Signed-off-by: itowlson <[email protected]>
  • Loading branch information
itowlson committed Oct 16, 2024
1 parent 53256cb commit fd4c89e
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 27 deletions.
6 changes: 3 additions & 3 deletions tests/test-components/components/tcp-sockets/src/lib.rs
Original file line number Diff line number Diff line change
@@ -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,
Expand Down Expand Up @@ -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),
}
};
Expand Down
32 changes: 18 additions & 14 deletions tests/test-components/helper/src/lib.rs
Original file line number Diff line number Diff line change
@@ -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]
Expand All @@ -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/[email protected]-rc-2023-10-18": super::Component
"wasi:http/[email protected]": 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 {
Expand All @@ -40,7 +40,7 @@ macro_rules! define_component {
}
}

impl From<ResponseOutparam> for $crate::bindings::wasi::http0_2_0_rc_2023_10_18::types::ResponseOutparam {
impl From<ResponseOutparam> for $crate::bindings::wasi::http0_2_0::types::ResponseOutparam {
fn from(value: ResponseOutparam) -> Self {
unsafe { Self::from_handle(value.into_handle()) }
}
Expand All @@ -50,27 +50,31 @@ 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();
}
}
}

#[cfg(feature = "define-component")]
pub fn outgoing_body(body: OutgoingBody, buffer: Vec<u8>) -> Result<(), Error> {
pub fn outgoing_body(body: OutgoingBody, buffer: Vec<u8>) -> 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");
}
}
}
Expand Down Expand Up @@ -101,11 +105,11 @@ pub fn outgoing_body(body: OutgoingBody, buffer: Vec<u8>) -> 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}")))),
}
}
}
Expand Down
11 changes: 1 addition & 10 deletions wit/deps/[email protected]/world.wit
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

0 comments on commit fd4c89e

Please sign in to comment.