From 65767769a97fe41a7b988719d532c3ab631b499e Mon Sep 17 00:00:00 2001 From: morris Date: Tue, 20 Sep 2022 18:01:12 +0800 Subject: [PATCH] esp_rom: migrate ut to pytest --- components/esp_rom/.build-test-rules.yml | 6 +++ components/esp_rom/test/CMakeLists.txt | 11 ----- components/esp_rom/test/logo.jpg | Bin 7561 -> 0 bytes components/esp_rom/test_apps/CMakeLists.txt | 5 +++ components/esp_rom/test_apps/README.md | 2 + .../esp_rom/test_apps/main/CMakeLists.txt | 8 ++++ .../esp_rom/test_apps/main/test_app_main.c | 40 ++++++++++++++++++ .../{test => test_apps/main}/test_libgcc.c | 5 +++ .../{test => test_apps/main}/test_miniz.c | 27 +++--------- .../esp_rom/test_apps/pytest_esp_rom.py | 16 +++++++ .../esp_rom/test_apps/sdkconfig.defaults | 2 + tools/unit-test-app/configs/default_2_c2 | 2 +- tools/unit-test-app/configs/default_3_c2 | 2 +- 13 files changed, 93 insertions(+), 33 deletions(-) delete mode 100644 components/esp_rom/test/CMakeLists.txt delete mode 100644 components/esp_rom/test/logo.jpg create mode 100644 components/esp_rom/test_apps/CMakeLists.txt create mode 100644 components/esp_rom/test_apps/README.md create mode 100644 components/esp_rom/test_apps/main/CMakeLists.txt create mode 100644 components/esp_rom/test_apps/main/test_app_main.c rename components/esp_rom/{test => test_apps/main}/test_libgcc.c (98%) rename components/esp_rom/{test => test_apps/main}/test_miniz.c (86%) create mode 100644 components/esp_rom/test_apps/pytest_esp_rom.py create mode 100644 components/esp_rom/test_apps/sdkconfig.defaults diff --git a/components/esp_rom/.build-test-rules.yml b/components/esp_rom/.build-test-rules.yml index 1ed5faae8e..8a19709b18 100644 --- a/components/esp_rom/.build-test-rules.yml +++ b/components/esp_rom/.build-test-rules.yml @@ -4,3 +4,9 @@ components/esp_rom/host_test/rom_test: enable: - if: IDF_TARGET == "linux" reason: only test on linux + +components/esp_rom/test_apps: + disable_test: + - if: IDF_TARGET in ["esp32", "esp32c2"] + temporary: false + reason: lack of memory for testing miniz compressing diff --git a/components/esp_rom/test/CMakeLists.txt b/components/esp_rom/test/CMakeLists.txt deleted file mode 100644 index 0edd942c0f..0000000000 --- a/components/esp_rom/test/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -idf_component_register(SRC_DIRS . - PRIV_INCLUDE_DIRS . ${CMAKE_CURRENT_BINARY_DIR} - PRIV_REQUIRES cmock test_utils) -target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format") - -add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/test_tjpgd_logo.h" - COMMAND xxd -i "logo.jpg" "${CMAKE_CURRENT_BINARY_DIR}/test_tjpgd_logo.h" - WORKING_DIRECTORY ${COMPONENT_DIR} - DEPENDS "${CMAKE_CURRENT_LIST_DIR}/logo.jpg") -add_custom_target(test_logo DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/test_tjpgd_logo.h") -add_dependencies(${COMPONENT_LIB} test_logo) diff --git a/components/esp_rom/test/logo.jpg b/components/esp_rom/test/logo.jpg deleted file mode 100644 index 2bd9e775eac4d4195d9d7465239fa007715ff428..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7561 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 TEST_MEMORY_LEAK_THRESHOLD, "memory leak"); +} + +void setUp(void) +{ + before_free_8bit = heap_caps_get_free_size(MALLOC_CAP_8BIT); + before_free_32bit = heap_caps_get_free_size(MALLOC_CAP_32BIT); +} + +void tearDown(void) +{ + size_t after_free_8bit = heap_caps_get_free_size(MALLOC_CAP_8BIT); + size_t after_free_32bit = heap_caps_get_free_size(MALLOC_CAP_32BIT); + check_leak(before_free_8bit, after_free_8bit, "8BIT"); + check_leak(before_free_32bit, after_free_32bit, "32BIT"); +} + +void app_main(void) +{ + unity_run_menu(); +} diff --git a/components/esp_rom/test/test_libgcc.c b/components/esp_rom/test_apps/main/test_libgcc.c similarity index 98% rename from components/esp_rom/test/test_libgcc.c rename to components/esp_rom/test_apps/main/test_libgcc.c index 143b06a1aa..d3b84a876f 100644 --- a/components/esp_rom/test/test_libgcc.c +++ b/components/esp_rom/test_apps/main/test_libgcc.c @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Unlicense OR CC0-1.0 + */ #include #include "unity.h" diff --git a/components/esp_rom/test/test_miniz.c b/components/esp_rom/test_apps/main/test_miniz.c similarity index 86% rename from components/esp_rom/test/test_miniz.c rename to components/esp_rom/test_apps/main/test_miniz.c index 4744aba6a9..e5c34e6911 100644 --- a/components/esp_rom/test/test_miniz.c +++ b/components/esp_rom/test_apps/main/test_miniz.c @@ -1,27 +1,17 @@ +/* + * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Unlicense OR CC0-1.0 + */ #include #include #include #include #include "sdkconfig.h" #include "unity.h" +#include "rom/miniz.h" -// compression/decompression will take off a bunch of memory -// test it only with PSRAM enabled -#ifdef CONFIG_SPIRAM - -#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32) -// miniz unit test can't pass on ESP32 non-ECO3 version IDF-1807 - -#if CONFIG_IDF_TARGET_ESP32 -#include "esp32/rom/miniz.h" -#elif CONFIG_IDF_TARGET_ESP32S2 -#include "esp32s2/rom/miniz.h" -#else -#error "unsupported target" -#endif - - -#define DATASIZE (1024 * 64) +#define DATASIZE (1024 * 32) TEST_CASE("Test miniz compression/decompression", "[rom][miniz]") { @@ -101,6 +91,3 @@ TEST_CASE("Test miniz compression/decompression", "[rom][miniz]") free(outbuf); free(decomp); } - -#endif //#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32) -#endif // CONFIG_SPIRAM diff --git a/components/esp_rom/test_apps/pytest_esp_rom.py b/components/esp_rom/test_apps/pytest_esp_rom.py new file mode 100644 index 0000000000..9ddf838c2b --- /dev/null +++ b/components/esp_rom/test_apps/pytest_esp_rom.py @@ -0,0 +1,16 @@ +# SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD +# SPDX-License-Identifier: CC0-1.0 + +import pytest +from pytest_embedded import Dut + + +@pytest.mark.esp32c3 +@pytest.mark.esp32s2 +@pytest.mark.esp32s3 +@pytest.mark.generic +@pytest.mark.nightly_run +def test_esp_rom(dut: Dut) -> None: + dut.expect('Press ENTER to see the list of tests') + dut.write('*') + dut.expect_unity_test_output() diff --git a/components/esp_rom/test_apps/sdkconfig.defaults b/components/esp_rom/test_apps/sdkconfig.defaults new file mode 100644 index 0000000000..b308cb2ddd --- /dev/null +++ b/components/esp_rom/test_apps/sdkconfig.defaults @@ -0,0 +1,2 @@ +CONFIG_FREERTOS_HZ=1000 +CONFIG_ESP_TASK_WDT=n diff --git a/tools/unit-test-app/configs/default_2_c2 b/tools/unit-test-app/configs/default_2_c2 index 72a2c93879..1bc68a1ce6 100644 --- a/tools/unit-test-app/configs/default_2_c2 +++ b/tools/unit-test-app/configs/default_2_c2 @@ -1,3 +1,3 @@ # This config is split between targets since different component needs to be included CONFIG_IDF_TARGET="esp32c2" -TEST_COMPONENTS=app_trace console efuse esp_common esp_eth esp_event esp_hid esp_netif esp_phy esp_ringbuf esp_rom esp_wifi espcoredump hal lwip mdns mqtt newlib nvs_flash partition_table sdmmc spiffs +TEST_COMPONENTS=app_trace console efuse esp_common esp_eth esp_event esp_hid esp_netif esp_phy esp_ringbuf esp_wifi espcoredump hal lwip mdns mqtt newlib nvs_flash partition_table sdmmc spiffs diff --git a/tools/unit-test-app/configs/default_3_c2 b/tools/unit-test-app/configs/default_3_c2 index d516eea21d..475aaf583a 100644 --- a/tools/unit-test-app/configs/default_3_c2 +++ b/tools/unit-test-app/configs/default_3_c2 @@ -1,3 +1,3 @@ # This config is split between targets since different component needs to be included CONFIG_IDF_TARGET="esp32c2" -TEST_EXCLUDE_COMPONENTS=app_trace console efuse esp_common esp_eth esp_event esp_hid esp_netif esp_phy esp_ringbuf esp_rom esp_wifi espcoredump hal lwip mdns mqtt newlib nvs_flash partition_table sdmmc spiffs freertos esp_hw_support esp_ipc esp_system esp_timer driver heap soc spi_flash vfs +TEST_EXCLUDE_COMPONENTS=app_trace console efuse esp_common esp_eth esp_event esp_hid esp_netif esp_phy esp_ringbuf esp_wifi espcoredump hal lwip mdns mqtt newlib nvs_flash partition_table sdmmc spiffs freertos esp_hw_support esp_ipc esp_system esp_timer driver heap soc spi_flash vfs