From 545203f1c872f898a8e195f51aca9bd78efcd61d Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Wed, 17 Apr 2024 09:44:19 +0200 Subject: [PATCH] change(ci): split test_apps build-test-rules, add missing code owners --- .gitlab/CODEOWNERS | 8 +- tools/test_apps/.build-test-rules.yml | 232 ------------------ .../build_system/.build-test-rules.yml | 21 ++ .../linux_compatible/.build-test-rules.yml | 15 ++ .../peripherals/.build-test-rules.yml | 5 + tools/test_apps/phy/.build-test-rules.yml | 15 ++ .../test_apps/protocols/.build-test-rules.yml | 33 +++ .../test_apps/security/.build-test-rules.yml | 12 + tools/test_apps/storage/.build-test-rules.yml | 32 +++ tools/test_apps/system/.build-test-rules.yml | 106 ++++++++ 10 files changed, 246 insertions(+), 233 deletions(-) delete mode 100644 tools/test_apps/.build-test-rules.yml create mode 100644 tools/test_apps/build_system/.build-test-rules.yml create mode 100644 tools/test_apps/linux_compatible/.build-test-rules.yml create mode 100644 tools/test_apps/peripherals/.build-test-rules.yml create mode 100644 tools/test_apps/phy/.build-test-rules.yml create mode 100644 tools/test_apps/protocols/.build-test-rules.yml create mode 100644 tools/test_apps/security/.build-test-rules.yml create mode 100644 tools/test_apps/storage/.build-test-rules.yml create mode 100644 tools/test_apps/system/.build-test-rules.yml diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS index 10985bcca6..4b9ed824ce 100644 --- a/.gitlab/CODEOWNERS +++ b/.gitlab/CODEOWNERS @@ -206,13 +206,19 @@ /tools/ldgen/ @esp-idf-codeowners/build-config /tools/mass_mfg/ @esp-idf-codeowners/app-utilities /tools/mocks/ @esp-idf-codeowners/system -/tools/test_apps/README.md @esp-idf-codeowners/docs @esp-idf-codeowners/ci + +/tools/test_apps/ @esp-idf-codeowners/ci +/tools/test_apps/README.md @esp-idf-codeowners/docs @esp-idf-codeowners/ci ## Note: owners here should be the same as the owners for the same example subdir, above /tools/test_apps/build_system/ @esp-idf-codeowners/build-config +/tools/test_apps/configs/ @esp-idf-codeowners/system /tools/test_apps/linux_compatible/ @esp-idf-codeowners/system +/tools/test_apps/peripherals/ @esp-idf-codeowners/peripherals +/tools/test_apps/phy/ @esp-idf-codeowners/bluetooth @esp-idf-codeowners/wifi @esp-idf-codeowners/ieee802154 /tools/test_apps/protocols/ @esp-idf-codeowners/network @esp-idf-codeowners/app-utilities /tools/test_apps/security/ @esp-idf-codeowners/security +/tools/test_apps/storage/ @esp-idf-codeowners/storage /tools/test_apps/system/ @esp-idf-codeowners/system /tools/test_apps/**/*.py @esp-idf-codeowners/ci @esp-idf-codeowners/tools diff --git a/tools/test_apps/.build-test-rules.yml b/tools/test_apps/.build-test-rules.yml deleted file mode 100644 index 1805aa5d24..0000000000 --- a/tools/test_apps/.build-test-rules.yml +++ /dev/null @@ -1,232 +0,0 @@ -# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps - -tools/test_apps/build_system/bootloader: - disable: - - if: IDF_TARGET == "linux" - reason: the test should run on all targets except linux - -tools/test_apps/build_system/custom_partition_subtypes: - enable: - - if: IDF_TARGET in ["esp32", "linux"] - reason: the test should be run on ESP32 and linux - -tools/test_apps/build_system/embed_test: - enable: - - if: IDF_TARGET in ["esp32", "esp32c3"] - temporary: false - reason: Hardware independent feature, no need to test on all targets - -tools/test_apps/build_system/ld_non_contiguous_memory: - disable: - - if: SOC_MEM_NON_CONTIGUOUS_SRAM != 1 - -tools/test_apps/linux_compatible/generic_build_test: - enable: - - if: IDF_TARGET in ["esp32", "esp32c3", "linux"] - depends_components: - - log - -tools/test_apps/linux_compatible/linux_freertos: - enable: - - if: IDF_TARGET == "linux" - -tools/test_apps/linux_compatible/mock_build_test: - enable: - - if: IDF_TARGET == "linux" - -tools/test_apps/peripherals/i2c_wifi: - disable: - - if: SOC_I2C_SUPPORTED != 1 or SOC_WIFI_SUPPORTED != 1 - -tools/test_apps/phy/phy_multi_init_data_test: - disable: - - if: SOC_WIFI_SUPPORTED != 1 - -tools/test_apps/phy/phy_tsens: - disable: - - if: SOC_WIFI_SUPPORTED != 1 or SOC_TEMP_SENSOR_SUPPORTED != 1 - depends_components: - - hal - - driver - - esp_phy - - esp_hw_support - - esp_wifi - -tools/test_apps/protocols/esp_netif/build_config: - enable: - - if: IDF_TARGET in ["esp32", "esp32c2"] - temporary: false - reason: No need to test on all targets - -tools/test_apps/protocols/mqtt/publish_connect_test: - enable: - - if: IDF_TARGET in ["esp32", "esp32c3", "esp32s2"] - temporary: true - reason: the other targets are not tested yet - disable_test: - - if: IDF_TARGET == "esp32s2" or IDF_TARGET == "esp32c3" - temporary: true - reason: lack of runners - depends_components: - - esp_eth - depends_filepatterns: - - tools/ci/python_packages/common_test_methods.py - - examples/common_components/**/* - - examples/protocols/**/* - - examples/system/ota/**/* - - examples/ethernet/iperf/**/* - - examples/network/vlan_support/**/* - - components/esp_netif/esp_netif_handlers.c - -tools/test_apps/protocols/netif_components: - enable: - - if: IDF_TARGET == "esp32" - temporary: true - reason: one target is enough to verify netif component dependencies - -tools/test_apps/security/secure_boot: - disable: - - if: IDF_ENV_FPGA != 1 - reason: the test can only run on an FPGA as efuses need to be reset during the test. - -tools/test_apps/security/signed_app_no_secure_boot: - enable: - - if: IDF_TARGET in ["esp32c2", "esp32c3"] - temporary: true - reason: No need to test on all targets - -tools/test_apps/storage/partition_table_readonly: - disable_test: - - if: IDF_TARGET not in ["esp32", "esp32c3"] - reason: these chips should be sufficient for test coverage (Xtensa and RISC-V, single and dual core) - disable: - - if: CONFIG_NAME == "encrypted" - temporary: true - reason: there are potential bugs with pytest when using flash encryption and NVS partition with nvs_create_partition_image #TODO: IDF-8300 - depends_components: - - partition_table - - spi_flash - - esp_partition - - nvs_flash - - vfs - - fatfs - - spiffs - -tools/test_apps/storage/sdmmc_console: - disable: - - if: IDF_TARGET in ["esp32h2"] - temporary: true - reason: Console component not supported on H2 yet - disable_test: - - if: IDF_TARGET not in ["esp32", "esp32s2", "esp32c3"] - temporary: true - reason: No runners for other targets yet - depends_components: - - sdmmc - - esp_driver_sdmmc - - esp_driver_sdspi - -tools/test_apps/system/bootloader_sections: - disable: - - if: CONFIG_NAME == "rtc_retain" and SOC_RTC_FAST_MEM_SUPPORTED != 1 - -tools/test_apps/system/build_test: - disable: - - if: CONFIG_NAME == "no_rvfplib" and ESP_ROM_HAS_RVFPLIB != 1 - - if: CONFIG_NAME == "usb_serial_jtag" AND SOC_USB_SERIAL_JTAG_SUPPORTED != 1 - - if: CONFIG_NAME == "usb_console_ets_printf" AND SOC_USB_OTG_SUPPORTED != 1 - - if: CONFIG_NAME == "phy_multiple_init_data" AND IDF_TARGET == "esp32p4" # Update with caps here when IDF-7460 is resolved - -tools/test_apps/system/cxx_no_except: - enable: - - if: IDF_TARGET == "esp32" or IDF_TARGET == "esp32c3" - temporary: true - reason: the other targets are not tested yet - -tools/test_apps/system/cxx_pthread_bluetooth: - enable: - - if: IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32s2", "esp32s3"] - temporary: true - reason: the other targets are not supported yet - -tools/test_apps/system/eh_frame: - enable: - - if: IDF_TARGET in ["esp32c2", "esp32c3"] - temporary: true - reason: the other targets are not tested yet - -tools/test_apps/system/g0_components: - enable: - - if: INCLUDE_DEFAULT == 1 or IDF_TARGET in ["esp32p4", "esp32c5", "esp32c61"] # preview targets - -tools/test_apps/system/g1_components: - -tools/test_apps/system/gdb_loadable_elf: - disable_test: - - if: IDF_TARGET != "esp32" - temporary: true - reason: lack of runners - disable: - - if: IDF_TARGET == "esp32c6" or IDF_TARGET == "esp32h2" - temporary: true - reason: target esp32c6, esp32h2 is not supported yet - -tools/test_apps/system/gdbstub_runtime: - disable: - - if: IDF_TARGET == "esp32p4" - temporary: true - reason: not supported yet #TODO: IDF-7510 - -tools/test_apps/system/longjmp_test: - enable: - - if: IDF_TARGET in ["esp32", "esp32s2", "esp32s3"] - temporary: true - reason: the other targets are not tested yet - disable_test: - - if: IDF_TARGET == "esp32s3" - temporary: true - reason: lack of runners - -tools/test_apps/system/memprot: - enable: - - if: IDF_TARGET in ["esp32c3", "esp32s2", "esp32s3"] - temporary: true - reason: the other targets are not tested yet - -tools/test_apps/system/no_embedded_paths: - enable: - - if: IDF_TARGET in ["esp32", "esp32c3", "esp32s2"] - temporary: true - reason: the other targets are not tested yet - -tools/test_apps/system/panic: - enable: - - if: INCLUDE_DEFAULT == 1 or IDF_TARGET in ["esp32p4"] # preview targets - -tools/test_apps/system/ram_loadable_app: - disable: - - if: IDF_TARGET == "esp32c5" - temporary: true - reason: not supported # TODO: [ESP32C5] IDF-8644 - disable_test: - - if: IDF_TARGET in ["esp32p4"] - temporary: true - reason: TBD # TODO: IDF-8994 - -tools/test_apps/system/rtc_mem_reserve: - enable: - - if: IDF_TARGET in ["esp32p4"] - reason: only P4 has a potential conflict due to using rtc mem for lp rom data/stack - -tools/test_apps/system/startup: - disable: - - if: CONFIG_NAME == "main_task_cpu1" and IDF_TARGET not in ["esp32", "esp32s3"] - -tools/test_apps/system/test_watchpoint: - enable: - - if: IDF_TARGET in ["esp32", "esp32c3"] # Just one test per architecture - -tools/test_apps/system/unicore_bootloader: - enable: - - if: SOC_CPU_CORES_NUM > 1 - reason: the test should be run on multicore chips diff --git a/tools/test_apps/build_system/.build-test-rules.yml b/tools/test_apps/build_system/.build-test-rules.yml new file mode 100644 index 0000000000..1344b5636f --- /dev/null +++ b/tools/test_apps/build_system/.build-test-rules.yml @@ -0,0 +1,21 @@ +# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps + +tools/test_apps/build_system/bootloader: + disable: + - if: IDF_TARGET == "linux" + reason: the test should run on all targets except linux + +tools/test_apps/build_system/custom_partition_subtypes: + enable: + - if: IDF_TARGET in ["esp32", "linux"] + reason: the test should be run on ESP32 and linux + +tools/test_apps/build_system/embed_test: + enable: + - if: IDF_TARGET in ["esp32", "esp32c3"] + temporary: false + reason: Hardware independent feature, no need to test on all targets + +tools/test_apps/build_system/ld_non_contiguous_memory: + disable: + - if: SOC_MEM_NON_CONTIGUOUS_SRAM != 1 diff --git a/tools/test_apps/linux_compatible/.build-test-rules.yml b/tools/test_apps/linux_compatible/.build-test-rules.yml new file mode 100644 index 0000000000..42611f3ab6 --- /dev/null +++ b/tools/test_apps/linux_compatible/.build-test-rules.yml @@ -0,0 +1,15 @@ +# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps + +tools/test_apps/linux_compatible/generic_build_test: + enable: + - if: IDF_TARGET in ["esp32", "esp32c3", "linux"] + depends_components: + - log + +tools/test_apps/linux_compatible/linux_freertos: + enable: + - if: IDF_TARGET == "linux" + +tools/test_apps/linux_compatible/mock_build_test: + enable: + - if: IDF_TARGET == "linux" diff --git a/tools/test_apps/peripherals/.build-test-rules.yml b/tools/test_apps/peripherals/.build-test-rules.yml new file mode 100644 index 0000000000..c62ccdbdc5 --- /dev/null +++ b/tools/test_apps/peripherals/.build-test-rules.yml @@ -0,0 +1,5 @@ +# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps + +tools/test_apps/peripherals/i2c_wifi: + disable: + - if: SOC_I2C_SUPPORTED != 1 or SOC_WIFI_SUPPORTED != 1 diff --git a/tools/test_apps/phy/.build-test-rules.yml b/tools/test_apps/phy/.build-test-rules.yml new file mode 100644 index 0000000000..9dcdbb7636 --- /dev/null +++ b/tools/test_apps/phy/.build-test-rules.yml @@ -0,0 +1,15 @@ +# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps + +tools/test_apps/phy/phy_multi_init_data_test: + disable: + - if: SOC_WIFI_SUPPORTED != 1 + +tools/test_apps/phy/phy_tsens: + disable: + - if: SOC_WIFI_SUPPORTED != 1 or SOC_TEMP_SENSOR_SUPPORTED != 1 + depends_components: + - hal + - driver + - esp_phy + - esp_hw_support + - esp_wifi diff --git a/tools/test_apps/protocols/.build-test-rules.yml b/tools/test_apps/protocols/.build-test-rules.yml new file mode 100644 index 0000000000..81198acd88 --- /dev/null +++ b/tools/test_apps/protocols/.build-test-rules.yml @@ -0,0 +1,33 @@ +# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps + +tools/test_apps/protocols/esp_netif/build_config: + enable: + - if: IDF_TARGET in ["esp32", "esp32c2"] + temporary: false + reason: No need to test on all targets + +tools/test_apps/protocols/mqtt/publish_connect_test: + enable: + - if: IDF_TARGET in ["esp32", "esp32c3", "esp32s2"] + temporary: true + reason: the other targets are not tested yet + disable_test: + - if: IDF_TARGET == "esp32s2" or IDF_TARGET == "esp32c3" + temporary: true + reason: lack of runners + depends_components: + - esp_eth + depends_filepatterns: + - tools/ci/python_packages/common_test_methods.py + - examples/common_components/**/* + - examples/protocols/**/* + - examples/system/ota/**/* + - examples/ethernet/iperf/**/* + - examples/network/vlan_support/**/* + - components/esp_netif/esp_netif_handlers.c + +tools/test_apps/protocols/netif_components: + enable: + - if: IDF_TARGET == "esp32" + temporary: true + reason: one target is enough to verify netif component dependencies diff --git a/tools/test_apps/security/.build-test-rules.yml b/tools/test_apps/security/.build-test-rules.yml new file mode 100644 index 0000000000..c015f7ea42 --- /dev/null +++ b/tools/test_apps/security/.build-test-rules.yml @@ -0,0 +1,12 @@ +# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps + +tools/test_apps/security/secure_boot: + disable: + - if: IDF_ENV_FPGA != 1 + reason: the test can only run on an FPGA as efuses need to be reset during the test. + +tools/test_apps/security/signed_app_no_secure_boot: + enable: + - if: IDF_TARGET in ["esp32c2", "esp32c3"] + temporary: true + reason: No need to test on all targets diff --git a/tools/test_apps/storage/.build-test-rules.yml b/tools/test_apps/storage/.build-test-rules.yml new file mode 100644 index 0000000000..b82d3253e8 --- /dev/null +++ b/tools/test_apps/storage/.build-test-rules.yml @@ -0,0 +1,32 @@ +# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps + +tools/test_apps/storage/partition_table_readonly: + disable_test: + - if: IDF_TARGET not in ["esp32", "esp32c3"] + reason: these chips should be sufficient for test coverage (Xtensa and RISC-V, single and dual core) + disable: + - if: CONFIG_NAME == "encrypted" + temporary: true + reason: there are potential bugs with pytest when using flash encryption and NVS partition with nvs_create_partition_image #TODO: IDF-8300 + depends_components: + - partition_table + - spi_flash + - esp_partition + - nvs_flash + - vfs + - fatfs + - spiffs + +tools/test_apps/storage/sdmmc_console: + disable: + - if: IDF_TARGET in ["esp32h2"] + temporary: true + reason: Console component not supported on H2 yet + disable_test: + - if: IDF_TARGET not in ["esp32", "esp32s2", "esp32c3"] + temporary: true + reason: No runners for other targets yet + depends_components: + - sdmmc + - esp_driver_sdmmc + - esp_driver_sdspi diff --git a/tools/test_apps/system/.build-test-rules.yml b/tools/test_apps/system/.build-test-rules.yml new file mode 100644 index 0000000000..d2d874915c --- /dev/null +++ b/tools/test_apps/system/.build-test-rules.yml @@ -0,0 +1,106 @@ +# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps + +tools/test_apps/system/bootloader_sections: + disable: + - if: CONFIG_NAME == "rtc_retain" and SOC_RTC_FAST_MEM_SUPPORTED != 1 + +tools/test_apps/system/build_test: + disable: + - if: CONFIG_NAME == "no_rvfplib" and ESP_ROM_HAS_RVFPLIB != 1 + - if: CONFIG_NAME == "usb_serial_jtag" AND SOC_USB_SERIAL_JTAG_SUPPORTED != 1 + - if: CONFIG_NAME == "usb_console_ets_printf" AND SOC_USB_OTG_SUPPORTED != 1 + - if: CONFIG_NAME == "phy_multiple_init_data" AND IDF_TARGET == "esp32p4" # Update with caps here when IDF-7460 is resolved + +tools/test_apps/system/cxx_no_except: + enable: + - if: IDF_TARGET == "esp32" or IDF_TARGET == "esp32c3" + temporary: true + reason: the other targets are not tested yet + +tools/test_apps/system/cxx_pthread_bluetooth: + enable: + - if: IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32s2", "esp32s3"] + temporary: true + reason: the other targets are not supported yet + +tools/test_apps/system/eh_frame: + enable: + - if: IDF_TARGET in ["esp32c2", "esp32c3"] + temporary: true + reason: the other targets are not tested yet + +tools/test_apps/system/g0_components: + enable: + - if: INCLUDE_DEFAULT == 1 or IDF_TARGET in ["esp32p4", "esp32c5", "esp32c61"] # preview targets + +tools/test_apps/system/g1_components: + +tools/test_apps/system/gdb_loadable_elf: + disable_test: + - if: IDF_TARGET != "esp32" + temporary: true + reason: lack of runners + disable: + - if: IDF_TARGET == "esp32c6" or IDF_TARGET == "esp32h2" + temporary: true + reason: target esp32c6, esp32h2 is not supported yet + +tools/test_apps/system/gdbstub_runtime: + disable: + - if: IDF_TARGET == "esp32p4" + temporary: true + reason: not supported yet #TODO: IDF-7510 + +tools/test_apps/system/longjmp_test: + enable: + - if: IDF_TARGET in ["esp32", "esp32s2", "esp32s3"] + temporary: true + reason: the other targets are not tested yet + disable_test: + - if: IDF_TARGET == "esp32s3" + temporary: true + reason: lack of runners + +tools/test_apps/system/memprot: + enable: + - if: IDF_TARGET in ["esp32c3", "esp32s2", "esp32s3"] + temporary: true + reason: the other targets are not tested yet + +tools/test_apps/system/no_embedded_paths: + enable: + - if: IDF_TARGET in ["esp32", "esp32c3", "esp32s2"] + temporary: true + reason: the other targets are not tested yet + +tools/test_apps/system/panic: + enable: + - if: INCLUDE_DEFAULT == 1 or IDF_TARGET in ["esp32p4"] # preview targets + +tools/test_apps/system/ram_loadable_app: + disable: + - if: IDF_TARGET == "esp32c5" + temporary: true + reason: not supported # TODO: [ESP32C5] IDF-8644 + disable_test: + - if: IDF_TARGET in ["esp32p4"] + temporary: true + reason: TBD # TODO: IDF-8994 + +tools/test_apps/system/rtc_mem_reserve: + enable: + - if: IDF_TARGET in ["esp32p4"] + reason: only P4 has a potential conflict due to using rtc mem for lp rom data/stack + +tools/test_apps/system/startup: + disable: + - if: CONFIG_NAME == "main_task_cpu1" and IDF_TARGET not in ["esp32", "esp32s3"] + +tools/test_apps/system/test_watchpoint: + enable: + - if: IDF_TARGET in ["esp32", "esp32c3"] # Just one test per architecture + +tools/test_apps/system/unicore_bootloader: + enable: + - if: SOC_CPU_CORES_NUM > 1 + reason: the test should be run on multicore chips