diff --git a/.gitlab/ci/target-test.yml b/.gitlab/ci/target-test.yml index 64fa9daa45..8e6c98db44 100644 --- a/.gitlab/ci/target-test.yml +++ b/.gitlab/ci/target-test.yml @@ -687,7 +687,7 @@ UT_C3_FLASH_SUSPEND: UT_S3: extends: .unit_test_esp32s3_template - parallel: 20 + parallel: 25 tags: - ESP32S3_IDF - UT_T1_1 diff --git a/components/esp32c3/ld/esp32c3.project.ld.in b/components/esp32c3/ld/esp32c3.project.ld.in index 7c4c031a28..1aaa4ead6f 100644 --- a/components/esp32c3/ld/esp32c3.project.ld.in +++ b/components/esp32c3/ld/esp32c3.project.ld.in @@ -51,8 +51,6 @@ SECTIONS * data/rodata, including from any source file * named rtc_wake_stub*.c and the data marked with * RTC_DATA_ATTR, RTC_RODATA_ATTR attributes. - * The memory location of the data is dependent on - * CONFIG_ESP32C3_RTCDATA_IN_FAST_MEM option. */ .rtc.data : { @@ -81,7 +79,6 @@ SECTIONS * and will be retained during deep sleep. * User data marked with RTC_NOINIT_ATTR will be placed * into this section. See the file "esp_attr.h" for more information. - * The memory location of the data is dependent on CONFIG_ESP32C3_RTCDATA_IN_FAST_MEM option. */ .rtc_noinit (NOLOAD): { diff --git a/components/esp32s3/ld/esp32s3.ld b/components/esp32s3/ld/esp32s3.ld index bd54875e82..a1e4e153d2 100644 --- a/components/esp32s3/ld/esp32s3.ld +++ b/components/esp32s3/ld/esp32s3.ld @@ -101,9 +101,9 @@ _heap_end = 0x40000000; _data_seg_org = ORIGIN(rtc_data_seg); #if CONFIG_ESP32S3_RTCDATA_IN_FAST_MEM -REGION_ALIAS("rtc_data_location", rtc_slow_seg ); -#else REGION_ALIAS("rtc_data_location", rtc_data_seg ); +#else +REGION_ALIAS("rtc_data_location", rtc_slow_seg ); #endif // CONFIG_ESP32S3_RTCDATA_IN_FAST_MEM #if CONFIG_APP_BUILD_USE_FLASH_SECTIONS diff --git a/components/esp32s3/ld/esp32s3.project.ld.in b/components/esp32s3/ld/esp32s3.project.ld.in index 00303d1ffe..50ca055298 100644 --- a/components/esp32s3/ld/esp32s3.project.ld.in +++ b/components/esp32s3/ld/esp32s3.project.ld.in @@ -327,7 +327,7 @@ SECTIONS /* C++ constructor and destructor tables */ /* Don't include anything from crtbegin.o or crtend.o, as IDF doesn't use toolchain crt */ __init_array_start = ABSOLUTE(.); - KEEP (*(EXCLUDE_FILE (*crtend.* *crtbegin.*) .ctors .ctors.*)) + KEEP (*(EXCLUDE_FILE (*crtend.* *crtbegin.*) .ctors SORT(.ctors.*))) __init_array_end = ABSOLUTE(.); KEEP (*crtbegin.*(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.*) .dtors)) diff --git a/components/esp_hw_support/test/test_rtc_clk.c b/components/esp_hw_support/test/test_rtc_clk.c index 98cfb73854..1756e795ed 100644 --- a/components/esp_hw_support/test/test_rtc_clk.c +++ b/components/esp_hw_support/test/test_rtc_clk.c @@ -315,8 +315,6 @@ TEST_CASE("Test starting 'External 32kHz XTAL' on the board without it.", "[rtc_ #endif -static RTC_NOINIT_ATTR int64_t start = 0; - TEST_CASE("Test rtc clk calibration compensation", "[rtc_clk]") { int64_t t1 = esp_rtc_get_time_us(); @@ -344,6 +342,11 @@ TEST_CASE("Test rtc clk calibration compensation", "[rtc_clk]") TEST_ASSERT_GREATER_THAN(t1, t2); } +#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3) +/* Disabled until deep sleep is brought up TODO ESP32-S3 IDF-2691 */ + +static RTC_NOINIT_ATTR int64_t start = 0; + static void trigger_deepsleep(void) { printf("Trigger deep sleep. Waiting for 10 sec ...\n"); @@ -392,3 +395,5 @@ static void check_time_deepsleep_2(void) } TEST_CASE_MULTIPLE_STAGES("Test rtc clk calibration compensation across deep sleep", "[rtc_clk][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET]", trigger_deepsleep, check_time_deepsleep_1, check_time_deepsleep_2); + +#endif // !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3) diff --git a/components/esp_lcd/test/test_rgb_panel.c b/components/esp_lcd/test/test_rgb_panel.c index f2f228cd88..bce9d81faf 100644 --- a/components/esp_lcd/test/test_rgb_panel.c +++ b/components/esp_lcd/test/test_rgb_panel.c @@ -31,6 +31,10 @@ #define TEST_LCD_DISP_EN_GPIO (-1) #if SOC_LCD_RGB_SUPPORTED + +#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3) +/* Not enough memory for framebuffer when running in default_2 config TODO IDF-3565 */ + TEST_CASE("lcd rgb lcd panel", "[lcd]") { #define TEST_IMG_SIZE (100 * 100 * sizeof(uint16_t)) @@ -161,4 +165,7 @@ TEST_CASE("lvgl gui with rgb interface", "[lcd][lvgl][ignore]") test_lvgl_task_loop(panel_handle, TEST_LCD_H_RES, TEST_LCD_V_RES, &disp); } #endif // CONFIG_LV_USE_USER_DATA + +#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3) + #endif // SOC_LCD_RGB_SUPPORTED diff --git a/components/esp_wifi/test/test_wifi.c b/components/esp_wifi/test/test_wifi.c index c33361f6ed..56e5930bdf 100644 --- a/components/esp_wifi/test/test_wifi.c +++ b/components/esp_wifi/test/test_wifi.c @@ -23,8 +23,8 @@ #define EVENT_HANDLER_FLAG_DO_NOT_AUTO_RECONNECT 0x00000001 -#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32C3) -/* TODO ESP32-S2 IDF-2618, TODO ESP32-C3 IDF-2618 */ +#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32S3, ESP32C3) +/* TODO IDF-2618 */ static const char* TAG = "test_wifi"; static uint32_t wifi_event_handler_flag; @@ -343,4 +343,4 @@ static void test_wifi_connection_softap(void) TEST_CASE_MULTIPLE_DEVICES("test wifi retain connection for 60s", "[wifi][test_env=UT_T2_1][timeout=90]", test_wifi_connection_sta, test_wifi_connection_softap); -#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32C3) +#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32S3, ESP32C3) diff --git a/components/sdmmc/test/test_sd.c b/components/sdmmc/test/test_sd.c index 4a2e1c8588..6ab0bbe431 100644 --- a/components/sdmmc/test/test_sd.c +++ b/components/sdmmc/test/test_sd.c @@ -33,11 +33,12 @@ #include "esp_rom_gpio.h" #include "test_utils.h" -#define WITH_SD_TEST (SOC_SDMMC_HOST_SUPPORTED) -//Currently no runners for S2 and C3 -#define WITH_SDSPI_TEST (!TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32C3)) +// Currently no runners for S3 +#define WITH_SD_TEST (SOC_SDMMC_HOST_SUPPORTED && !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3)) +//Currently no runners for S2, S3 and C3 +#define WITH_SDSPI_TEST (!TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32S3, ESP32C3)) // Can't test eMMC (slot 0) and PSRAM together -#define WITH_EMMC_TEST (SOC_SDMMC_HOST_SUPPORTED && !CONFIG_SPIRAM) +#define WITH_EMMC_TEST (SOC_SDMMC_HOST_SUPPORTED && !CONFIG_SPIRAM && !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3)) /* power supply enable pin */ #define SD_TEST_BOARD_VSEL_EN_GPIO 27 diff --git a/components/wpa_supplicant/test/test_offchannel.c b/components/wpa_supplicant/test/test_offchannel.c index 02ce91f022..853377e96a 100644 --- a/components/wpa_supplicant/test/test_offchannel.c +++ b/components/wpa_supplicant/test/test_offchannel.c @@ -32,7 +32,8 @@ #define TEST_LISTEN_CHANNEL 6 -#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32C3) +/* No runners */ +#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32S3, ESP32C3) static const char *TAG = "test_offchan"; esp_netif_t *wifi_netif; @@ -242,4 +243,4 @@ static void test_wifi_roc(void) TEST_CASE_MULTIPLE_DEVICES("test ROC and Offchannel Action Frame Tx", "[Offchan][test_env=UT_T2_1][timeout=90]", test_wifi_roc, test_wifi_offchan_tx); -#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32C3) +#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32S2, ESP32S3, ESP32C3) diff --git a/tools/unit-test-app/configs/default_2_s3 b/tools/unit-test-app/configs/default_2_s3 new file mode 100644 index 0000000000..d6d46ff9db --- /dev/null +++ b/tools/unit-test-app/configs/default_2_s3 @@ -0,0 +1,3 @@ +# This config is split between targets since different component needs to be excluded (esp32, esp32s2) +CONFIG_IDF_TARGET="esp32s3" +TEST_EXCLUDE_COMPONENTS=libsodium bt app_update freertos esp32s3 esp_ipc esp_pm esp_system esp_timer driver heap pthread soc spi_flash vfs experimental_cpp_component esp-tls test_utils