Explicitly set unstable feature in HIL tests

This commit is contained in:
Dániel Buga 2025-01-07 12:47:02 +01:00
parent 93cf56a856
commit bfa9153cd5
No known key found for this signature in database
46 changed files with 60 additions and 66 deletions

View File

@ -206,7 +206,7 @@ embedded-hal-async = "1.0.0"
embedded-hal-nb = "1.0.0" embedded-hal-nb = "1.0.0"
esp-alloc = { path = "../esp-alloc", optional = true } esp-alloc = { path = "../esp-alloc", optional = true }
esp-backtrace = { path = "../esp-backtrace", default-features = false, features = ["exception-handler", "defmt", "semihosting"] } esp-backtrace = { path = "../esp-backtrace", default-features = false, features = ["exception-handler", "defmt", "semihosting"] }
esp-hal = { path = "../esp-hal", features = ["digest", "unstable"], optional = true } esp-hal = { path = "../esp-hal", features = ["digest"], optional = true }
esp-hal-embassy = { path = "../esp-hal-embassy", optional = true } esp-hal-embassy = { path = "../esp-hal-embassy", optional = true }
esp-wifi = { path = "../esp-wifi", optional = true, features = ["wifi"] } esp-wifi = { path = "../esp-wifi", optional = true, features = ["wifi"] }
portable-atomic = "1.9.0" portable-atomic = "1.9.0"
@ -235,6 +235,7 @@ esp-metadata = { path = "../esp-metadata" }
[features] [features]
default = ["embassy"] default = ["embassy"]
unstable = ["esp-hal/unstable"]
defmt = ["dep:defmt-rtt", "esp-hal/defmt", "embedded-test/defmt"] defmt = ["dep:defmt-rtt", "esp-hal/defmt", "embedded-test/defmt"]

View File

@ -1,6 +1,7 @@
//! AES Test //! AES Test
//% CHIPS: esp32 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! AES DMA Test //! AES DMA Test
//% CHIPS: esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! Clock Monitor Test //! Clock Monitor Test
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! CRC and MD5 Tests //! CRC and MD5 Tests
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! Ensure invariants of locks are upheld. //! Ensure invariants of locks are upheld.
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
// TODO: add multi-core tests // TODO: add multi-core tests

View File

