From 1f1cf84ab41ec26ac58c31260667f97507def0d0 Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Tue, 18 Jul 2017 15:14:39 -0500 Subject: add cfail tests --- tests/cfail/token-outlive.rs | 49 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 tests/cfail/token-outlive.rs (limited to 'tests/cfail/token-outlive.rs') diff --git a/tests/cfail/token-outlive.rs b/tests/cfail/token-outlive.rs new file mode 100644 index 0000000..9bcd288 --- /dev/null +++ b/tests/cfail/token-outlive.rs @@ -0,0 +1,49 @@ +#![deny(warnings)] +#![feature(const_fn)] +#![feature(proc_macro)] + +#[macro_use(task)] +extern crate cortex_m_rtfm as rtfm; +extern crate stm32f103xx; + +use rtfm::{app, Threshold}; + +app! { + device: stm32f103xx, + + resources: { + STATE: bool = false; + }, + + tasks: { + EXTI0: { + enabled: true, + priority: 1, + resources: [STATE], + }, + + EXTI1: { + enabled: true, + priority: 2, + resources: [STATE], + }, + }, +} + +fn init(_p: init::Peripherals, _r: init::Resources) {} + +fn idle() -> ! { + loop {} +} + +task!(EXTI0, exti0); + +fn exti0(mut t: Threshold, r: EXTI0::Resources) { + // ERROR token should not outlive the critical section + let t = r.STATE.claim(&mut t, |_state, t| t); + //~^ error cannot infer an appropriate lifetime +} + +task!(EXTI1, exti1); + +fn exti1(_t: Threshold, _r: EXTI1::Resources) {} -- cgit v1.2.3