Merge branch 'bugfix/storage_generic_pytests_v5.2' into 'release/v5.2'

fix(ci): Removed storage related entries in known generate test child pipeline warnings (v5.2)

See merge request espressif/esp-idf!36686
This commit is contained in:
Jiang Jiang Jian 2025-03-04 11:00:24 +08:00
commit 511423cd2e
12 changed files with 54 additions and 19 deletions

View File

@ -1,3 +1,9 @@
components/nvs_flash/host_test: components/nvs_flash/host_test:
enable: enable:
- if: IDF_TARGET == "linux" - if: IDF_TARGET == "linux"
components/nvs_flash/test_apps:
disable_test:
- if: IDF_TARGET not in ["esp32", "esp32c3"]
temporary: true
reason: NVS flash test on one Xtensa and one RISCV target is enough

View File

@ -3,24 +3,23 @@
# esp-idf NVS partition generation tool. Tool helps in generating NVS-compatible # esp-idf NVS partition generation tool. Tool helps in generating NVS-compatible
# partition binary, with key-value pair entries provided via a CSV file. # partition binary, with key-value pair entries provided via a CSV file.
# #
# SPDX-FileCopyrightText: 2018-2022 Espressif Systems (Shanghai) CO LTD # SPDX-FileCopyrightText: 2018-2025 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# #
import argparse import argparse
import array import array
import binascii import binascii
import codecs import codecs
import csv import csv
import datetime import datetime
import distutils.dir_util
import os import os
import random import random
import struct import struct
import sys import sys
import textwrap import textwrap
import zlib import zlib
from io import open
import distutils.dir_util
try: try:
from cryptography.hazmat.backends import default_backend from cryptography.hazmat.backends import default_backend
@ -891,7 +890,7 @@ def generate_key(args):
encr_key_bytes = e_key + t_key encr_key_bytes = e_key + t_key
key_len = len(encr_key_bytes) key_len = len(encr_key_bytes)
key = f"{int.from_bytes(encr_key_bytes, 'big'):x}" key = encr_key_bytes.hex()
keys_buf[0:key_len] = encr_key_bytes keys_buf[0:key_len] = encr_key_bytes
crc_data = keys_buf[0:key_len] crc_data = keys_buf[0:key_len]

View File

@ -10,7 +10,8 @@ CONFIGS_NVS_ENCR_FLASH_ENC = [
] ]
@pytest.mark.supported_targets @pytest.mark.esp32
@pytest.mark.esp32c3
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize('config', ['default'], indirect=True) @pytest.mark.parametrize('config', ['default'], indirect=True)
def test_nvs_flash(dut: IdfDut) -> None: def test_nvs_flash(dut: IdfDut) -> None:

View File

@ -0,0 +1,5 @@
components/vfs/test_apps:
disable_test:
- if: IDF_TARGET not in ["esp32", "esp32s3", "esp32c2", "esp32c3", "esp32c6", "esp32h2"]
temporary: true
reason: Only run VFS tests on a subset of targets

View File

