aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorbors[bot] <bors[bot]@users.noreply.github.com>2019-04-16 22:54:18 +0000
committerbors[bot] <bors[bot]@users.noreply.github.com>2019-04-16 22:54:18 +0000
commit77def324548e204d3a36a4e89eb528904c381158 (patch)
tree98d6835a2048d96bbe4df0173731df82feee7c21 /tests
parente1e4c98cb900a1425b583edeb12cd3df7ff34ea1 (diff)
parentaa7eec02996aca9304187f36d674d5fe898aece6 (diff)
Merge #170
170: check task priority at compile time r=TeXitoi a=japaric before we were checking the priority at runtime. The compile time error message when the priority is too high is kind of awful though. Co-authored-by: Jorge Aparicio <jorge@japaric.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/cfail/priority-too-high.rs22
-rw-r--r--tests/cfail/priority-too-low.rs22
2 files changed, 44 insertions, 0 deletions
diff --git a/tests/cfail/priority-too-high.rs b/tests/cfail/priority-too-high.rs
new file mode 100644
index 0000000..ec32401
--- /dev/null
+++ b/tests/cfail/priority-too-high.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)] //~ error evaluation of constant value failed
+const APP: () = {
+ #[init]
+ fn init() {}
+
+ // OK, this is the maximum priority supported by the device
+ #[interrupt(priority = 8)]
+ fn UART0() {}
+
+ // this value is too high!
+ #[interrupt(priority = 9)]
+ fn UART1() {}
+};
diff --git a/tests/cfail/priority-too-low.rs b/tests/cfail/priority-too-low.rs
new file mode 100644
index 0000000..6dcbfd6
--- /dev/null
+++ b/tests/cfail/priority-too-low.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() {}
+
+ // OK, this is the minimum priority that tasks can have
+ #[interrupt(priority = 1)]
+ fn UART0() {}
+
+ // this value is too low!
+ #[interrupt(priority = 0)] //~ error this literal must be in the range 1...255
+ fn UART1() {}
+};