fix tests
This commit is contained in:
@@ -34,7 +34,7 @@ mod convert_just_errno {
|
|||||||
/// When the `errors` mapping in witx is non-empty, we need to impl the
|
/// When the `errors` mapping in witx is non-empty, we need to impl the
|
||||||
/// types::UserErrorConversion trait that wiggle generates from that mapping.
|
/// types::UserErrorConversion trait that wiggle generates from that mapping.
|
||||||
impl<'a> types::UserErrorConversion for WasiCtx<'a> {
|
impl<'a> types::UserErrorConversion for WasiCtx<'a> {
|
||||||
fn errno_from_rich_error(&self, e: RichError) -> Result<types::Errno, String> {
|
fn errno_from_rich_error(&self, e: RichError) -> Result<types::Errno, wiggle::Trap> {
|
||||||
// WasiCtx can collect a Vec<String> log so we can test this. We're
|
// WasiCtx can collect a Vec<String> log so we can test this. We're
|
||||||
// logging the Display impl that `thiserror::Error` provides us.
|
// logging the Display impl that `thiserror::Error` provides us.
|
||||||
self.log.borrow_mut().push(e.to_string());
|
self.log.borrow_mut().push(e.to_string());
|
||||||
@@ -115,8 +115,9 @@ mod convert_multiple_error_types {
|
|||||||
TooMuchCoffee(usize),
|
TooMuchCoffee(usize),
|
||||||
}
|
}
|
||||||
|
|
||||||
// Just like the other error, except that we have a second errno type:
|
// Just like the prior test, except that we have a second errno type. This should mean there
|
||||||
// trivial function.
|
// are two functions in UserErrorConversion.
|
||||||
|
// Additionally, test that the function "baz" marked noreturn always returns a wiggle::Trap.
|
||||||
wiggle::from_witx!({
|
wiggle::from_witx!({
|
||||||
witx_literal: "
|
witx_literal: "
|
||||||
(typename $errno (enum u8 $ok $invalid_arg $picket_line))
|
(typename $errno (enum u8 $ok $invalid_arg $picket_line))
|
||||||
@@ -127,7 +128,10 @@ mod convert_multiple_error_types {
|
|||||||
(result $err $errno))
|
(result $err $errno))
|
||||||
(@interface func (export \"bar\")
|
(@interface func (export \"bar\")
|
||||||
(param $drink u32)
|
(param $drink u32)
|
||||||
(result $err $errno2)))
|
(result $err $errno2))
|
||||||
|
(@interface func (export \"baz\")
|
||||||
|
(param $drink u32)
|
||||||
|
(@witx noreturn)))
|
||||||
",
|
",
|
||||||
ctx: WasiCtx,
|
ctx: WasiCtx,
|
||||||
errors: { errno => RichError, errno2 => AnotherRichError },
|
errors: { errno => RichError, errno2 => AnotherRichError },
|
||||||
@@ -159,13 +163,13 @@ mod convert_multiple_error_types {
|
|||||||
// each member of the `errors` mapping.
|
// each member of the `errors` mapping.
|
||||||
// Bodies elided.
|
// Bodies elided.
|
||||||
impl<'a> types::UserErrorConversion for WasiCtx<'a> {
|
impl<'a> types::UserErrorConversion for WasiCtx<'a> {
|
||||||
fn errno_from_rich_error(&self, _e: RichError) -> Result<types::Errno, String> {
|
fn errno_from_rich_error(&self, _e: RichError) -> Result<types::Errno, wiggle::Trap> {
|
||||||
unimplemented!()
|
unimplemented!()
|
||||||
}
|
}
|
||||||
fn errno2_from_another_rich_error(
|
fn errno2_from_another_rich_error(
|
||||||
&self,
|
&self,
|
||||||
_e: AnotherRichError,
|
_e: AnotherRichError,
|
||||||
) -> Result<types::Errno2, String> {
|
) -> Result<types::Errno2, wiggle::Trap> {
|
||||||
unimplemented!()
|
unimplemented!()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -178,5 +182,8 @@ mod convert_multiple_error_types {
|
|||||||
fn bar(&self, _: u32) -> Result<(), AnotherRichError> {
|
fn bar(&self, _: u32) -> Result<(), AnotherRichError> {
|
||||||
unimplemented!()
|
unimplemented!()
|
||||||
}
|
}
|
||||||
|
fn baz(&self, _: u32) -> wiggle::Trap {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user