diff --git a/components/driver/test_apps/gpio/main/test_gpio.c b/components/driver/test_apps/gpio/main/test_gpio.c index 981912918b..a50aa7fe39 100644 --- a/components/driver/test_apps/gpio/main/test_gpio.c +++ b/components/driver/test_apps/gpio/main/test_gpio.c @@ -677,7 +677,7 @@ static void prompt_to_continue(const char *str) // This case needs the resistance to pull up the voltage or pull down the voltage // Ignored in CI because the voltage needs to be tested with multimeter -TEST_CASE_CI_IGNORE("GPIO_verify_only_the_gpio_with_input_ability_can_be_set_pull/down", "[gpio]") +TEST_CASE("GPIO_verify_only_the_gpio_with_input_ability_can_be_set_pull/down", "[gpio][ignore]") { gpio_config_t output_io = test_init_io(TEST_GPIO_EXT_OUT_IO); gpio_config_t input_io = test_init_io(TEST_GPIO_EXT_IN_IO); @@ -768,7 +768,7 @@ static void drive_capability_set_get(gpio_num_t num, gpio_drive_cap_t capability * * all of these cases should be ignored that it will not run in CI */ -TEST_CASE_CI_IGNORE("GPIO_drive_capability_test", "[gpio]") +TEST_CASE("GPIO_drive_capability_test", "[gpio][ignore]") { printf("weak capability test! please view the current change!\n"); drive_capability_set_get(TEST_GPIO_EXT_OUT_IO, GPIO_DRIVE_CAP_0); @@ -846,7 +846,7 @@ TEST_CASE("GPIO_USB_DP_pin_pullup_disable_test", "[gpio]") #if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C6) // TODO: IDF-5348 Remove when light sleep is supported on ESP32C6 // Ignored in CI because it needs manually connect TEST_GPIO_INPUT_LEVEL_LOW_PIN to 3.3v to wake up from light sleep -TEST_CASE_CI_IGNORE("GPIO_light_sleep_wake_up_test", "[gpio]") +TEST_CASE("GPIO_light_sleep_wake_up_test", "[gpio][ignore]") { gpio_config_t io_config = test_init_io(TEST_GPIO_INPUT_LEVEL_LOW_PIN); io_config.mode = GPIO_MODE_INPUT; diff --git a/components/driver/test_apps/gpio/main/test_sigma_delta_legacy.c b/components/driver/test_apps/gpio/main/test_sigma_delta_legacy.c index d470deffa5..927b4abef8 100644 --- a/components/driver/test_apps/gpio/main/test_sigma_delta_legacy.c +++ b/components/driver/test_apps/gpio/main/test_sigma_delta_legacy.c @@ -28,7 +28,7 @@ TEST_CASE("SigmaDelta_config_test", "[sigma_delta]") // connect GPIO4 with LED positive pin, and the GND pin connect LED negative pin // logic analyzer help also to see the wave form(more standard and accurate) -TEST_CASE("SigmaDelta_pin_duty_prescale_set", "[sigma_delta][ignore]") +TEST_CASE("SigmaDelta_pin_duty_prescale_set", "[sigma_delta]") { sigmadelta_config_t sigmadelta_cfg = { .channel = 0, @@ -40,7 +40,7 @@ TEST_CASE("SigmaDelta_pin_duty_prescale_set", "[sigma_delta][ignore]") int8_t duty = 0; int inc = 1; - for (int i = 0; i < 1000; i++) { + for (int i = 0; i < 100; i++) { sigmadelta_set_duty(sigmadelta_cfg.channel, duty); vTaskDelay(10 / portTICK_PERIOD_MS); @@ -51,7 +51,7 @@ TEST_CASE("SigmaDelta_pin_duty_prescale_set", "[sigma_delta][ignore]") } TEST_ESP_OK(sigmadelta_set_prescale(0, 200)); - for (int i = 0; i < 1000; i++) { + for (int i = 0; i < 100; i++) { sigmadelta_set_duty(sigmadelta_cfg.channel, duty); vTaskDelay(10 / portTICK_PERIOD_MS); @@ -62,5 +62,4 @@ TEST_CASE("SigmaDelta_pin_duty_prescale_set", "[sigma_delta][ignore]") } TEST_ESP_OK(sigmadelta_set_pin(sigmadelta_cfg.channel, 5)); - vTaskDelay(3000 / portTICK_PERIOD_MS); } diff --git a/components/driver/test_apps/gpio/pytest_gpio.py b/components/driver/test_apps/gpio/pytest_gpio.py index 53ee3a2c70..b78c80c2a6 100644 --- a/components/driver/test_apps/gpio/pytest_gpio.py +++ b/components/driver/test_apps/gpio/pytest_gpio.py @@ -2,17 +2,58 @@ # SPDX-License-Identifier: CC0-1.0 import pytest +from pytest_embedded_idf import IdfDut + +CONFIGS = [ + 'iram_safe', + 'release', +] @pytest.mark.supported_targets @pytest.mark.generic -@pytest.mark.parametrize( - 'config', - [ - 'iram_safe', - 'release', - ], - indirect=True, -) -def test_gpio(case_tester) -> None: # type: ignore - case_tester.run_all_cases(timeout=300) +@pytest.mark.parametrize('config', CONFIGS, indirect=True) +def test_gpio(dut: IdfDut) -> None: + dut.run_all_single_board_cases(group='gpio') + + +@pytest.mark.esp32c2 +@pytest.mark.esp32c3 +@pytest.mark.esp32c6 +@pytest.mark.esp32s2 +@pytest.mark.esp32s3 +@pytest.mark.generic +@pytest.mark.parametrize('config', CONFIGS, indirect=True) +def test_gpio_filter(dut: IdfDut) -> None: + dut.run_all_single_board_cases(group='gpio_filter') + + +@pytest.mark.esp32c2 +@pytest.mark.esp32c3 +@pytest.mark.esp32c6 +@pytest.mark.esp32s2 +@pytest.mark.esp32s3 +@pytest.mark.generic +@pytest.mark.parametrize('config', CONFIGS, indirect=True) +def test_dedic_gpio(dut: IdfDut) -> None: + dut.run_all_single_board_cases(group='dedic_gpio') + + +@pytest.mark.esp32 +@pytest.mark.esp32c3 +@pytest.mark.esp32c6 +@pytest.mark.esp32s2 +@pytest.mark.esp32s3 +@pytest.mark.generic +@pytest.mark.parametrize('config', CONFIGS, indirect=True) +def test_sigma_delta(dut: IdfDut) -> None: + dut.run_all_single_board_cases(group='sigma_delta') + + +@pytest.mark.esp32 +@pytest.mark.esp32s2 +@pytest.mark.esp32s3 +@pytest.mark.generic +@pytest.mark.parametrize('config', CONFIGS, indirect=True) +def test_rtc_io(dut: IdfDut) -> None: + dut.run_all_single_board_cases(group='rtcio') diff --git a/components/unity/include/unity_test_runner.h b/components/unity/include/unity_test_runner.h index aea074bbee..9216e0d7a3 100644 --- a/components/unity/include/unity_test_runner.h +++ b/components/unity/include/unity_test_runner.h @@ -149,17 +149,6 @@ void unity_testcase_register(test_desc_t* desc); } -/* - Test case macro to be ignored in CI. - Tests will still be built (to check for compile error) but not linked if CONFIG_IDF_CI_BUILD. - */ -#ifdef CONFIG_IDF_CI_BUILD -#define TEST_CASE_CI_IGNORE(name_, desc_) \ - __attribute__((unused)) static void UNITY_TEST_UID(test_func_) (void) -#else -#define TEST_CASE_CI_IGNORE(name_, desc_) TEST_CASE(name_, desc_) -#endif - /** * Note: initialization of test_desc_t fields above has to be done exactly * in the same order as the fields are declared in the structure.