@ -1,6 +1,5 @@
# SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD # SPDX-FileCopyrightText: 2023-2025 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
@ -18,7 +17,6 @@ def test_vfs_default(dut: Dut) -> None:
@pytest.mark.esp32 @pytest.mark.esp32
@pytest.mark.esp32s2
@pytest.mark.generic @pytest.mark.generic
@pytest.mark.parametrize('config', [ @pytest.mark.parametrize('config', [
'ccomp', 'ccomp',

View File

@ -7,3 +7,5 @@ CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
CONFIG_ESP_TASK_WDT_INIT=n CONFIG_ESP_TASK_WDT_INIT=n
CONFIG_VFS_MAX_COUNT=10

View File

@ -1,6 +1,5 @@
# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD # SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Unlicense OR CC0-1.0 # SPDX-License-Identifier: Unlicense OR CC0-1.0
import logging import logging
import random import random
import re import re
@ -13,6 +12,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32 @pytest.mark.esp32
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.generic
def test_examples_nvs_rw_blob(dut: Dut) -> None: def test_examples_nvs_rw_blob(dut: Dut) -> None:
def expect_start_msg(index: int) -> None: def expect_start_msg(index: int) -> None:
dut.expect('Restart counter = {}'.format(index), timeout=10) dut.expect('Restart counter = {}'.format(index), timeout=10)

View File

@ -1,6 +1,5 @@
# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD # SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Unlicense OR CC0-1.0 # SPDX-License-Identifier: Unlicense OR CC0-1.0
import logging import logging
from itertools import zip_longest from itertools import zip_longest
@ -10,11 +9,14 @@ from pytest_embedded import Dut
@pytest.mark.esp32 @pytest.mark.esp32
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.generic
def test_examples_nvs_rw_value(dut: Dut) -> None: def test_examples_nvs_rw_value(dut: Dut) -> None:
dut.serial.erase_flash()
dut.serial.flash()
for i, counter_state in zip_longest(range(4), ('The value is not initialized yet!',), fillvalue='Done'): for i, counter_state in zip_longest(range(4), ('The value is not initialized yet!',), fillvalue='Done'):
dut.expect('Opening Non-Volatile Storage \\(NVS\\) handle... Done', timeout=20) dut.expect('Opening Non-Volatile Storage \\(NVS\\) handle... Done', timeout=20)
dut.expect('Reading restart counter from NVS ... {}'.format(counter_state), timeout=20) dut.expect('Reading restart counter from NVS ... {}'.format(counter_state), timeout=20)
dut.expect('Restart counter = {}'.format(i) if i > 0 else '', timeout=20) dut.expect('Restart counter = {}'.format(i) if int(i) > 0 else '', timeout=20)
dut.expect('Updating restart counter in NVS ... Done', timeout=20) dut.expect('Updating restart counter in NVS ... Done', timeout=20)
dut.expect('Committing updates in NVS ... Done', timeout=20) dut.expect('Committing updates in NVS ... Done', timeout=20)
dut.expect('Restarting in 10 seconds...', timeout=20) dut.expect('Restarting in 10 seconds...', timeout=20)

View File

@ -1,6 +1,5 @@
# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD # SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Unlicense OR CC0-1.0 # SPDX-License-Identifier: Unlicense OR CC0-1.0
import logging import logging
from itertools import zip_longest from itertools import zip_longest
@ -10,11 +9,14 @@ from pytest_embedded import Dut
@pytest.mark.esp32 @pytest.mark.esp32
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.generic
def test_examples_nvs_rw_value_cxx(dut: Dut) -> None: def test_examples_nvs_rw_value_cxx(dut: Dut) -> None:
dut.serial.erase_flash()
dut.serial.flash()
for i, counter_state in zip_longest(range(4), ('The value is not initialized yet!',), fillvalue='Done'): for i, counter_state in zip_longest(range(4), ('The value is not initialized yet!',), fillvalue='Done'):
dut.expect('Opening Non-Volatile Storage \\(NVS\\) handle... Done', timeout=20) dut.expect('Opening Non-Volatile Storage \\(NVS\\) handle... Done', timeout=20)
dut.expect('Reading restart counter from NVS ... {}'.format(counter_state), timeout=20) dut.expect('Reading restart counter from NVS ... {}'.format(counter_state), timeout=20)
dut.expect('Restart counter = {}'.format(i) if i > 0 else '', timeout=20) dut.expect('Restart counter = {}'.format(i) if int(i) > 0 else '', timeout=20)
dut.expect('Updating restart counter in NVS ... Done', timeout=20) dut.expect('Updating restart counter in NVS ... Done', timeout=20)
dut.expect('Committing updates in NVS ... Done', timeout=20) dut.expect('Committing updates in NVS ... Done', timeout=20)
dut.expect('Restarting in 10 seconds...', timeout=20) dut.expect('Restarting in 10 seconds...', timeout=20)

View File

@ -105,7 +105,7 @@ void app_main(void)
ESP_LOGI(TAG, "file still exists"); ESP_LOGI(TAG, "file still exists");
return; return;
} else { } else {
ESP_LOGI(TAG, "file doesnt exist, format done"); ESP_LOGI(TAG, "file does not exist, format done");
} }
//Create file and write //Create file and write

View File

@ -1,7 +1,5 @@
# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD # SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Unlicense OR CC0-1.0 # SPDX-License-Identifier: Unlicense OR CC0-1.0
import re import re
import pytest import pytest
@ -10,6 +8,7 @@ from pytest_embedded import Dut
@pytest.mark.esp32 @pytest.mark.esp32
@pytest.mark.esp32c3 @pytest.mark.esp32c3
@pytest.mark.generic
def test_wear_levelling_example(dut: Dut) -> None: def test_wear_levelling_example(dut: Dut) -> None:
message_list = ('example: Mounting FAT filesystem', message_list = ('example: Mounting FAT filesystem',
@ -18,7 +17,7 @@ def test_wear_levelling_example(dut: Dut) -> None:
'example: Reading file', 'example: Reading file',
re.compile(str.encode('example: Read from file: \'hello world, from ESP-IDF \\S+\'')), re.compile(str.encode('example: Read from file: \'hello world, from ESP-IDF \\S+\'')),
re.compile(str.encode('vfs_fat_spiflash: Formatting FATFS partition, allocation unit size=\\S+')), re.compile(str.encode('vfs_fat_spiflash: Formatting FATFS partition, allocation unit size=\\S+')),
'example: file doesnt exist, format done', 'example: file does not exist, format done',
'example: Opening file', 'example: Opening file',
'example: File written', 'example: File written',
'example: Reading file', 'example: Reading file',

View File

@ -0,0 +1,21 @@
# This is the file that contains the known warnings for the generate_test_child_pipeline.py script.
# no_env_marker_test_cases: List of test cases that do not have environment markers.
# each item shall be the test node id, you may check the error message to get the node id.
no_env_marker_test_cases:
- dummy_test_case
# no_runner_tags: List of runner tags that has no test runner set.
# each item shall be a comma separated list of runner tags.
# NOTE:
# 1. for multi dut tests, the runner tag shall be <target>_<count>, e.g. esp32_2 instead of esp32,esp32
# 2. don't have spaces in the comma separated list.
no_runner_tags:
- esp32,ip101
- esp32c2,jtag,xtal_40mhz
- esp32c3,flash_multi
- esp32c3,sdcard_sdmode
- esp32c6,jtag
- esp32h2,jtag
- esp32p4,jtag
- esp32s2,usb_host_flash_disk