aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jorge Aparicio <jorge@japaric.io> 2019-04-21 20:20:33 +0200
committerGravatar Jorge Aparicio <jorge@japaric.io> 2019-05-01 20:49:25 +0200
commitd538f5b17cf0ad482cd803d7fbaada3349d6485e (patch)
tree32e1b85277aac72628586da87ee7a2ef32e02df6
parentd0aaa2a805afdda30b49b3dfdb7072f302855a79 (diff)
downloadrtic-d538f5b17cf0ad482cd803d7fbaada3349d6485e.tar.gz
rtic-d538f5b17cf0ad482cd803d7fbaada3349d6485e.tar.zst
rtic-d538f5b17cf0ad482cd803d7fbaada3349d6485e.zip
test RFC 147
-rw-r--r--tests/cfail/unsafe-exception.rs18
-rw-r--r--tests/cfail/unsafe-idle.rs20
-rw-r--r--tests/cfail/unsafe-init.rs15
-rw-r--r--tests/cfail/unsafe-interrupt.rs18
-rw-r--r--tests/cfail/unsafe-task.rs22
5 files changed, 93 insertions, 0 deletions
diff --git a/tests/cfail/unsafe-exception.rs b/tests/cfail/unsafe-exception.rs
new file mode 100644
index 00000000..353194a5
--- /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 00000000..fab1b0f1
--- /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 00000000..d8bb5605
--- /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 00000000..93225edf
--- /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 00000000..58c4d70c
--- /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();
+ }
+};