@ -1,6 +1,7 @@
//! Delay Test //! Delay Test
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -4,6 +4,7 @@
//! `embedded_hal_async::delay::DelayNs` trait. //! `embedded_hal_async::delay::DelayNs` trait.
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! DMA macro tests //! DMA macro tests
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! DMA Mem2Mem Tests //! DMA Mem2Mem Tests
//% CHIPS: esp32c2 esp32c3 esp32c6 esp32h2 esp32s3 //% CHIPS: esp32c2 esp32c3 esp32c6 esp32h2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! ECC Test //! ECC Test
//% CHIPS: esp32c2 esp32c6 esp32h2 //% CHIPS: esp32c2 esp32c6 esp32h2
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -2,8 +2,8 @@
//! code. //! code.
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: integrated-timers //% FEATURES: unstable integrated-timers
//% FEATURES: generic-queue //% FEATURES: unstable generic-queue
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,8 +1,8 @@
//! Reproduction and regression test for a sneaky issue. //! Reproduction and regression test for a sneaky issue.
//% CHIPS: esp32 esp32s2 esp32s3 esp32c3 esp32c6 esp32h2 //% CHIPS: esp32 esp32s2 esp32s3 esp32c3 esp32c6 esp32h2
//% FEATURES: integrated-timers //% FEATURES: unstable integrated-timers
//% FEATURES: generic-queue //% FEATURES: unstable generic-queue
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,8 +1,8 @@
//! Embassy timer and executor Test //! Embassy timer and executor Test
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: integrated-timers //% FEATURES: unstable integrated-timers
//% FEATURES: generic-queue //% FEATURES: unstable generic-queue
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,7 +1,7 @@
//! Cp0Disable exception regression test //! Cp0Disable exception regression test
//% CHIPS: esp32 esp32s2 esp32s3 //% CHIPS: esp32 esp32s2 esp32s3
//% FEATURES: esp-wifi esp-alloc //% FEATURES: unstable esp-wifi esp-alloc
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! time::now Test //! time::now Test
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,7 +1,7 @@
//! GPIO Test //! GPIO Test
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: generic-queue //% FEATURES: unstable generic-queue
#![no_std] #![no_std]
#![no_main] #![no_main]
@ -58,8 +58,11 @@ mod tests {
let (gpio1, gpio2) = hil_test::common_test_pins!(peripherals); let (gpio1, gpio2) = hil_test::common_test_pins!(peripherals);
#[cfg(feature = "unstable")]
{
let timg0 = TimerGroup::new(peripherals.TIMG0); let timg0 = TimerGroup::new(peripherals.TIMG0);
esp_hal_embassy::init(timg0.timer0); esp_hal_embassy::init(timg0.timer0);
}
Context { Context {
test_gpio1: gpio1.degrade(), test_gpio1: gpio1.degrade(),
@ -147,53 +150,6 @@ mod tests {
assert_eq!(test_gpio2.is_set_high(), true); assert_eq!(test_gpio2.is_set_high(), true);
} }
#[test]
fn gpio_output_embedded_hal_0_2(ctx: Context) {
let test_gpio1 = Input::new(ctx.test_gpio1, Pull::Down);
let mut test_gpio2 = Output::new(ctx.test_gpio2, Level::Low);
fn set<T>(pin: &mut T, state: bool)
where
T: embedded_hal::digital::OutputPin,
{
if state {
pin.set_high().ok();
} else {
pin.set_low().ok();
}
}
fn toggle<T>(pin: &mut T)
where
T: embedded_hal::digital::StatefulOutputPin,
{
pin.toggle().ok();
}
// `StatefulOutputPin`:
assert_eq!(test_gpio2.is_set_low(), true);
assert_eq!(test_gpio2.is_set_high(), false);
assert_eq!(test_gpio1.is_low(), true);
assert_eq!(test_gpio1.is_high(), false);
set(&mut test_gpio2, true);
assert_eq!(test_gpio2.is_set_low(), false);
assert_eq!(test_gpio2.is_set_high(), true);
assert_eq!(test_gpio1.is_low(), false);
assert_eq!(test_gpio1.is_high(), true);
// `ToggleableOutputPin`:
toggle(&mut test_gpio2);
assert_eq!(test_gpio2.is_set_low(), true);
assert_eq!(test_gpio2.is_set_high(), false);
assert_eq!(test_gpio1.is_low(), true);
assert_eq!(test_gpio1.is_high(), false);
toggle(&mut test_gpio2);
assert_eq!(test_gpio2.is_set_low(), false);
assert_eq!(test_gpio2.is_set_high(), true);
assert_eq!(test_gpio1.is_low(), false);
assert_eq!(test_gpio1.is_high(), true);
}
#[test] #[test]
fn gpio_output_embedded_hal_1_0(ctx: Context) { fn gpio_output_embedded_hal_1_0(ctx: Context) {
let test_gpio1 = Input::new(ctx.test_gpio1, Pull::Down); let test_gpio1 = Input::new(ctx.test_gpio1, Pull::Down);
@ -242,6 +198,7 @@ mod tests {
} }
#[test] #[test]
#[cfg(feature = "unstable")]
fn gpio_interrupt(ctx: Context) { fn gpio_interrupt(ctx: Context) {
let mut test_gpio1 = Input::new(ctx.test_gpio1, Pull::Down); let mut test_gpio1 = Input::new(ctx.test_gpio1, Pull::Down);
let mut test_gpio2 = Output::new(ctx.test_gpio2, Level::Low); let mut test_gpio2 = Output::new(ctx.test_gpio2, Level::Low);
@ -325,6 +282,7 @@ mod tests {
} }
#[test] #[test]
#[cfg(feature = "unstable")]
fn gpio_flex(ctx: Context) { fn gpio_flex(ctx: Context) {
let mut test_gpio1 = Flex::new(ctx.test_gpio1); let mut test_gpio1 = Flex::new(ctx.test_gpio1);
let mut test_gpio2 = Flex::new(ctx.test_gpio2); let mut test_gpio2 = Flex::new(ctx.test_gpio2);
@ -401,6 +359,7 @@ mod tests {
} }
#[test] #[test]
#[cfg(feature = "unstable")]
fn interrupt_executor_is_not_frozen(ctx: Context) { fn interrupt_executor_is_not_frozen(ctx: Context) {
use esp_hal::interrupt::{software::SoftwareInterrupt, Priority}; use esp_hal::interrupt::{software::SoftwareInterrupt, Priority};
use esp_hal_embassy::InterruptExecutor; use esp_hal_embassy::InterruptExecutor;

View File

@ -6,7 +6,7 @@
//! async API works for user handlers automatically. //! async API works for user handlers automatically.
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: integrated-timers //% FEATURES: unstable integrated-timers
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! I2C test //! I2C test
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -4,7 +4,7 @@
//! with loopback mode enabled). //! with loopback mode enabled).
//% CHIPS: esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: generic-queue //% FEATURES: unstable generic-queue
// FIXME: re-enable on ESP32 when it no longer fails spuriously // FIXME: re-enable on ESP32 when it no longer fails spuriously
#![no_std] #![no_std]

View File

@ -1,6 +1,7 @@
//! Initialization tests //! Initialization tests
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -3,6 +3,7 @@
//! "Disabled" for now - see https://github.com/esp-rs/esp-hal/pull/1635#issuecomment-2137405251 //! "Disabled" for now - see https://github.com/esp-rs/esp-hal/pull/1635#issuecomment-2137405251
//% CHIPS: esp32c2 esp32c3 esp32c6 esp32h2 //% CHIPS: esp32c2 esp32c3 esp32c6 esp32h2
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! LCD_CAM Camera and DPI tests //! LCD_CAM Camera and DPI tests
//% CHIPS: esp32s3 //% CHIPS: esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! lcd_cam i8080 tests //! lcd_cam i8080 tests
//% CHIPS: esp32s3 //% CHIPS: esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,7 +1,7 @@
//! lcd_cam i8080 tests //! lcd_cam i8080 tests
//% CHIPS: esp32s3 //% CHIPS: esp32s3
//% FEATURES: generic-queue //% FEATURES: unstable generic-queue
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,8 @@
//! PARL_IO TX test //! PARL_IO TX test
//% CHIPS: esp32c6 esp32h2 //% CHIPS: esp32c6 esp32h2
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,7 +1,7 @@
//! PARL_IO TX async test //! PARL_IO TX async test
//% CHIPS: esp32c6 esp32h2 //% CHIPS: esp32c6 esp32h2
//% FEATURES: generic-queue //% FEATURES: unstable generic-queue
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! PCNT tests //! PCNT tests
//% CHIPS: esp32 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! QSPI Test Suite //! QSPI Test Suite
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! RMT Loopback Test //! RMT Loopback Test
//% CHIPS: esp32 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! RSA Test //! RSA Test
//% CHIPS: esp32 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! Async RSA Test //! Async RSA Test
//% CHIPS: esp32 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! SHA Test //! SHA Test
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,7 +1,7 @@
//! SPI Full Duplex test suite. //! SPI Full Duplex test suite.
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: generic-queue //% FEATURES: unstable generic-queue
// FIXME: add async test cases that don't rely on PCNT // FIXME: add async test cases that don't rely on PCNT

View File

@ -1,6 +1,7 @@
//! SPI Half Duplex Read Test //! SPI Half Duplex Read Test
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! SPI Half Duplex Write Test //! SPI Half Duplex Write Test
//% CHIPS: esp32 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! SPI Half Duplex Write Test //! SPI Half Duplex Write Test
//% FEATURES: octal-psram
//% CHIPS: esp32s3 //% CHIPS: esp32s3
//% FEATURES: unstable octal-psram
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -4,6 +4,7 @@
//! testing Mode 1. //! testing Mode 1.
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -2,6 +2,7 @@
// esp32 disabled as it does not have a systimer // esp32 disabled as it does not have a systimer
//% CHIPS: esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! TWAI test //! TWAI test
//% CHIPS: esp32 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! UART Test //! UART Test
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,7 +1,7 @@
//! UART Test //! UART Test
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: generic-queue //% FEATURES: unstable generic-queue
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! Misc UART TX/RX regression tests //! Misc UART TX/RX regression tests
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! UART TX/RX Test //! UART TX/RX Test
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,7 +1,7 @@
//! UART TX/RX Async Test //! UART TX/RX Async Test
//% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3 //% CHIPS: esp32 esp32c2 esp32c3 esp32c6 esp32h2 esp32s2 esp32s3
//% FEATURES: generic-queue //% FEATURES: unstable generic-queue
#![no_std] #![no_std]
#![no_main] #![no_main]

View File

@ -1,6 +1,7 @@
//! USB Serial JTAG tests //! USB Serial JTAG tests
//% CHIPS: esp32c3 esp32c6 esp32h2 esp32s3 //% CHIPS: esp32c3 esp32c6 esp32h2 esp32s3
//% FEATURES: unstable
#![no_std] #![no_std]
#![no_main] #![no_main]