diff --git a/examples/test-on-host.rs b/examples/test-on-host.rs index 55a6530..6eb64f9 100755 --- a/examples/test-on-host.rs +++ b/examples/test-on-host.rs @@ -1,15 +1,20 @@ +//! This example shows how a embedded program can be written that is testable on the host with +//! libtest. +//! +//! The tests can be run with: +//! ```bash +//! cargo test --example=test-on-host --target=x86_64-unknown-linux-gnu +//! ``` + #![cfg_attr(not(test), no_main)] #![no_std] #[cfg(not(test))] extern crate panic_halt; -#[cfg(not(test))] -use cortex_m_rt::entry; use hal::{pac, prelude::*, rcc::Config}; -#[cfg(not(test))] -#[entry] +#[cfg_attr(not(test), cortex_m_rt::entry)] // this is the entrypoint unless testing fn main() -> ! { let dp = pac::Peripherals::take().unwrap(); let cp = cortex_m::Peripherals::take().unwrap(); @@ -31,21 +36,24 @@ fn main() -> ! { led.set_high().unwrap(); delay.delay_ms(500_u16); + let important_number = some_function(19); + delay.delay_ms(important_number as u16); + led.set_low().unwrap(); delay.delay_ms(500_u16); } } -#[cfg(test)] -fn main() -> ! { - loop {} +fn some_function(num: i32) -> i32 { + num * 2 } #[cfg(test)] mod tests { + use crate::some_function; #[test] fn test_it_works() { - assert!(true) + assert_eq!(some_function(9), 18) } }