From d538f5b17cf0ad482cd803d7fbaada3349d6485e Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Sun, 21 Apr 2019 20:20:33 +0200 Subject: [PATCH] test RFC 147 --- tests/cfail/unsafe-exception.rs | 18 ++++++++++++++++++ tests/cfail/unsafe-idle.rs | 20 ++++++++++++++++++++ tests/cfail/unsafe-init.rs | 15 +++++++++++++++ tests/cfail/unsafe-interrupt.rs | 18 ++++++++++++++++++ tests/cfail/unsafe-task.rs | 22 ++++++++++++++++++++++ 5 files changed, 93 insertions(+) create mode 100644 tests/cfail/unsafe-exception.rs create mode 100644 tests/cfail/unsafe-idle.rs create mode 100644 tests/cfail/unsafe-init.rs create mode 100644 tests/cfail/unsafe-interrupt.rs create mode 100644 tests/cfail/unsafe-task.rs diff --git a/tests/cfail/unsafe-exception.rs b/tests/cfail/unsafe-exception.rs new file mode 100644 index 0000000000..353194a590 --- /dev/null +++ b/tests/cfail/unsafe-exception.rs @@ -0,0 +1,18 @@ +#![no_main] +#![no_std] + +extern crate lm3s6965; +extern crate panic_halt; +extern crate rtfm; + +use rtfm::app; + +#[app(device = lm3s6965)] +const APP: () = { + #[init] + fn init(_: init::Context) {} + + #[exception(binds = SVCall)] + unsafe fn foo(_: foo::Context) {} + //~^ ERROR this `exception` handler must have type signature `fn(foo::Context)` +}; diff --git a/tests/cfail/unsafe-idle.rs b/tests/cfail/unsafe-idle.rs new file mode 100644 index 0000000000..fab1b0f1f6 --- /dev/null +++ b/tests/cfail/unsafe-idle.rs @@ -0,0 +1,20 @@ +#![no_main] +#![no_std] + +extern crate lm3s6965; +extern crate panic_halt; +extern crate rtfm; + +use rtfm::app; + +#[app(device = lm3s6965)] +const APP: () = { + #[init] + fn init(_: init::Context) {} + + #[idle] + unsafe fn idle(_: idle::Context) -> ! { + //~^ ERROR `idle` must have type signature `fn(idle::Context) -> !` + loop {} + } +}; diff --git a/tests/cfail/unsafe-init.rs b/tests/cfail/unsafe-init.rs new file mode 100644 index 0000000000..d8bb560571 --- /dev/null +++ b/tests/cfail/unsafe-init.rs @@ -0,0 +1,15 @@ +#![no_main] +#![no_std] + +extern crate lm3s6965; +extern crate panic_halt; +extern crate rtfm; + +use rtfm::app; + +#[app(device = lm3s6965)] +const APP: () = { + #[init] + unsafe fn init(_: init::Context) {} + //~^ ERROR `init` must have type signature `fn(init::Context) [-> init::LateResources]` +}; diff --git a/tests/cfail/unsafe-interrupt.rs b/tests/cfail/unsafe-interrupt.rs new file mode 100644 index 0000000000..93225edf14 --- /dev/null +++ b/tests/cfail/unsafe-interrupt.rs @@ -0,0 +1,18 @@ +#![no_main] +#![no_std] + +extern crate lm3s6965; +extern crate panic_halt; +extern crate rtfm; + +use rtfm::app; + +#[app(device = lm3s6965)] +const APP: () = { + #[init] + fn init(_: init::Context) {} + + #[interrupt(binds = UART0)] + unsafe fn foo(_: foo::Context) {} + //~^ ERROR this `interrupt` handler must have type signature `fn(foo::Context)` +}; diff --git a/tests/cfail/unsafe-task.rs b/tests/cfail/unsafe-task.rs new file mode 100644 index 0000000000..58c4d70c21 --- /dev/null +++ b/tests/cfail/unsafe-task.rs @@ -0,0 +1,22 @@ +#![no_main] +#![no_std] + +extern crate lm3s6965; +extern crate panic_halt; +extern crate rtfm; + +use rtfm::app; + +#[app(device = lm3s6965)] +const APP: () = { + #[init] + fn init(_: init::Context) {} + + #[task] + unsafe fn foo(_: foo::Context) {} + //~^ ERROR this `task` handler must have type signature `fn(foo::Context, ..)` + + extern "C" { + fn UART0(); + } +};