//! current_time Test // esp32c2 is disabled currently as it fails //% CHIPS: esp32 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 #![no_std] #![no_main] use defmt_rtt as _; use esp_backtrace as _; use esp_hal::{clock::ClockControl, delay::Delay, peripherals::Peripherals, system::SystemControl}; struct Context { delay: Delay, } impl Context { pub fn init() -> Self { let peripherals = Peripherals::take(); let system = SystemControl::new(peripherals.SYSTEM); let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let delay = Delay::new(&clocks); Context { delay } } } #[cfg(test)] #[embedded_test::tests] mod tests { use super::*; #[init] fn init() -> Context { Context::init() } #[test] fn test_current_time(ctx: Context) { let t1 = esp_hal::time::current_time(); ctx.delay.delay_millis(500); let t2 = esp_hal::time::current_time(); assert!(t2 > t1); assert!((t2 - t1).to_millis() >= 500u64); } }