Merge branch 'ci/system_test_apps_optimize' into 'master'

ci: cleanup tools/system test apps

See merge request espressif/esp-idf!23886
This commit is contained in:
Marius Vikhammer 2023-06-01 13:32:00 +08:00
commit c60b79978d
24 changed files with 35 additions and 80 deletions

View File

@ -1610,7 +1610,6 @@ tools/templates/sample_component/include/main.h
tools/templates/sample_component/main.c tools/templates/sample_component/main.c
tools/test_apps/build_system/embed_test/main/test_main.c tools/test_apps/build_system/embed_test/main/test_main.c
tools/test_apps/build_system/ldalign_test/main/test_main.c tools/test_apps/build_system/ldalign_test/main/test_main.c
tools/test_apps/build_system/ldgen_test/check_placements.py
tools/test_apps/build_system/ldgen_test/main/src1.c tools/test_apps/build_system/ldgen_test/main/src1.c
tools/test_apps/build_system/ldgen_test/main/src2.c tools/test_apps/build_system/ldgen_test/main/src2.c
tools/test_apps/build_system/ldgen_test/main/test_main.c tools/test_apps/build_system/ldgen_test/main/test_main.c

View File

@ -5,11 +5,11 @@ tools/test_apps/build_system/custom_partition_subtypes:
- if: IDF_TARGET in ["esp32", "linux"] - if: IDF_TARGET in ["esp32", "linux"]
reason: the test should be run on ESP32 and linux reason: the test should be run on ESP32 and linux
tools/test_apps/build_system/ldgen_test: tools/test_apps/build_system/embed_test:
disable: enable:
- if: IDF_TARGET == "esp32c2" - if: IDF_TARGET in ["esp32", "esp32c3"]
temporary: true temporary: false
reason: target esp32c2 is not supported yet reason: Hardware independent feature, no need to test on all targets
tools/test_apps/linux_compatible/driver_mock: tools/test_apps/linux_compatible/driver_mock:
enable: enable:
@ -168,14 +168,6 @@ tools/test_apps/system/no_embedded_paths:
temporary: true temporary: true
reason: the other targets are not tested yet reason: the other targets are not tested yet
tools/test_apps/system/panic:
enable:
- if: INCLUDE_DEFAULT == 1
disable_test:
- if: IDF_TARGET not in ["esp32", "esp32s2", "esp32c3", "esp32s3", "esp32c2", "esp32c6", "esp32h2"]
temporary: true
reason: test app not ported to this target yet
tools/test_apps/system/ram_loadable_app: tools/test_apps/system/ram_loadable_app:
disable: disable:
- if: IDF_TARGET == "esp32h2" - if: IDF_TARGET == "esp32h2"
@ -183,8 +175,8 @@ tools/test_apps/system/ram_loadable_app:
reason: lack of runners reason: lack of runners
tools/test_apps/system/startup: tools/test_apps/system/startup:
enable: disable:
- if: INCLUDE_DEFAULT == 1 or IDF_TARGET in ["esp32c6"] # preview targets - if: CONFIG_NAME == "main_task_cpu1" and IDF_TARGET not in ["esp32", "esp32s3"]
tools/test_apps/system/test_watchpoint: tools/test_apps/system/test_watchpoint:
enable: enable:

View File

@ -1,2 +1,2 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C3 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | | ----------------- | ----- | -------- |

View File

@ -8,8 +8,12 @@ project(ldgen_test)
idf_build_get_property(python PYTHON) idf_build_get_property(python PYTHON)
idf_build_get_property(elf EXECUTABLE) idf_build_get_property(elf EXECUTABLE)
if(NOT CONFIG_SOC_RTC_MEM_SUPPORTED)
set(args "--no-rtc")
endif()
add_custom_command( add_custom_command(
TARGET ${elf} TARGET ${elf}
POST_BUILD POST_BUILD
COMMAND ${python} ${CMAKE_CURRENT_LIST_DIR}/check_placements.py ${CMAKE_OBJDUMP} $<TARGET_FILE:${elf}> COMMAND ${python} ${CMAKE_CURRENT_LIST_DIR}/check_placements.py ${args} ${CMAKE_OBJDUMP} $<TARGET_FILE:${elf}>
) )

View File

@ -1,5 +1,5 @@
| Supported Targets | ESP32 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 | | Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | | ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |
Runs a build test to check ldgen places libraries, objects and symbols Runs a build test to check ldgen places libraries, objects and symbols
correctly as specified in the linker fragments. Specifically, this app correctly as specified in the linker fragments. Specifically, this app

View File

@ -1,18 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
# #
# Copyright 2020 Espressif Systems (Shanghai) PTE LTD # SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD
# # SPDX-License-Identifier: Apache-2.0
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# #
# Check placements in this test app for main # Check placements in this test app for main
@ -27,6 +16,7 @@ argparser = argparse.ArgumentParser()
argparser.add_argument('objdump') argparser.add_argument('objdump')
argparser.add_argument('elf') argparser.add_argument('elf')
argparser.add_argument('--no-rtc', action='store_true')
args = argparser.parse_args() args = argparser.parse_args()
@ -68,7 +58,8 @@ assert sym1_end % 12 == 0, '_sym1_end is not aligned as specified in linker frag
print('check placement pass: _sym1_start < func1 < __sym1_end and alignments checked') print('check placement pass: _sym1_start < func1 < __sym1_end and alignments checked')
# src1:func2 (rtc) - explicit mapping for func2 using 'rtc' scheme # src1:func2 (rtc) - explicit mapping for func2 using 'rtc' scheme
check_location('func2', '.rtc.text') if not args.no_rtc:
check_location('func2', '.rtc.text')
# src1 (default) - only func3 in src1 remains that has not been # src1 (default) - only func3 in src1 remains that has not been
# mapped using a different scheme # mapped using a different scheme

