diff options
| author | Jorge Aparicio <jorge@japaric.io> | 2017-05-08 12:05:42 -0500 |
|---|---|---|
| committer | Jorge Aparicio <jorge@japaric.io> | 2017-05-08 12:05:42 -0500 |
| commit | fc4cb7d472dad1ea0fa137bb116bd907efc19601 (patch) | |
| tree | dd3e462f3fa683ed26c2f6dcd4a2d8be504231c7 /tests/cfail/tasks-wrong-threshold.rs | |
| parent | 2063697c626a7547f5d9fb140fbc7eb9773a5120 (diff) | |
replace the ceiling token with a preemption threshold token
Diffstat (limited to 'tests/cfail/tasks-wrong-threshold.rs')
| -rw-r--r-- | tests/cfail/tasks-wrong-threshold.rs | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/tests/cfail/tasks-wrong-threshold.rs b/tests/cfail/tasks-wrong-threshold.rs new file mode 100644 index 0000000..4fca734 --- /dev/null +++ b/tests/cfail/tasks-wrong-threshold.rs @@ -0,0 +1,91 @@ +// error-pattern: mismatched types + +#![feature(used)] + +#[macro_use] +extern crate cortex_m_rtfm as rtfm; + +use rtfm::{C2, P0, P1, T0, T2, TMax}; +use device::interrupt::Exti0; + +tasks!(device, { + j1: Task { + interrupt: Exti0, + priority: P1, + enabled: true, + }, +}); + +fn init(_: P0, _: &TMax) {} + +fn idle(_: P0, _: T0) -> ! { + loop {} +} + +// Wrong ceiling token. `prio` and `thr` must match in levels +fn j1(_task: Exti0, _prio: P1, _thr: T2) {} + +// fake device crate +extern crate core; +extern crate cortex_m; + +mod device { + pub mod interrupt { + use cortex_m::ctxt::Context; + use cortex_m::interrupt::Nr; + + extern "C" fn default_handler<T>(_: T) {} + + pub struct Handlers { + pub Exti0: extern "C" fn(Exti0), + pub Exti1: extern "C" fn(Exti1), + pub Exti2: extern "C" fn(Exti2), + } + + pub struct Exti0; + pub struct Exti1; + pub struct Exti2; + + pub enum Interrupt { + Exti0, + Exti1, + Exti2, + } + + unsafe impl Nr for Interrupt { + fn nr(&self) -> u8 { + 0 + } + } + + unsafe impl Context for Exti0 {} + + unsafe impl Nr for Exti0 { + fn nr(&self) -> u8 { + 0 + } + } + + unsafe impl Context for Exti1 {} + + unsafe impl Nr for Exti1 { + fn nr(&self) -> u8 { + 0 + } + } + + unsafe impl Context for Exti2 {} + + unsafe impl Nr for Exti2 { + fn nr(&self) -> u8 { + 0 + } + } + + pub const DEFAULT_HANDLERS: Handlers = Handlers { + Exti0: default_handler, + Exti1: default_handler, + Exti2: default_handler, + }; + } +} |
