mirror of
https://github.com/espressif/esp-idf.git
synced 2026-05-28 16:46:31 +03:00
Merge branch 'fix/h4_s31_enable_multi_board_test' into 'master'
fix(ci): h4 and s31 enable multi_board test Closes IDFCI-10702, IDFCI-10334, and IDF-11442 See merge request espressif/esp-idf!48438
This commit is contained in:
@@ -36,6 +36,13 @@
|
||||
#define PIN_NUM_CS 10 //the IOMUX pin of SPI2 CS0&CS1 is Pin_16&17 which conflict with UART Tx&Rx Pin
|
||||
#define PIN_NUM_WP SPI2_IOMUX_PIN_NUM_WP
|
||||
#define PIN_NUM_HD SPI2_IOMUX_PIN_NUM_HD
|
||||
#elif CONFIG_IDF_TARGET_ESP32H4
|
||||
#define PIN_NUM_MISO SPI2_IOMUX_PIN_NUM_MISO
|
||||
#define PIN_NUM_MOSI 21 //the mosi iomux pin 17 for h4 is straping pin and don't connected on burger runner
|
||||
#define PIN_NUM_CLK SPI2_IOMUX_PIN_NUM_CLK
|
||||
#define PIN_NUM_CS SPI2_IOMUX_PIN_NUM_CS
|
||||
#define PIN_NUM_WP SPI2_IOMUX_PIN_NUM_WP
|
||||
#define PIN_NUM_HD SPI2_IOMUX_PIN_NUM_HD
|
||||
#else
|
||||
#define PIN_NUM_MISO SPI2_IOMUX_PIN_NUM_MISO
|
||||
#define PIN_NUM_MOSI SPI2_IOMUX_PIN_NUM_MOSI
|
||||
@@ -45,6 +52,17 @@
|
||||
#define PIN_NUM_HD SPI2_IOMUX_PIN_NUM_HD
|
||||
#endif
|
||||
|
||||
// dummy cs pins for add device test, which are available pins but different from PIN_NUM_CS
|
||||
#if CONFIG_IDF_TARGET_ESP32
|
||||
#define DUMMY_CS_PINS() {25, 26, 27}
|
||||
#elif CONFIG_IDF_TARGET_ESP32H2
|
||||
#define DUMMY_CS_PINS() {9, 10, 11, 12, 22, 25}
|
||||
#elif CONFIG_IDF_TARGET_ESP32P4 || CONFIG_IDF_TARGET_ESP32H4
|
||||
#define DUMMY_CS_PINS() {0, 1, 2, 3, 4, 5}
|
||||
#else
|
||||
#define DUMMY_CS_PINS() {0, 1, 4, 5, 8, 9}
|
||||
#endif //CONFIG_IDF_TARGET_ESP32
|
||||
|
||||
#if (TEST_SPI_PERIPH_NUM >= 2) // esp32, s2, s3
|
||||
#define TEST_SPI_HOST SPI2_HOST
|
||||
#define TEST_SLAVE_HOST SPI3_HOST
|
||||
|
||||
@@ -31,8 +31,6 @@ def test_i2c(dut: Dut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_I2C_SUPPORTED == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of s31 multi-device runner # TODO: IDFCI-10334')
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='lack of runner # TODO: IDFCI-10702')
|
||||
def test_i2c_multi_device(case_tester) -> None: # type: ignore
|
||||
case_tester.run_all_multi_dev_cases(reset=True)
|
||||
|
||||
|
||||
@@ -20,15 +20,9 @@ components/esp_driver_i2s/test_apps/i2s_multi_dev:
|
||||
- if: SOC_I2S_SUPPORTED != 1
|
||||
- if: SOC_I2S_HW_VERSION_2 != 1
|
||||
disable_test:
|
||||
- if: IDF_TARGET in ["esp32c61"] # TODO: [ESP32C61] IDF-11442
|
||||
- if: IDF_TARGET in ["esp32h4", "esp32s31"]
|
||||
temporary: true
|
||||
reason: lack of runners
|
||||
- if: IDF_TARGET in ["esp32s31"]
|
||||
temporary: true
|
||||
reason: lack of s31 multi-device runner
|
||||
- if: IDF_TARGET in ["esp32h4"] # TODO: IDFCI-10702
|
||||
temporary: true
|
||||
reason: lack of runner
|
||||
reason: cannot pass # TODO: IDF-15609
|
||||
depends_components:
|
||||
- esp_driver_i2s
|
||||
- esp_driver_dma
|
||||
|
||||
@@ -31,7 +31,7 @@ static const char *TAG = "i2s_multi_dev_test";
|
||||
#define TEST_I2S_MCK_IO (GPIO_NUM_1)
|
||||
#define TEST_I2S_BCK_IO (GPIO_NUM_4)
|
||||
#define TEST_I2S_WS_IO (GPIO_NUM_5)
|
||||
#if CONFIG_IDF_TARGET_ESP32H2
|
||||
#if CONFIG_IDF_TARGET_ESP32H2 || CONFIG_IDF_TARGET_ESP32H4
|
||||
#define TEST_I2S_DO_IO (GPIO_NUM_2)
|
||||
#define TEST_I2S_DI_IO (GPIO_NUM_3) // DI and DO gpio will be reversed on slave runner
|
||||
#else
|
||||
|
||||
@@ -6,10 +6,9 @@ from pytest_embedded_idf.utils import soc_filtered_targets
|
||||
|
||||
|
||||
@pytest.mark.generic_multi_device
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='p4 rev3 migration # TODO: IDF-11442')
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='lack of s31 multi-device runner # TODO: IDFCI-10334')
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='lack of runner # TODO: IDFCI-10702')
|
||||
@pytest.mark.parametrize('count', [2], indirect=True)
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='cannot pass') # TODO: IDF-15609
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='cannot pass') # TODO: IDF-15609
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_I2S_SUPPORTS_TDM == 1'), indirect=['target'])
|
||||
def test_i2s_multi_dev(case_tester) -> None: # type: ignore
|
||||
case_tester.run_all_multi_dev_cases(reset=True, timeout=30)
|
||||
|
||||
@@ -66,6 +66,8 @@ def test_ledc_psram(dut: IdfDut) -> None:
|
||||
|
||||
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32s3'], reason='s3 multi device runner has no psram')
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='cannot pass') # TODO: IDF-15610
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='cannot pass') # TODO: IDF-15610
|
||||
@pytest.mark.generic_multi_device
|
||||
@pytest.mark.parametrize(
|
||||
'count, config',
|
||||
@@ -76,7 +78,5 @@ def test_ledc_psram(dut: IdfDut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='TODO: IDFCI-10334 no runner yet')
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='lack of runner # TODO: IDFCI-10702')
|
||||
def test_ledc_multi_device(case_tester) -> None: # type: ignore
|
||||
case_tester.run_all_multi_dev_cases(reset=True)
|
||||
|
||||
@@ -12,36 +12,20 @@
|
||||
components/esp_driver_spi/test_apps/master:
|
||||
disable:
|
||||
- if: SOC_GPSPI_SUPPORTED != 1
|
||||
disable_test:
|
||||
- if: IDF_TARGET in ["esp32h4"]
|
||||
temporary: true
|
||||
reason: cannot pass # TODO: IDF-15615
|
||||
<<: *spi_depends_default
|
||||
|
||||
components/esp_driver_spi/test_apps/param:
|
||||
disable:
|
||||
- if: SOC_GPSPI_SUPPORTED != 1
|
||||
disable_test:
|
||||
- if: IDF_TARGET in ["esp32h4"]
|
||||
temporary: true
|
||||
reason: cannot pass # TODO: IDF-15615
|
||||
<<: *spi_depends_default
|
||||
|
||||
components/esp_driver_spi/test_apps/slave:
|
||||
disable:
|
||||
- if: SOC_GPSPI_SUPPORTED != 1
|
||||
disable_test:
|
||||
- if: IDF_TARGET in ["esp32h4"]
|
||||
temporary: true
|
||||
reason: cannot pass # TODO: IDF-15615
|
||||
<<: *spi_depends_default
|
||||
|
||||
components/esp_driver_spi/test_apps/slave_hd:
|
||||
disable:
|
||||
- if: SOC_GPSPI_SUPPORTED != 1
|
||||
- if: SOC_SPI_SUPPORT_SLAVE_HD_VER2 != 1
|
||||
disable_test:
|
||||
- if: IDF_TARGET in ["esp32h4"]
|
||||
temporary: true
|
||||
reason: cannot pass # TODO: IDF-15615
|
||||
<<: *spi_depends_default
|
||||
|
||||
@@ -1592,18 +1592,6 @@ TEST_CASE("spi_speed", "[spi]")
|
||||
|
||||
//****************************************spi master add device test************************************//
|
||||
#define SPI_MAX_DEVICE_NUM SPI_LL_PERIPH_CS_NUM(TEST_SPI_HOST)
|
||||
//add dummy devices first
|
||||
#if CONFIG_IDF_TARGET_ESP32
|
||||
#define DUMMY_CS_PINS() {25, 26, 27}
|
||||
#elif CONFIG_IDF_TARGET_ESP32H2
|
||||
#define DUMMY_CS_PINS() {9, 10, 11, 12, 22, 25}
|
||||
#elif CONFIG_IDF_TARGET_ESP32P4
|
||||
#define DUMMY_CS_PINS() {20, 21, 22, 23, 24, 25}
|
||||
#else
|
||||
#define DUMMY_CS_PINS() {0, 1, 4, 5, 8, 9}
|
||||
#endif //CONFIG_IDF_TARGET_ESP32
|
||||
|
||||
#define CS_REAL_DEV PIN_NUM_CS
|
||||
#define TEST_TRANS_LEN 48
|
||||
|
||||
void test_add_device_master(void)
|
||||
@@ -1639,7 +1627,7 @@ void test_add_device_master(void)
|
||||
//3. free devs[i] after transaction to release the real CS pin for using again by another dev,
|
||||
//So it will loop to check every gpio_signal one by one use one physical pin
|
||||
spi_bus_remove_device(devs[i]);
|
||||
dev_cfg.spics_io_num = CS_REAL_DEV;
|
||||
dev_cfg.spics_io_num = PIN_NUM_CS;
|
||||
TEST_ESP_OK(spi_bus_add_device(TEST_SPI_HOST, &dev_cfg, &devs[i]));
|
||||
|
||||
memset(master_recvbuf, 0, sizeof(master_recvbuf));
|
||||
@@ -1673,7 +1661,7 @@ void test_add_device_slave(void)
|
||||
|
||||
spi_bus_config_t bus_cfg = SPI_BUS_TEST_DEFAULT_CONFIG();
|
||||
spi_slave_interface_config_t slvcfg = {
|
||||
.spics_io_num = CS_REAL_DEV,
|
||||
.spics_io_num = PIN_NUM_CS,
|
||||
.queue_size = 3,
|
||||
};
|
||||
TEST_ESP_OK(spi_slave_initialize(TEST_SPI_HOST, &bus_cfg, &slvcfg, SPI_DMA_CH_AUTO));
|
||||
|
||||
@@ -86,7 +86,5 @@ def test_master_esp_flash(case_tester) -> None: # type: ignore
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='no runner')
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='lack of runner') # TODO: IDFCI-10702
|
||||
def test_master_multi_dev(case_tester) -> None: # type: ignore
|
||||
case_tester.run_all_multi_dev_cases(reset=True)
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
CONFIG_SPIRAM=y
|
||||
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=0
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
CONFIG_SPIRAM=y
|
||||
CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=0
|
||||
@@ -14,7 +14,5 @@ def test_param_single_dev(case_tester) -> None: # type: ignore
|
||||
@pytest.mark.generic_multi_device
|
||||
@pytest.mark.parametrize('count', [2], indirect=True)
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='no runner')
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='no runner') # TODO: IDFCI-10702
|
||||
def test_param_multi_dev(case_tester) -> None: # type: ignore
|
||||
case_tester.run_all_multi_dev_cases(reset=True)
|
||||
|
||||
@@ -35,8 +35,5 @@ def test_slave_single_dev_esp32c5_rev1(case_tester) -> None: # type: ignore
|
||||
@pytest.mark.generic_multi_device
|
||||
@pytest.mark.parametrize('count, config', [(2, 'release'), (2, 'iram_safe')], indirect=True)
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='no runner')
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='no runner') # TODO: IDFCI-10702
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='s31 bringup on this module is not done')
|
||||
def test_slave_multi_dev(case_tester) -> None: # type: ignore
|
||||
case_tester.run_all_multi_dev_cases(reset=True)
|
||||
|
||||
@@ -29,7 +29,5 @@ def test_slave_hd_single_dev_esp32c5_rev1(case_tester) -> None: # type: ignore
|
||||
@pytest.mark.generic_multi_device
|
||||
@pytest.mark.parametrize('count, config', [(2, 'release')], indirect=True)
|
||||
@idf_parametrize('target', soc_filtered_targets('SOC_SPI_SUPPORT_SLAVE_HD_VER2 == 1'), indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='no runner')
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='no runner') # TODO: IDFCI-10702
|
||||
def test_slave_hd_multi_dev(case_tester) -> None: # type: ignore
|
||||
case_tester.run_all_multi_dev_cases(reset=True)
|
||||
|
||||
@@ -17,10 +17,6 @@ components/esp_driver_uart/test_apps/rs485:
|
||||
components/esp_driver_uart/test_apps/uart:
|
||||
disable:
|
||||
- if: SOC_UART_SUPPORTED != 1
|
||||
disable_test:
|
||||
- if: IDF_TARGET in ["esp32h4"]
|
||||
temporary: true
|
||||
reason: cannot pass # TODO: IDF-15619
|
||||
depends_components:
|
||||
- esp_driver_uart
|
||||
- esp_hal_uart
|
||||
|
||||
@@ -83,10 +83,9 @@ def test_uart_single_dev_psram(case_tester) -> None: # type: ignore
|
||||
# ESP32 only supports uart wakeup if signal routes through IOMUX
|
||||
# ESP32S3 multi device runner has no psram IDF-12837,
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32', 'esp32s3'], reason='no multi-dev runner')
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='cannot pass') # TODO: IDF-15619
|
||||
@pytest.mark.generic_multi_device
|
||||
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32s31'], reason='s31 bringup on this module is not done')
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32h4'], reason='no runner') # TODO: IDFCI-10702
|
||||
@pytest.mark.parametrize(
|
||||
'config',
|
||||
[
|
||||
|
||||
@@ -23,7 +23,7 @@ examples/bluetooth/bluedroid/ble:
|
||||
- if: IDF_TARGET == "esp32s31"
|
||||
temporary: true
|
||||
reason: lack of runners
|
||||
- if: IDF_TARGET == "esp32h4" # TODO: IDFCI-10702
|
||||
- if: IDF_TARGET == "esp32h4" # TODO: IDFCI-11112
|
||||
temporary: true
|
||||
reason: lack of runner
|
||||
depends_components+:
|
||||
@@ -59,7 +59,7 @@ examples/bluetooth/bluedroid/ble/ble_throughput:
|
||||
- if: IDF_TARGET == "esp32s31"
|
||||
temporary: true
|
||||
reason: lack of runners
|
||||
- if: IDF_TARGET == "esp32h4" # TODO: IDFCI-10702
|
||||
- if: IDF_TARGET == "esp32h4" # TODO: IDFCI-11112
|
||||
temporary: true
|
||||
reason: lack of runner
|
||||
depends_components+:
|
||||
@@ -78,7 +78,7 @@ examples/bluetooth/bluedroid/ble_50:
|
||||
- if: IDF_TARGET == "esp32s31"
|
||||
temporary: true
|
||||
reason: lack of runners
|
||||
- if: IDF_TARGET == "esp32h4" # TODO: IDFCI-10702
|
||||
- if: IDF_TARGET == "esp32h4" # TODO: IDFCI-11112
|
||||
temporary: true
|
||||
reason: lack of runner
|
||||
depends_components+:
|
||||
@@ -393,7 +393,7 @@ examples/bluetooth/nimble/blecent:
|
||||
- if: IDF_TARGET == "esp32s31"
|
||||
temporary: true
|
||||
reason: lack of runners
|
||||
- if: IDF_TARGET == "esp32h4" # TODO: IDFCI-10702
|
||||
- if: IDF_TARGET == "esp32h4" # TODO: IDFCI-11112
|
||||
temporary: true
|
||||
reason: lack of runner
|
||||
depends_components+:
|
||||
@@ -442,7 +442,7 @@ examples/bluetooth/nimble/power_save:
|
||||
- if: IDF_TARGET == "esp32s31"
|
||||
temporary: true
|
||||
reason: lack of runners, and light sleep not supported yet
|
||||
- if: IDF_TARGET == "esp32h4" # TODO: IDFCI-10702
|
||||
- if: IDF_TARGET == "esp32h4" # TODO: IDFCI-11112
|
||||
temporary: true
|
||||
reason: lack of runner
|
||||
depends_components+:
|
||||
|
||||
@@ -790,9 +790,9 @@ examples/peripherals/uart/uart_dma_ota:
|
||||
- if: IDF_TARGET in ["esp32s31"]
|
||||
temporary: true
|
||||
reason: Lack runners
|
||||
- if: IDF_TARGET in ["esp32h4"] # TODO: IDFCI-10702
|
||||
- if: IDF_TARGET in ["esp32h4"] # TODO: IDFCI-10703
|
||||
temporary: true
|
||||
reason: lack of runner
|
||||
reason: lack of usj runner
|
||||
depends_components:
|
||||
- esp_driver_uart
|
||||
- esp_driver_dma
|
||||
|
||||
Reference in New Issue
Block a user