View File

@ -1,6 +0,0 @@
# The following lines of boilerplate have to be in your project's
# CMakeLists in this exact order for cmake to work correctly
cmake_minimum_required(VERSION 3.16)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(rsource_test)

View File

@ -1,5 +0,0 @@
menu "RSOURCE test"
config RSOURCE_EXTRA_CONFIG
bool "rsource extra config"
default y
endmenu

View File

@ -1,2 +0,0 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-S2 | ESP32-S3 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- |

View File

@ -1 +0,0 @@
This project tests that use of rsource in Kconfig files. The main component will source a Kconfig file depending on the target (IDF_TARGET), which in turn will source a Kconfig file in the project directory -- all specified via relative paths.

View File

@ -1,6 +0,0 @@
idf_component_register(SRCS "test_main.c"
INCLUDE_DIRS ".")
if(NOT CONFIG_RSOURCE_EXTRA_CONFIG)
message(FATAL_ERROR "RSOURCE config not included")
endif()

View File

@ -1 +0,0 @@
rsource "port/$IDF_TARGET/Kconfig.port"

View File

@ -1 +0,0 @@
rsource "../../../Kconfig.extra"

View File

@ -1 +0,0 @@
rsource "../../../Kconfig.extra"

View File

@ -1 +0,0 @@
rsource "../../../Kconfig.extra"

View File

@ -1 +0,0 @@
rsource "../../../Kconfig.extra"

View File

@ -1 +0,0 @@
rsource "../../../Kconfig.extra"

View File

@ -1 +0,0 @@
rsource "../../../Kconfig.extra"

View File

@ -1 +0,0 @@
rsource "../../../Kconfig.extra"

View File

@ -1,3 +0,0 @@
void app_main(void)
{
}

View File

@ -1,22 +1,20 @@
# SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD # SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: CC0-1.0 # SPDX-License-Identifier: CC0-1.0
import pytest import pytest
from pytest_embedded import Dut from pytest_embedded import Dut
@pytest.mark.supported_targets
@pytest.mark.preview_targets
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize('config', [ @pytest.mark.parametrize('config', [
'default', pytest.param('flash_80m_qio', marks=[pytest.mark.supported_targets]),
'flash_80m_qio', pytest.param('no_vfs', marks=[pytest.mark.supported_targets]),
'no_vfs', pytest.param('no_vfs_partial', marks=[pytest.mark.supported_targets]),
'no_vfs_partial', pytest.param('opt_o0', marks=[pytest.mark.supported_targets]),
'opt_o0', pytest.param('opt_o2', marks=[pytest.mark.supported_targets]),
'opt_o2', pytest.param('stack_check_verbose_log', marks=[pytest.mark.supported_targets]),
'stack_check', pytest.param('sram1_iram', marks=[pytest.mark.esp32]),
'verbose_log', pytest.param('main_task_cpu1', marks=[pytest.mark.esp32, pytest.mark.esp32s3]),
], indirect=True) ], indirect=True)
def test_sys_startup(dut: Dut) -> None: def test_sys_startup(dut: Dut) -> None:
dut.expect_exact('app_main running') dut.expect_exact('app_main running')
@ -25,7 +23,9 @@ def test_sys_startup(dut: Dut) -> None:
@pytest.mark.esp32 @pytest.mark.esp32
@pytest.mark.esp32s3 @pytest.mark.esp32s3
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize('config', ['single_core_variant'], indirect=True) @pytest.mark.parametrize('config', [
'single_core_variant',
], indirect=True)
def test_sys_startup_single_core_variant(dut: Dut) -> None: def test_sys_startup_single_core_variant(dut: Dut) -> None:
dut.expect('Running on single core variant of a chip, but app is built with multi-core support.') dut.expect('Running on single core variant of a chip, but app is built with multi-core support.')
dut.expect(r'abort\(\) was called at PC [0-9xa-f]+ on core 0') dut.expect(r'abort\(\) was called at PC [0-9xa-f]+ on core 0')

View File

@ -1,2 +0,0 @@
CONFIG_COMPILER_STACK_CHECK_MODE_ALL=y
CONFIG_COMPILER_STACK_CHECK=y

View File

@ -1,3 +1,5 @@
CONFIG_COMPILER_STACK_CHECK_MODE_ALL=y
CONFIG_COMPILER_STACK_CHECK=y
CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE=y CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE=y
CONFIG_BOOTLOADER_LOG_LEVEL=5 CONFIG_BOOTLOADER_LOG_LEVEL=5
CONFIG_LOG_DEFAULT_LEVEL_VERBOSE=y CONFIG_LOG_DEFAULT_LEVEL_VERBOSE=y