mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-05 05:34:32 +02:00
Merge branch 'feature/freertos_unit_test_migration' into 'master'
FreeRTOS: Migrate unit tests to test app Closes IDF-5589 See merge request espressif/esp-idf!20625
This commit is contained in:
@@ -1,15 +0,0 @@
|
||||
# For refactored FreeRTOS unit tests, we need to support #include "xxx.h" of FreeRTOS headers
|
||||
idf_component_get_property(FREERTOS_ORIG_INCLUDE_PATH freertos ORIG_INCLUDE_PATH)
|
||||
|
||||
idf_component_register(SRC_DIRS integration # For freertos_test_utils.c
|
||||
integration/event_groups
|
||||
integration/queue
|
||||
integration/stream_buffer
|
||||
integration/tasks
|
||||
integration/timers
|
||||
miscellaneous
|
||||
performance
|
||||
port
|
||||
PRIV_INCLUDE_DIRS . ./integration "${FREERTOS_ORIG_INCLUDE_PATH}"
|
||||
PRIV_REQUIRES cmock test_utils esp_system driver esp_timer)
|
||||
target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format")
|
@@ -1,25 +0,0 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/*
|
||||
Test for multicore FreeRTOS. This test spins up threads, fiddles with queues etc.
|
||||
*/
|
||||
|
||||
#include <esp_types.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/task.h"
|
||||
#include "freertos/semphr.h"
|
||||
#include "freertos/queue.h"
|
||||
#include "unity.h"
|
||||
|
||||
TEST_CASE("Panic handler", "[freertos][ignore]")
|
||||
{
|
||||
volatile int *i;
|
||||
i = (volatile int *)0x0;
|
||||
*i = 1;
|
||||
}
|
24
components/freertos/test_apps/freertos/CMakeLists.txt
Normal file
24
components/freertos/test_apps/freertos/CMakeLists.txt
Normal file
@@ -0,0 +1,24 @@
|
||||
# This is the project CMakeLists.txt file for the test subproject
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
|
||||
# FreeRTOS tests of different types (e.g., kernel, port, performance etc.)are
|
||||
# split into different directores in the test app's root directory. Each test
|
||||
# type is treated as separate component
|
||||
set(test_types
|
||||
"kernel"
|
||||
"misc"
|
||||
"performance"
|
||||
"port")
|
||||
|
||||
list(APPEND EXTRA_COMPONENT_DIRS
|
||||
${test_types} # Add each test type as a component
|
||||
"$ENV{IDF_PATH}/tools/unit-test-app/components") # For test_utils component
|
||||
|
||||
#"Trim" the build. Include the minimal set of components, main, and anything it depends on.
|
||||
# Note: This is commented out for now due to pthread depending on vPortCleanUpTCB provided by "test_freertos_hooks.c".
|
||||
# pthread is no used in FreeRTOS unit tests, but is pulled in by esp_system due to another dependency.
|
||||
# Todo: Resolve this by either moving the "test_freertos_hooks.c" out, or solving the component dependencies.
|
||||
#set(COMPONENTS main)
|
||||
|
||||
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
|
||||
project(freertos_test)
|
2
components/freertos/test_apps/freertos/README.md
Normal file
2
components/freertos/test_apps/freertos/README.md
Normal file
@@ -0,0 +1,2 @@
|
||||
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-S2 | ESP32-S3 |
|
||||
| ----------------- | ----- | -------- | -------- | -------- | -------- |
|
26
components/freertos/test_apps/freertos/kernel/CMakeLists.txt
Normal file
26
components/freertos/test_apps/freertos/kernel/CMakeLists.txt
Normal file
@@ -0,0 +1,26 @@
|
||||
# Register all of the "kernel" tests as a component
|
||||
|
||||
# For refactored FreeRTOS unit tests, we need to support #include "xxx.h" of FreeRTOS headers
|
||||
idf_component_get_property(FREERTOS_ORIG_INCLUDE_PATH freertos ORIG_INCLUDE_PATH)
|
||||
|
||||
set(src_dirs
|
||||
"." # For freertos_test_utils.c
|
||||
"event_groups"
|
||||
"queue"
|
||||
"stream_buffer"
|
||||
"tasks"
|
||||
"timers")
|
||||
|
||||
set(priv_include_dirs
|
||||
"." # For portTestMacro.h
|
||||
"${FREERTOS_ORIG_INCLUDE_PATH}") # FreeRTOS headers via`#include "xxx.h"`
|
||||
|
||||
# In order for the cases defined by `TEST_CASE` in "kernel" to be linked into
|
||||
# the final elf, the component can be registered as WHOLE_ARCHIVE
|
||||
idf_component_register(SRC_DIRS ${src_dirs}
|
||||
PRIV_INCLUDE_DIRS ${priv_include_dirs}
|
||||
PRIV_REQUIRES test_utils esp_timer driver
|
||||
WHOLE_ARCHIVE)
|
||||
|
||||
# Todo: Fix no-format errors
|
||||
target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format")
|
@@ -20,7 +20,11 @@ static void mutex_release_task(void* arg)
|
||||
TEST_FAIL_MESSAGE("should not be reached");
|
||||
}
|
||||
|
||||
TEST_CASE("mutex released not by owner causes an assert", "[freertos][reset=assert,SW_CPU_RESET]")
|
||||
/*
|
||||
Reset tests are temporarily ignored until the test app supports running them separately.
|
||||
IDF-6096
|
||||
*/
|
||||
TEST_CASE("mutex released not by owner causes an assert", "[freertos][ignore][reset=assert,SW_CPU_RESET]")
|
||||
{
|
||||
SemaphoreHandle_t mutex = xSemaphoreCreateMutex();
|
||||
xSemaphoreTake(mutex, portMAX_DELAY);
|
@@ -15,6 +15,7 @@
|
||||
#include "unity.h"
|
||||
#include "test_utils.h"
|
||||
|
||||
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2, ESP32C3)
|
||||
typedef struct {
|
||||
StreamBufferHandle_t sb;
|
||||
SemaphoreHandle_t end_test;
|
||||
@@ -107,3 +108,4 @@ TEST_CASE("Send-receive stream buffer test", "[freertos]")
|
||||
vStreamBufferDelete(tc.sb);
|
||||
vSemaphoreDelete(tc.end_test);
|
||||
}
|
||||
#endif
|
@@ -56,13 +56,13 @@ TEST_CASE("Test eTaskGetState", "[freertos]")
|
||||
|
||||
// Create tasks of each state on each core
|
||||
for (int i = 0; i < portNUM_PROCESSORS; i++) {
|
||||
TEST_ASSERT_EQUAL(pdPASS, xTaskCreatePinnedToCore(blocked_task, "blkd", configMINIMAL_STACK_SIZE, NULL, UNITY_FREERTOS_PRIORITY - 1, &blocked_tasks[i], i));
|
||||
TEST_ASSERT_EQUAL(pdPASS, xTaskCreatePinnedToCore(suspended_task, "susp", configMINIMAL_STACK_SIZE, NULL, UNITY_FREERTOS_PRIORITY - 1, &suspended_tasks[i], i));
|
||||
TEST_ASSERT_EQUAL(pdPASS, xTaskCreatePinnedToCore(loop_task, "rdy", configMINIMAL_STACK_SIZE, NULL, UNITY_FREERTOS_PRIORITY - 1, &ready_tasks[i], i));
|
||||
TEST_ASSERT_EQUAL(pdPASS, xTaskCreatePinnedToCore(blocked_task, "blkd", configMINIMAL_STACK_SIZE * 2, NULL, UNITY_FREERTOS_PRIORITY - 1, &blocked_tasks[i], i));
|
||||
TEST_ASSERT_EQUAL(pdPASS, xTaskCreatePinnedToCore(suspended_task, "susp", configMINIMAL_STACK_SIZE * 2, NULL, UNITY_FREERTOS_PRIORITY - 1, &suspended_tasks[i], i));
|
||||
TEST_ASSERT_EQUAL(pdPASS, xTaskCreatePinnedToCore(loop_task, "rdy", configMINIMAL_STACK_SIZE * 2, NULL, UNITY_FREERTOS_PRIORITY - 1, &ready_tasks[i], i));
|
||||
if (i == UNITY_FREERTOS_CPU) {
|
||||
running_tasks[i] = xTaskGetCurrentTaskHandle();
|
||||
} else {
|
||||
xTaskCreatePinnedToCore(loop_task, "run", configMINIMAL_STACK_SIZE, NULL, UNITY_FREERTOS_PRIORITY, &running_tasks[i], i);
|
||||
xTaskCreatePinnedToCore(loop_task, "run", configMINIMAL_STACK_SIZE * 2, NULL, UNITY_FREERTOS_PRIORITY, &running_tasks[i], i);
|
||||
}
|
||||
}
|
||||
|
@@ -27,8 +27,8 @@ Procedure:
|
||||
- For single core, run the test directly from the UnityTask
|
||||
- For SMP, run the test once on each core (using vTestOnAllCores())
|
||||
Expected:
|
||||
- The elapsed ticks should be TEST_VTASKDELAY_TICKS, with 1 tick of error allowed (in case ref clock functions last
|
||||
long enough to cross a tick boundary).
|
||||
- The elapsed ticks should be TEST_VTASKDELAY_TICKS, with 1 tick of error allowed (in case the delay and ref clock
|
||||
functions last long enough to cross a tick boundary).
|
||||
- The elapsed time should be equivalent to TEST_VTASKDELAY_TICKS tick periods, with 1 tick period of error allowed
|
||||
(in case ref clock functions last longer that a tick period).
|
||||
*/
|
||||
@@ -57,8 +57,8 @@ static void test_vTaskDelay(void *arg)
|
||||
tick_end = xTaskGetTickCount();
|
||||
ref_clock_end = portTEST_REF_CLOCK_GET_TIME();
|
||||
|
||||
/* Check that elapsed ticks and ref clock is accurate. We allow 1 tick of error in case vTaskDelay() was called
|
||||
* right before/after the tick boundary. */
|
||||
/* Check that elapsed ticks and ref clock is accurate. We allow 1 tick of error in case vTaskDelay() or
|
||||
* portTEST_REF_CLOCK_GET_TIME() last long enough to cross a tick boundary */
|
||||
#if ( configUSE_16_BIT_TICKS == 1 )
|
||||
TEST_ASSERT_UINT16_WITHIN(1, TEST_VTASKDELAY_TICKS, tick_end - tick_start);
|
||||
#else
|
||||
@@ -102,8 +102,8 @@ Procedure:
|
||||
- For single core, run the test directly from the UnityTask
|
||||
- For SMP, run the test once on each core (using vTestOnAllCores())
|
||||
Expected:
|
||||
- The elapsed ticks should be exactly TEST_VTASKDELAYUNTIL_TICKS since vTaskDelayUntil() is relative to the previous
|
||||
wake time
|
||||
- The elapsed ticks should be TEST_VTASKDELAYUNTIL_TICKS, with 1 tick of error allowed (in case the delay and ref
|
||||
clock functions last long enough to cross a tick boundary).
|
||||
- The elapsed time should be equivalent to TEST_VTASKDELAYUNTIL_TICKS tick periods, with 1 tick period of error
|
||||
allowed (in case ref clock functions last longer that a tick period).
|
||||
*/
|
||||
@@ -115,13 +115,13 @@ Expected:
|
||||
|
||||
static void test_vTaskDelayUntil(void *arg)
|
||||
{
|
||||
/* Delay until the next tick boundary */
|
||||
vTaskDelay(1);
|
||||
|
||||
for (int i = 0; i < TEST_VTASKDELAYUNTIL_ITERATIONS; i++) {
|
||||
TickType_t tick_start, tick_end, last_wake_tick;
|
||||
portTEST_REF_CLOCK_TYPE ref_clock_start, ref_clock_end;
|
||||
|
||||
/* Delay until the next tick boundary */
|
||||
vTaskDelay(1);
|
||||
|
||||
/* Get the current tick count and ref clock time */
|
||||
tick_start = xTaskGetTickCount();
|
||||
last_wake_tick = tick_start;
|
||||
@@ -133,10 +133,16 @@ static void test_vTaskDelayUntil(void *arg)
|
||||
tick_end = xTaskGetTickCount();
|
||||
ref_clock_end = portTEST_REF_CLOCK_GET_TIME();
|
||||
|
||||
/* Check that the elapsed ticks is accurate. Elapsed ticks should be exact as vTaskDelayUntil() executes a
|
||||
* delay relative to last_wake_tick. */
|
||||
TEST_ASSERT_EQUAL(TEST_VTASKDELAYUNTIL_TICKS, tick_end - tick_start);
|
||||
TEST_ASSERT_EQUAL(tick_end, last_wake_tick);
|
||||
|
||||
/* Check that elapsed ticks and ref clock is accurate. We allow 1 tick of error in case vTaskDelayUntil() or
|
||||
* portTEST_REF_CLOCK_GET_TIME() last long enough to cross a tick boundary */
|
||||
#if ( configUSE_16_BIT_TICKS == 1 )
|
||||
TEST_ASSERT_UINT16_WITHIN(1, TEST_VTASKDELAYUNTIL_TICKS, tick_end - tick_start);
|
||||
TEST_ASSERT_UINT16_WITHIN(1, tick_end, last_wake_tick);
|
||||
#else
|
||||
TEST_ASSERT_UINT32_WITHIN(1, TEST_VTASKDELAYUNTIL_TICKS, tick_end - tick_start);
|
||||
TEST_ASSERT_UINT32_WITHIN(1, tick_end, last_wake_tick);
|
||||
#endif
|
||||
|
||||
/* Check that the elapsed ref clock time is accurate. We allow 1 tick time worth of error to account for the
|
||||
* the execution time of the ref clock functions. */
|
@@ -80,7 +80,17 @@ TEST_CASE("Suspend/resume task on same core", "[freertos]")
|
||||
}
|
||||
|
||||
#ifndef CONFIG_FREERTOS_UNICORE
|
||||
TEST_CASE("Suspend/resume task on other core", "[freertos]")
|
||||
/*
|
||||
Note: This test is ignore for now due to a known issue (xKernelLock contention + task state change will lead to a race
|
||||
condition). More specifically:
|
||||
|
||||
- test_suspend_resume() suspends task_count() thus moving it to the suspended list
|
||||
- But task_count() is already contesting the xKernelLock.
|
||||
- Changes its own task list once it takes the xKernelLock
|
||||
- xKernelLock never receives the crosscore interrupt as it was contesting for xKernelLock
|
||||
Addressed in IDF-5844
|
||||
*/
|
||||
TEST_CASE("Suspend/resume task on other core", "[freertos][ignore]")
|
||||
{
|
||||
test_suspend_resume(!UNITY_FREERTOS_CPU);
|
||||
}
|
@@ -0,0 +1,2 @@
|
||||
idf_component_register(SRCS "test_freertos_main.c"
|
||||
PRIV_REQUIRES unity test_utils driver)
|
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include "freertos/FreeRTOS.h"
|
||||
#include "freertos/task.h"
|
||||
#include "unity.h"
|
||||
#include "unity_test_runner.h"
|
||||
#include "esp_heap_caps.h"
|
||||
#include "test_utils.h"
|
||||
|
||||
#define TEST_MEMORY_LEAK_THRESHOLD (-512)
|
||||
|
||||
static size_t before_free_8bit;
|
||||
static size_t before_free_32bit;
|
||||
|
||||
static void check_leak(size_t before_free, size_t after_free, const char *type)
|
||||
{
|
||||
ssize_t delta = after_free - before_free;
|
||||
printf("MALLOC_CAP_%s: Before %u bytes free, After %u bytes free (delta %d)\n", type, before_free, after_free, delta);
|
||||
TEST_ASSERT_MESSAGE(delta >= 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)
|
||||
{
|
||||
// Add a short delay of 10ms to allow the idle task to free an remaining memory
|
||||
vTaskDelay(pdMS_TO_TICKS(10));
|
||||
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)
|
||||
{
|
||||
/*
|
||||
Some FreeRTOS tests are reliant on the main task being at priority UNITY_FREERTOS_PRIORITY to test scheduling
|
||||
behavior. Thus, we raise the main task's priority before any tasks are run. See IDF-6088
|
||||
*/
|
||||
vTaskPrioritySet(NULL, UNITY_FREERTOS_PRIORITY);
|
||||
printf(" ______ _____ _______ ____ _____\n");
|
||||
printf("| ____| | __ \\__ __/ __ \\ / ____|\n");
|
||||
printf("| |__ _ __ ___ ___| |__) | | | | | | | (___\n");
|
||||
printf("| __| '__/ _ \\/ _ \\ _ / | | | | | |\\___ \\\n");
|
||||
printf("| | | | | __/ __/ | \\ \\ | | | |__| |____) |\n");
|
||||
printf("|_| |_| \\___|\\___|_| \\_\\ |_| \\____/|_____/\n");
|
||||
unity_run_menu();
|
||||
}
|
10
components/freertos/test_apps/freertos/misc/CMakeLists.txt
Normal file
10
components/freertos/test_apps/freertos/misc/CMakeLists.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
# Register all of the "misc" tests as a component
|
||||
|
||||
# In order for the cases defined by `TEST_CASE` in "misc" to be linked into
|
||||
# the final elf, the component can be registered as WHOLE_ARCHIVE
|
||||
idf_component_register(SRC_DIRS "."
|
||||
PRIV_REQUIRES test_utils
|
||||
WHOLE_ARCHIVE)
|
||||
|
||||
# Todo: Fix no-format errors
|
||||
target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format")
|
@@ -0,0 +1,10 @@
|
||||
# Register all of the "performance" tests as a component
|
||||
|
||||
# In order for the cases defined by `TEST_CASE` in "performance" to be linked into
|
||||
# the final elf, the component can be registered as WHOLE_ARCHIVE
|
||||
idf_component_register(SRC_DIRS "."
|
||||
PRIV_REQUIRES test_utils
|
||||
WHOLE_ARCHIVE)
|
||||
|
||||
# Todo: Fix no-format errors
|
||||
target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format")
|
10
components/freertos/test_apps/freertos/port/CMakeLists.txt
Normal file
10
components/freertos/test_apps/freertos/port/CMakeLists.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
# Register all of the "port" tests as a component
|
||||
|
||||
# In order for the cases defined by `TEST_CASE` in "port" to be linked into
|
||||
# the final elf, the component can be registered as WHOLE_ARCHIVE
|
||||
idf_component_register(SRC_DIRS "."
|
||||
PRIV_REQUIRES test_utils
|
||||
WHOLE_ARCHIVE)
|
||||
|
||||
# Todo: Fix no-format errors
|
||||
target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format")
|
22
components/freertos/test_apps/freertos/pytest_freertos.py
Normal file
22
components/freertos/test_apps/freertos/pytest_freertos.py
Normal file
@@ -0,0 +1,22 @@
|
||||
# SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import pytest
|
||||
from pytest_embedded import Dut
|
||||
|
||||
CONFIGS = [
|
||||
pytest.param('default', marks=[pytest.mark.supported_targets]),
|
||||
pytest.param('freertos_options', marks=[pytest.mark.supported_targets]),
|
||||
pytest.param('psram', marks=[pytest.mark.esp32]),
|
||||
pytest.param('release', marks=[pytest.mark.supported_targets]),
|
||||
pytest.param('single_core', marks=[pytest.mark.esp32]),
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.parametrize('config', CONFIGS, indirect=True)
|
||||
def test_freertos(dut: Dut) -> None:
|
||||
dut.expect_exact('Press ENTER to see the list of tests')
|
||||
dut.write('![ignore]')
|
||||
# All of the FreeRTOS tests combined take > 60s to run. So we use a 120s timeout
|
||||
dut.expect_unity_test_output(timeout=120)
|
@@ -0,0 +1 @@
|
||||
# This is left intentionally blank. It inherits all configurations from sdkconfg.defaults
|
@@ -1,8 +1,4 @@
|
||||
# This is a small set of tests where we enable as many as possible of the optional features
|
||||
# in FreeRTOS that are gated behind config
|
||||
|
||||
CONFIG_IDF_TARGET="esp32c3"
|
||||
TEST_COMPONENTS=freertos
|
||||
# Test configuration for enabling multiple optional FreeRTOS related features. Tested on all targets
|
||||
|
||||
CONFIG_FREERTOS_CORETIMER_1=y
|
||||
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=n
|
12
components/freertos/test_apps/freertos/sdkconfig.ci.psram
Normal file
12
components/freertos/test_apps/freertos/sdkconfig.ci.psram
Normal file
@@ -0,0 +1,12 @@
|
||||
# Test configuration for using FreeRTOS with PSRAM enabled. Only tested on the ESP32
|
||||
|
||||
CONFIG_IDF_TARGET="esp32"
|
||||
|
||||
# Enable SPIRAM
|
||||
CONFIG_SPIRAM=y
|
||||
CONFIG_SPIRAM_OCCUPY_NO_HOST=y
|
||||
|
||||
# Disable encrypted flash reads/writes to save IRAM in this build configuration
|
||||
CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=n
|
||||
CONFIG_SPIRAM_ALLOW_NOINIT_SEG_EXTERNAL_MEMORY=y
|
||||
CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY=y
|
@@ -0,0 +1,5 @@
|
||||
# Test configuration for a release build of FreeRTOS. Tested on all targets
|
||||
|
||||
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
|
||||
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
|
||||
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT=y
|
@@ -0,0 +1,4 @@
|
||||
# Test configuration for using FreeRTOS with under single core on a multicore target. Only tested on the ESP32
|
||||
|
||||
CONFIG_IDF_TARGET="esp32"
|
||||
CONFIG_FREERTOS_UNICORE=y
|
@@ -0,0 +1,8 @@
|
||||
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
|
||||
CONFIG_ESP_TASK_WDT=n
|
||||
CONFIG_FREERTOS_HZ=1000
|
||||
CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=3
|
||||
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=7
|
||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=3000
|
||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||
CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y
|
@@ -1,5 +1,5 @@
|
||||
# This config is split between targets since different component needs to be included (esp32, esp32s2)
|
||||
# IRAM is full... split some component to default_32_2
|
||||
CONFIG_IDF_TARGET="esp32"
|
||||
TEST_COMPONENTS=freertos esp_hw_support esp_ipc esp_system esp_timer driver
|
||||
TEST_COMPONENTS=esp_hw_support esp_ipc esp_system esp_timer driver
|
||||
CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD=y
|
||||
|
@@ -1,3 +1,3 @@
|
||||
# This config is split between targets since different component needs to be excluded (esp32, esp32s2)
|
||||
CONFIG_IDF_TARGET="esp32"
|
||||
TEST_EXCLUDE_COMPONENTS=bt freertos esp_hw_support esp_ipc esp_pm esp_system esp_timer driver soc spi_flash vfs test_utils experimental_cpp_component
|
||||
TEST_EXCLUDE_COMPONENTS=bt esp_hw_support esp_ipc esp_pm esp_system esp_timer driver soc spi_flash vfs test_utils experimental_cpp_component
|
||||
|
@@ -1,3 +1,3 @@
|
||||
# This config is split between targets since different component needs to be excluded
|
||||
CONFIG_IDF_TARGET="esp32c3"
|
||||
TEST_EXCLUDE_COMPONENTS=bt esp_pm freertos esp_hw_support esp_ipc esp_system esp_timer driver soc spi_flash vfs lwip spiffs experimental_cpp_component perfmon test_utils
|
||||
TEST_EXCLUDE_COMPONENTS=bt esp_pm esp_hw_support esp_ipc esp_system esp_timer driver soc spi_flash vfs lwip spiffs experimental_cpp_component perfmon test_utils
|
||||
|
@@ -1,3 +1,3 @@
|
||||
# This config is split between targets since different component needs to be excluded (esp32, esp32s2)
|
||||
CONFIG_IDF_TARGET="esp32s2"
|
||||
TEST_EXCLUDE_COMPONENTS=bt freertos esp_hw_support esp_ipc esp_pm esp_system esp_timer driver soc spi_flash vfs experimental_cpp_component
|
||||
TEST_EXCLUDE_COMPONENTS=bt esp_hw_support esp_ipc esp_pm esp_system esp_timer driver soc spi_flash vfs experimental_cpp_component
|
||||
|
@@ -1,3 +1,3 @@
|
||||
# This config is split between targets since different component needs to be excluded (esp32, esp32s2)
|
||||
CONFIG_IDF_TARGET="esp32s3"
|
||||
TEST_EXCLUDE_COMPONENTS=bt freertos esp32s3 esp_ipc esp_pm esp_system esp_timer driver soc spi_flash vfs experimental_cpp_component test_utils
|
||||
TEST_EXCLUDE_COMPONENTS=bt esp32s3 esp_ipc esp_pm esp_system esp_timer driver soc spi_flash vfs experimental_cpp_component test_utils
|
||||
|
@@ -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 efuse esp_common esp_eth esp_hid esp_netif esp_phy esp_ringbuf esp_wifi espcoredump hal lwip mdns mqtt newlib nvs_flash partition_table sdmmc freertos esp_hw_support esp_ipc esp_system esp_timer driver soc spi_flash vfs
|
||||
TEST_EXCLUDE_COMPONENTS=app_trace efuse esp_common esp_eth esp_hid esp_netif esp_phy esp_ringbuf esp_wifi espcoredump hal lwip mdns mqtt newlib nvs_flash partition_table sdmmc esp_hw_support esp_ipc esp_system esp_timer driver soc spi_flash vfs
|
||||
|
@@ -1,3 +1,3 @@
|
||||
# This config is split between targets since different component needs to be included
|
||||
CONFIG_IDF_TARGET="esp32c2"
|
||||
TEST_COMPONENTS=freertos esp_hw_support esp_ipc esp_system esp_timer driver soc spi_flash vfs
|
||||
TEST_COMPONENTS= esp_hw_support esp_ipc esp_system esp_timer driver soc spi_flash vfs
|
||||
|
@@ -1,3 +1,3 @@
|
||||
# This config is split between targets since different component needs to be included
|
||||
CONFIG_IDF_TARGET="esp32c3"
|
||||
TEST_COMPONENTS=freertos esp_hw_support esp_ipc esp_system esp_timer driver
|
||||
TEST_COMPONENTS=esp_hw_support esp_ipc esp_system esp_timer driver
|
||||
|
@@ -1,3 +1,3 @@
|
||||
# This config is split between targets since different component needs to be included (esp32, esp32s2)
|
||||
CONFIG_IDF_TARGET="esp32s2"
|
||||
TEST_COMPONENTS=freertos esp_hw_support esp_system esp_timer driver
|
||||
TEST_COMPONENTS=esp_hw_support esp_system esp_timer driver
|
||||
|
@@ -1,3 +1,3 @@
|
||||
# This config is split between targets since different component needs to be included
|
||||
CONFIG_IDF_TARGET="esp32s3"
|
||||
TEST_COMPONENTS=freertos esp_hw_support esp_ipc esp_system esp_timer driver soc spi_flash vfs
|
||||
TEST_COMPONENTS=esp_hw_support esp_ipc esp_system esp_timer driver soc spi_flash vfs
|
||||
|
@@ -1,2 +1,2 @@
|
||||
TEST_COMPONENTS=freertos driver spi_flash
|
||||
TEST_COMPONENTS=driver spi_flash
|
||||
CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y
|
||||
|
@@ -1,23 +0,0 @@
|
||||
# This is a small set of tests where we enable as many as possible of the optional features
|
||||
# in FreeRTOS that are gated behind config
|
||||
|
||||
CONFIG_IDF_TARGET="esp32"
|
||||
TEST_COMPONENTS=freertos
|
||||
|
||||
CONFIG_FREERTOS_CORETIMER_1=y
|
||||
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=n
|
||||
CONFIG_FREERTOS_HZ=500
|
||||
CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL=y
|
||||
CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y
|
||||
CONFIG_FREERTOS_INTERRUPT_BACKTRACE=n
|
||||
CONFIG_FREERTOS_LEGACY_HOOKS=y
|
||||
CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP=y
|
||||
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=10
|
||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||
CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
|
||||
CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=y
|
||||
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
|
||||
CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y
|
||||
CONFIG_FREERTOS_FPU_IN_ISR=y
|
||||
CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=16
|
||||
CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y
|
@@ -1,22 +0,0 @@
|
||||
# This is a small set of tests where we enable as many as possible of the optional features
|
||||
# in FreeRTOS that are gated behind config
|
||||
|
||||
CONFIG_IDF_TARGET="esp32c2"
|
||||
TEST_COMPONENTS=freertos
|
||||
|
||||
CONFIG_FREERTOS_CORETIMER_1=y
|
||||
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=n
|
||||
CONFIG_FREERTOS_HZ=500
|
||||
CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL=y
|
||||
CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y
|
||||
CONFIG_FREERTOS_INTERRUPT_BACKTRACE=n
|
||||
CONFIG_FREERTOS_LEGACY_HOOKS=y
|
||||
CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y
|
||||
CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP=y
|
||||
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=10
|
||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||
CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
|
||||
CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=y
|
||||
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
|
||||
CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y
|
||||
CONFIG_FREERTOS_FPU_IN_ISR=y
|
@@ -1,21 +0,0 @@
|
||||
# This is a small set of tests where we enable as many as possible of the optional features
|
||||
# in FreeRTOS that are gated behind config
|
||||
|
||||
CONFIG_IDF_TARGET="esp32s2"
|
||||
TEST_COMPONENTS=freertos
|
||||
|
||||
CONFIG_FREERTOS_CORETIMER_1=y
|
||||
CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=n
|
||||
CONFIG_FREERTOS_HZ=500
|
||||
CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL=y
|
||||
CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y
|
||||
CONFIG_FREERTOS_INTERRUPT_BACKTRACE=n
|
||||
CONFIG_FREERTOS_LEGACY_HOOKS=y
|
||||
CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP=y
|
||||
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=10
|
||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||
CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y
|
||||
CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=y
|
||||
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
|
||||
CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y
|
||||
CONFIG_FREERTOS_FPU_IN_ISR=y
|
@@ -1,5 +1,5 @@
|
||||
CONFIG_IDF_TARGET="esp32"
|
||||
TEST_EXCLUDE_COMPONENTS=bt driver esp_hw_support esp_ipc esp_pm esp_system esp_timer spi_flash test_utils soc experimental_cpp_component esp-tls freertos sdmmc
|
||||
TEST_EXCLUDE_COMPONENTS=bt driver esp_hw_support esp_ipc esp_pm esp_system esp_timer spi_flash test_utils soc experimental_cpp_component esp-tls sdmmc
|
||||
CONFIG_SPIRAM=y
|
||||
CONFIG_ESP_INT_WDT_TIMEOUT_MS=800
|
||||
CONFIG_SPIRAM_OCCUPY_NO_HOST=y
|
||||
|
@@ -1,5 +1,5 @@
|
||||
CONFIG_IDF_TARGET="esp32"
|
||||
TEST_COMPONENTS=driver freertos sdmmc
|
||||
TEST_COMPONENTS=driver sdmmc
|
||||
CONFIG_SPIRAM=y
|
||||
CONFIG_ESP_INT_WDT_TIMEOUT_MS=800
|
||||
CONFIG_SPIRAM_OCCUPY_NO_HOST=y
|
||||
|
@@ -1,5 +1,5 @@
|
||||
CONFIG_IDF_TARGET="esp32"
|
||||
TEST_COMPONENTS=freertos esp_hw_support esp_system esp_ipc esp_timer driver soc spi_flash vfs
|
||||
TEST_COMPONENTS=esp_hw_support esp_system esp_ipc esp_timer driver soc spi_flash vfs
|
||||
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
|
||||
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
|
||||
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT=y
|
||||
|
@@ -1,6 +1,6 @@
|
||||
# This config is split between targets since different component needs to be included (esp32, esp32s2)
|
||||
CONFIG_IDF_TARGET="esp32"
|
||||
TEST_EXCLUDE_COMPONENTS=bt freertos esp_hw_support esp_ipc esp_pm esp_system esp_timer driver soc spi_flash vfs test_utils experimental_cpp_component
|
||||
TEST_EXCLUDE_COMPONENTS=bt esp_hw_support esp_ipc esp_pm esp_system esp_timer driver soc spi_flash vfs test_utils experimental_cpp_component
|
||||
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
|
||||
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
|
||||
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT=y
|
||||
|
@@ -1,6 +1,6 @@
|
||||
# This config is split between targets since different component needs to be excluded (esp32, esp32s2)
|
||||
CONFIG_IDF_TARGET="esp32s2"
|
||||
TEST_EXCLUDE_COMPONENTS=bt freertos esp_hw_support esp_ipc esp_pm esp_system esp_timer driver soc spi_flash vfs test_utils experimental_cpp_component
|
||||
TEST_EXCLUDE_COMPONENTS=bt esp_hw_support esp_ipc esp_pm esp_system esp_timer driver soc spi_flash vfs test_utils experimental_cpp_component
|
||||
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
|
||||
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
|
||||
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT=y
|
||||
|
@@ -1,5 +1,5 @@
|
||||
CONFIG_IDF_TARGET="esp32c2"
|
||||
TEST_COMPONENTS=freertos esp_hw_support esp_system esp_ipc esp_timer driver soc spi_flash vfs sdmmc
|
||||
TEST_COMPONENTS=esp_hw_support esp_system esp_ipc esp_timer driver soc spi_flash vfs sdmmc
|
||||
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
|
||||
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT=y
|
||||
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
|
||||
|
@@ -1,5 +1,5 @@
|
||||
CONFIG_IDF_TARGET="esp32c3"
|
||||
TEST_COMPONENTS=freertos esp_hw_support esp_ipc esp_system esp_timer driver
|
||||
TEST_COMPONENTS=esp_hw_support esp_ipc esp_system esp_timer driver
|
||||
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
|
||||
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT=y
|
||||
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
|
||||
|
@@ -1,6 +1,6 @@
|
||||
# This config is split between targets since different component needs to be included (esp32, esp32s2)
|
||||
CONFIG_IDF_TARGET="esp32s2"
|
||||
TEST_COMPONENTS=freertos esp_hw_support esp_system esp_timer driver soc spi_flash vfs
|
||||
TEST_COMPONENTS=esp_hw_support esp_system esp_timer driver soc spi_flash vfs
|
||||
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
|
||||
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
|
||||
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT=y
|
||||
|
@@ -1,5 +1,5 @@
|
||||
CONFIG_IDF_TARGET="esp32s3"
|
||||
TEST_COMPONENTS=freertos esp_hw_support esp_system esp_ipc esp_timer driver soc spi_flash vfs
|
||||
TEST_COMPONENTS=esp_hw_support esp_system esp_ipc esp_timer driver soc spi_flash vfs
|
||||
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
|
||||
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
|
||||
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT=y
|
||||
|
@@ -1,6 +1,6 @@
|
||||
# This config is split between targets since different component needs to be included (esp32, esp32s2)
|
||||
CONFIG_IDF_TARGET="esp32"
|
||||
TEST_COMPONENTS=freertos esp_hw_support esp_system esp_timer driver soc spi_flash vfs
|
||||
TEST_COMPONENTS=esp_hw_support esp_system esp_timer driver soc spi_flash vfs
|
||||
CONFIG_MEMMAP_SMP=n
|
||||
CONFIG_FREERTOS_UNICORE=y
|
||||
CONFIG_ESP32_IRAM_AS_8BIT_ACCESSIBLE_MEMORY=y
|
||||
|
@@ -1,6 +1,6 @@
|
||||
# This config is split between targets since different component needs to be excluded (esp32, esp32s2)
|
||||
CONFIG_IDF_TARGET="esp32"
|
||||
TEST_EXCLUDE_COMPONENTS=bt freertos esp_hw_support esp_system esp_pm esp_ipc esp_timer driver soc spi_flash vfs test_utils experimental_cpp_component
|
||||
TEST_EXCLUDE_COMPONENTS=bt esp_hw_support esp_system esp_pm esp_ipc esp_timer driver soc spi_flash vfs test_utils experimental_cpp_component
|
||||
CONFIG_MEMMAP_SMP=n
|
||||
CONFIG_FREERTOS_UNICORE=y
|
||||
CONFIG_ESP32_RTCDATA_IN_FAST_MEM=y
|
||||
|
@@ -1,6 +1,6 @@
|
||||
# This config is split between targets since different component needs to be excluded (esp32, esp32s2)
|
||||
CONFIG_IDF_TARGET="esp32s2"
|
||||
TEST_EXCLUDE_COMPONENTS=bt freertos esp_hw_support esp_ipc esp_system esp_pm esp_timer driver soc spi_flash vfs experimental_cpp_component
|
||||
TEST_EXCLUDE_COMPONENTS=bt esp_hw_support esp_ipc esp_system esp_pm esp_timer driver soc spi_flash vfs experimental_cpp_component
|
||||
CONFIG_MEMMAP_SMP=n
|
||||
CONFIG_FREERTOS_UNICORE=y
|
||||
CONFIG_ESP32S2_RTCDATA_IN_FAST_MEM=y
|
||||
|
@@ -7,13 +7,10 @@ CONFIG_PARTITION_TABLE_FILENAME="partition_table_unit_test_app.csv"
|
||||
CONFIG_PARTITION_TABLE_OFFSET=0x8000
|
||||
CONFIG_FREERTOS_HZ=1000
|
||||
CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y
|
||||
CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=3
|
||||
CONFIG_FREERTOS_USE_TRACE_FACILITY=y
|
||||
CONFIG_HEAP_POISONING_COMPREHENSIVE=y
|
||||
CONFIG_SPI_FLASH_ENABLE_COUNTERS=y
|
||||
CONFIG_ESP_TASK_WDT_INIT=n
|
||||
CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS=y
|
||||
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=7
|
||||
CONFIG_COMPILER_STACK_CHECK_MODE_STRONG=y
|
||||
CONFIG_COMPILER_STACK_CHECK=y
|
||||
CONFIG_ESP_TIMER_PROFILING=y
|
||||
@@ -23,6 +20,5 @@ CONFIG_SPI_MASTER_IN_IRAM=y
|
||||
CONFIG_EFUSE_VIRTUAL=y
|
||||
CONFIG_SPIRAM_BANKSWITCH_ENABLE=n
|
||||
CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL=y
|
||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=3000
|
||||
CONFIG_MQTT_TEST_BROKER_URI="mqtt://${EXAMPLE_MQTT_BROKER_TCP}"
|
||||
CONFIG_NVS_ASSERT_ERROR_CHECK=y
|
||||
|
Reference in New Issue
Block a user