mirror of
https://github.com/espressif/esp-idf.git
synced 2026-04-27 11:03:11 +00:00
ci: rename eco tags to revision
This commit is contained in:
@@ -23,12 +23,7 @@
|
||||
- [Grammar](#grammar)
|
||||
- [Special Rules](#special-rules)
|
||||
- [Upload/Download Artifacts to Internal Minio Server](#uploaddownload-artifacts-to-internal-minio-server)
|
||||
- [Users Without Access to Minio](#users-without-access-to-minio)
|
||||
- [Users With Access to Minio](#users-with-access-to-minio)
|
||||
- [Env Vars for Minio](#env-vars-for-minio)
|
||||
- [Artifacts Types and File Patterns](#artifacts-types-and-file-patterns)
|
||||
- [Upload](#upload)
|
||||
- [Download](#download)
|
||||
- [Revision Marker Naming Rules](#revision-marker-naming-rules)
|
||||
|
||||
## General Workflow
|
||||
|
||||
@@ -256,3 +251,11 @@ In ESP-IDF CI, there's a few more special rules are additionally supported to di
|
||||
## Upload/Download Artifacts to Internal Minio Server
|
||||
|
||||
Please refer to the documentation [here](https://docs.espressif.com/projects/idf-ci/en/latest/guides/cli.html)
|
||||
|
||||
## Revision Marker Naming Rules
|
||||
|
||||
When specifying chip revisions for testing markers, configurations or filenames, strictly follow the format `esp32<series>_rev<number>` (or similarly `<series>_rev<number>` when brief).
|
||||
|
||||
> e.g., `esp32_rev3`, `esp32c2_rev2`, `esp32c3_rev1`, `esp32p4_rev1`, `esp32c5_rev1`
|
||||
|
||||
This convention replaces the legacy `eco` naming format (e.g., `esp32c2eco4`).
|
||||
|
||||
@@ -35,8 +35,8 @@ def test_adc_esp32c2_xtal_26mhz(dut: Dut) -> None:
|
||||
# TODO: IDF-15005
|
||||
# P4 REV2 adc
|
||||
# @pytest.mark.adc
|
||||
# @pytest.mark.esp32p4_eco4
|
||||
# @pytest.mark.parametrize('config', ['esp32p4_eco4'], indirect=True)
|
||||
# @pytest.mark.esp32p4_rev1
|
||||
# @pytest.mark.parametrize('config', ['esp32p4_rev1'], indirect=True)
|
||||
# @idf_parametrize(
|
||||
# 'target',
|
||||
# ['esp32p4'],
|
||||
|
||||
+6
-6
@@ -27,30 +27,30 @@ def test_external_coex_unit_test_esp32c2_xtal26m(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
|
||||
@pytest.mark.esp32c2eco4
|
||||
@pytest.mark.esp32c2_rev2
|
||||
@pytest.mark.xtal_26mhz
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.parametrize(
|
||||
'config, baud',
|
||||
[
|
||||
('esp32c2eco4_xtal26m', '74880'),
|
||||
('esp32c2_rev2_xtal26m', '74880'),
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c2'], indirect=['target'])
|
||||
def test_external_coex_unit_test_esp32c2eco4_xtal26m(dut: Dut) -> None:
|
||||
def test_external_coex_unit_test_esp32c2_rev2_xtal26m(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
|
||||
@pytest.mark.esp32c3eco7
|
||||
@pytest.mark.esp32c3_rev1
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.parametrize(
|
||||
'config',
|
||||
[
|
||||
'esp32c3eco7',
|
||||
'esp32c3_rev1',
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c3'], indirect=['target'])
|
||||
def test_external_coex_unit_test_esp32c3eco7(dut: Dut) -> None:
|
||||
def test_external_coex_unit_test_esp32c3_rev1(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
@@ -22,7 +22,7 @@ def test_gptimer(dut: Dut) -> None:
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.esp32c5_eco3
|
||||
@pytest.mark.esp32c5_rev1
|
||||
@pytest.mark.parametrize(
|
||||
'config',
|
||||
[
|
||||
@@ -31,7 +31,7 @@ def test_gptimer(dut: Dut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c5'], indirect=['target'])
|
||||
def test_gptimer_esp32c5_eco3(dut: Dut) -> None:
|
||||
def test_gptimer_esp32c5_rev1(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ def test_i2s_esp32c5(dut: Dut) -> None:
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.esp32c5_eco3
|
||||
@pytest.mark.esp32c5_rev1
|
||||
@pytest.mark.parametrize(
|
||||
'config',
|
||||
[
|
||||
@@ -54,7 +54,7 @@ def test_i2s_esp32c5(dut: Dut) -> None:
|
||||
['esp32c5'],
|
||||
indirect=['target'],
|
||||
)
|
||||
def test_i2s_esp32c5_eco3(dut: Dut) -> None:
|
||||
def test_i2s_esp32c5_rev1(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
|
||||
|
||||
@@ -22,11 +22,11 @@ def test_isp(dut: Dut) -> None:
|
||||
|
||||
# TODO: IDF-15006
|
||||
# @pytest.mark.generic
|
||||
# @pytest.mark.esp32p4_eco4
|
||||
# @pytest.mark.esp32p4_rev1
|
||||
# @pytest.mark.parametrize(
|
||||
# 'config',
|
||||
# [
|
||||
# ('esp32p4_eco4'),
|
||||
# ('esp32p4_rev1'),
|
||||
# ],
|
||||
# indirect=True,
|
||||
# )
|
||||
|
||||
@@ -37,7 +37,7 @@ def test_ledc_esp32c5(dut: IdfDut) -> None:
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.esp32c5_eco3
|
||||
@pytest.mark.esp32c5_rev1
|
||||
@pytest.mark.parametrize(
|
||||
'config',
|
||||
[
|
||||
@@ -46,7 +46,7 @@ def test_ledc_esp32c5(dut: IdfDut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c5'], indirect=['target'])
|
||||
def test_ledc_esp32c5_eco3(dut: IdfDut) -> None:
|
||||
def test_ledc_esp32c5_rev1(dut: IdfDut) -> None:
|
||||
dut.run_all_single_board_cases(reset=True)
|
||||
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ def test_mcpwm_esp32c5(dut: Dut) -> None:
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.esp32c5_eco3
|
||||
@pytest.mark.esp32c5_rev1
|
||||
@pytest.mark.parametrize(
|
||||
'config',
|
||||
[
|
||||
@@ -42,5 +42,5 @@ def test_mcpwm_esp32c5(dut: Dut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c5'], indirect=['target'])
|
||||
def test_mcpwm_esp32c5_eco3(dut: Dut) -> None:
|
||||
def test_mcpwm_esp32c5_rev1(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
@@ -55,7 +55,7 @@ def test_parlio_esp32c5(dut: Dut) -> None:
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.esp32c5_eco3
|
||||
@pytest.mark.esp32c5_rev1
|
||||
@pytest.mark.parametrize(
|
||||
'config',
|
||||
[
|
||||
@@ -64,5 +64,5 @@ def test_parlio_esp32c5(dut: Dut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c5'], indirect=['target'])
|
||||
def test_parlio_esp32c5_eco3(dut: Dut) -> None:
|
||||
def test_parlio_esp32c5_rev1(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
@@ -20,16 +20,16 @@ def test_ppa(dut: Dut) -> None:
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.eco4
|
||||
@pytest.mark.esp32p4_rev1
|
||||
@pytest.mark.parametrize(
|
||||
'config',
|
||||
[
|
||||
('esp32p4_eco4'),
|
||||
('esp32p4_rev1'),
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32p4'], indirect=['target'])
|
||||
def test_ppa_esp32p4_eco4(dut: Dut) -> None:
|
||||
def test_ppa_esp32p4_rev1(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ def test_rmt_esp32c5(dut: Dut) -> None:
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.esp32c5_eco3
|
||||
@pytest.mark.esp32c5_rev1
|
||||
@pytest.mark.parametrize(
|
||||
'config',
|
||||
[
|
||||
@@ -66,7 +66,7 @@ def test_rmt_esp32c5(dut: Dut) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c5'], indirect=['target'])
|
||||
def test_rmt_esp32c5_eco3(dut: Dut) -> None:
|
||||
def test_rmt_esp32c5_rev1(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
|
||||
|
||||
@@ -30,8 +30,8 @@ def test_sdm_esp32c5(dut: IdfDut) -> None:
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.esp32c5_eco3
|
||||
@pytest.mark.esp32c5_rev1
|
||||
@pytest.mark.parametrize('config', ['release'], indirect=True)
|
||||
@idf_parametrize('target', ['esp32c5'], indirect=['target'])
|
||||
def test_sdm_esp32c5_eco3(dut: IdfDut) -> None:
|
||||
def test_sdm_esp32c5_rev1(dut: IdfDut) -> None:
|
||||
dut.run_all_single_board_cases(group='sdm')
|
||||
|
||||
@@ -41,7 +41,7 @@ def test_master_single_dev_esp32c5(case_tester) -> None: # type: ignore
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.esp32c5_eco3
|
||||
@pytest.mark.esp32c5_rev1
|
||||
@pytest.mark.parametrize(
|
||||
'config',
|
||||
[
|
||||
@@ -50,7 +50,7 @@ def test_master_single_dev_esp32c5(case_tester) -> None: # type: ignore
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c5'], indirect=['target'])
|
||||
def test_master_single_dev_esp32c5_eco3(case_tester) -> None: # type: ignore
|
||||
def test_master_single_dev_esp32c5_rev1(case_tester) -> None: # type: ignore
|
||||
for case in case_tester.test_menu:
|
||||
if 'test_env' in case.attributes:
|
||||
continue # If `test_env` is defined, should not run on generic runner
|
||||
|
||||
@@ -22,10 +22,10 @@ def test_slave_single_dev_esp32c5(case_tester) -> None: # type: ignore
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.esp32c5_eco3
|
||||
@pytest.mark.esp32c5_rev1
|
||||
@pytest.mark.parametrize('config', ['release'], indirect=True)
|
||||
@idf_parametrize('target', ['esp32c5'], indirect=['target'])
|
||||
def test_slave_single_dev_esp32c5_eco3(case_tester) -> None: # type: ignore
|
||||
def test_slave_single_dev_esp32c5_rev1(case_tester) -> None: # type: ignore
|
||||
case_tester.run_all_normal_cases(reset=True)
|
||||
|
||||
|
||||
|
||||
@@ -18,10 +18,10 @@ def test_slave_hd_single_dev(case_tester) -> None: # type: ignore
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.esp32c5_eco3
|
||||
@pytest.mark.esp32c5_rev1
|
||||
@pytest.mark.parametrize('config', ['release'], indirect=True)
|
||||
@idf_parametrize('target', ['esp32c5'], indirect=['target'])
|
||||
def test_slave_hd_single_dev_esp32c5_eco3(case_tester) -> None: # type: ignore
|
||||
def test_slave_hd_single_dev_esp32c5_rev1(case_tester) -> None: # type: ignore
|
||||
case_tester.run_all_normal_cases(reset=True, timeout=180)
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -24,7 +24,7 @@ def test_temperature_sensor_driver(dut: Dut) -> None:
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.esp32c5_eco3
|
||||
@pytest.mark.esp32c5_rev1
|
||||
@pytest.mark.parametrize(
|
||||
'config',
|
||||
[
|
||||
@@ -37,7 +37,7 @@ def test_temperature_sensor_driver(dut: Dut) -> None:
|
||||
['esp32c5'],
|
||||
indirect=['target'],
|
||||
)
|
||||
def test_temperature_sensor_driver_esp32c5_eco3(dut: Dut) -> None:
|
||||
def test_temperature_sensor_driver_esp32c5_rev1(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
|
||||
|
||||
@@ -25,10 +25,10 @@ def test_driver_twai_loopbk(dut: Dut) -> None:
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.esp32c5_eco3
|
||||
@pytest.mark.esp32c5_rev1
|
||||
@pytest.mark.parametrize('config', ['release', 'cache_safe'], indirect=True)
|
||||
@idf_parametrize('target', ['esp32c5'], indirect=['target'])
|
||||
def test_driver_twai_loopbk_c5eco3(dut: Dut) -> None:
|
||||
def test_driver_twai_loopbk_c5rev1(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases(group='twai', reset=True)
|
||||
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ class EthTestIntf:
|
||||
def configure_eth_if(self, eth_type: int = 0) -> Iterator[socket.socket]:
|
||||
if eth_type == 0:
|
||||
eth_type = self.eth_type
|
||||
so = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(eth_type))
|
||||
so = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(eth_type)) # type: ignore
|
||||
so.bind((self.target_if, 0))
|
||||
try:
|
||||
yield so
|
||||
@@ -306,7 +306,7 @@ def test_esp32_emac_clko(dut: IdfDut) -> None:
|
||||
'config, target',
|
||||
[
|
||||
pytest.param('default_generic_esp32p4', 'esp32p4', marks=[pytest.mark.eth_ip101]),
|
||||
pytest.param('default_generic_esp32p4v1', 'esp32p4', marks=[pytest.mark.eth_ip101, pytest.mark.esp32p4_eco4]),
|
||||
pytest.param('default_generic_esp32p4v1', 'esp32p4', marks=[pytest.mark.eth_ip101, pytest.mark.esp32p4_rev1]),
|
||||
],
|
||||
indirect=['target'],
|
||||
)
|
||||
@@ -320,7 +320,7 @@ def test_esp32p4_ethernet(dut: IdfDut) -> None:
|
||||
'config, target',
|
||||
[
|
||||
pytest.param('default_generic_esp32p4', 'esp32p4', marks=[pytest.mark.eth_ip101]),
|
||||
pytest.param('default_generic_esp32p4v1', 'esp32p4', marks=[pytest.mark.eth_ip101, pytest.mark.esp32p4_eco4]),
|
||||
pytest.param('default_generic_esp32p4v1', 'esp32p4', marks=[pytest.mark.eth_ip101, pytest.mark.esp32p4_rev1]),
|
||||
],
|
||||
indirect=['target'],
|
||||
)
|
||||
@@ -334,7 +334,7 @@ def test_esp32p4_emac(dut: IdfDut) -> None:
|
||||
'config, target',
|
||||
[
|
||||
pytest.param('rmii_clko_esp32p4', 'esp32p4', marks=[pytest.mark.eth_ip101]),
|
||||
pytest.param('rmii_clko_esp32p4v1', 'esp32p4', marks=[pytest.mark.eth_ip101, pytest.mark.esp32p4_eco4]),
|
||||
pytest.param('rmii_clko_esp32p4v1', 'esp32p4', marks=[pytest.mark.eth_ip101, pytest.mark.esp32p4_rev1]),
|
||||
],
|
||||
indirect=['target'],
|
||||
)
|
||||
|
||||
+2
-2
@@ -32,11 +32,11 @@ def test_esp_hw_support_esp32c5(dut: Dut) -> None:
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.esp32c5_eco3
|
||||
@pytest.mark.esp32c5_rev1
|
||||
@idf_parametrize(
|
||||
'config,target',
|
||||
[('release', 'esp32c5')],
|
||||
indirect=['config', 'target'],
|
||||
)
|
||||
def test_esp_hw_support_esp32c5_eco3(dut: Dut) -> None:
|
||||
def test_esp_hw_support_esp32c5_rev1(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases(timeout=180)
|
||||
|
||||
@@ -44,15 +44,15 @@ def test_dsi_lcd_with_virt_flash_enc(dut: Dut) -> None:
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.eco4
|
||||
@pytest.mark.esp32p4_rev1
|
||||
@pytest.mark.parametrize(
|
||||
'config',
|
||||
[
|
||||
('esp32p4_eco4'),
|
||||
('esp32p4_rev1'),
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32p4'], indirect=['target'])
|
||||
@pytest.mark.temp_skip_ci(targets=['esp32p4'], reason='no runner')
|
||||
def test_dsi_lcd_esp32p4_eco4(dut: Dut) -> None:
|
||||
def test_dsi_lcd_esp32p4_rev1(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
@@ -6,7 +6,7 @@ from pytest_embedded_idf.utils import idf_parametrize
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.eco5
|
||||
@pytest.mark.esp32h2_rev1_2
|
||||
@idf_parametrize('target', ['esp32h2'], indirect=['target'])
|
||||
def test_phy(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
+3
-3
@@ -60,7 +60,7 @@ def esp_reset_and_wait_ready_esp32c5(dut: Dut) -> None:
|
||||
|
||||
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.esp32c5_eco3
|
||||
@pytest.mark.esp32c5_rev1
|
||||
@idf_parametrize(
|
||||
'config',
|
||||
[
|
||||
@@ -70,11 +70,11 @@ def esp_reset_and_wait_ready_esp32c5(dut: Dut) -> None:
|
||||
indirect=['config'],
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c5'], indirect=['target'])
|
||||
def test_esp_system_esp32c5_eco3(dut: Dut) -> None:
|
||||
def test_esp_system_esp32c5_rev1(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases(timeout=60)
|
||||
|
||||
|
||||
def esp_reset_and_wait_ready_esp32c5_eco3(dut: Dut) -> None:
|
||||
def esp_reset_and_wait_ready_esp32c5_rev1(dut: Dut) -> None:
|
||||
dut.serial.hard_reset()
|
||||
time.sleep(0.5)
|
||||
dut.expect_exact('Press ENTER to see the list of tests')
|
||||
|
||||
@@ -28,30 +28,30 @@ def test_wifi_connect_cases_esp32c2_xtal26m(case_tester: CaseTester) -> None:
|
||||
case_tester.run_all_cases()
|
||||
|
||||
|
||||
@pytest.mark.esp32c2eco4
|
||||
@pytest.mark.esp32c2_rev2
|
||||
@pytest.mark.two_duts
|
||||
@pytest.mark.xtal_26mhz
|
||||
@pytest.mark.parametrize(
|
||||
'count, config, baud',
|
||||
[
|
||||
(2, 'esp32c2eco4_xtal26m', '74880'),
|
||||
(2, 'esp32c2_rev2_xtal26m', '74880'),
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c2'], indirect=['target'])
|
||||
def test_wifi_connect_cases_esp32c2eco4_xtal26m(case_tester: CaseTester) -> None:
|
||||
def test_wifi_connect_cases_esp32c2_rev2_xtal26m(case_tester: CaseTester) -> None:
|
||||
case_tester.run_all_cases()
|
||||
|
||||
|
||||
@pytest.mark.two_duts
|
||||
@pytest.mark.esp32c3eco7
|
||||
@pytest.mark.esp32c3_rev1
|
||||
@pytest.mark.parametrize(
|
||||
'count, config',
|
||||
[
|
||||
(2, 'esp32c3eco7'),
|
||||
(2, 'esp32c3_rev1'),
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c3'], indirect=['target'])
|
||||
def test_wifi_connect_cases_esp32c3eco7(case_tester: CaseTester) -> None:
|
||||
def test_wifi_connect_cases_esp32c3_rev1(case_tester: CaseTester) -> None:
|
||||
case_tester.run_all_cases()
|
||||
|
||||
@@ -27,30 +27,30 @@ def test_wifi_unit_test_esp32c2_xtal26m(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
|
||||
@pytest.mark.esp32c2eco4
|
||||
@pytest.mark.esp32c2_rev2
|
||||
@pytest.mark.xtal_26mhz
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.parametrize(
|
||||
'config, baud',
|
||||
[
|
||||
('esp32c2eco4_xtal26m', '74880'),
|
||||
('esp32c2_rev2_xtal26m', '74880'),
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c2'], indirect=['target'])
|
||||
def test_wifi_unit_test_esp32c2eco4_xtal26m(dut: Dut) -> None:
|
||||
def test_wifi_unit_test_esp32c2_rev2_xtal26m(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
|
||||
@pytest.mark.esp32c3eco7
|
||||
@pytest.mark.esp32c3_rev1
|
||||
@pytest.mark.generic
|
||||
@pytest.mark.parametrize(
|
||||
'config',
|
||||
[
|
||||
'esp32c3eco7',
|
||||
'esp32c3_rev1',
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c3'], indirect=['target'])
|
||||
def test_wifi_unit_test_esp32c3eco7(dut: Dut) -> None:
|
||||
def test_wifi_unit_test_esp32c3_rev1(dut: Dut) -> None:
|
||||
dut.run_all_single_board_cases()
|
||||
|
||||
@@ -55,40 +55,40 @@ def test_wpa_supplicant_ut_psram(case_tester: CaseTester) -> None:
|
||||
|
||||
|
||||
@pytest.mark.two_duts
|
||||
@pytest.mark.esp32c2eco4
|
||||
@pytest.mark.esp32c2_rev2
|
||||
@pytest.mark.xtal_26mhz
|
||||
@pytest.mark.parametrize(
|
||||
'count, config, baud',
|
||||
[
|
||||
(
|
||||
2,
|
||||
'esp32c2eco4_xtal26m',
|
||||
'esp32c2_rev2_xtal26m',
|
||||
'74880',
|
||||
),
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c2'], indirect=['target'])
|
||||
def test_wpa_supplicant_esp32c2eco4_xtal26mhz(case_tester: CaseTester) -> None:
|
||||
def test_wpa_supplicant_esp32c2_rev2_xtal26mhz(case_tester: CaseTester) -> None:
|
||||
for case in case_tester.test_menu:
|
||||
if case.attributes.get('test_env') == 'two_duts':
|
||||
case_tester.run_multi_dev_case(case=case, reset=True)
|
||||
|
||||
|
||||
@pytest.mark.two_duts
|
||||
@pytest.mark.esp32c3eco7
|
||||
@pytest.mark.esp32c3_rev1
|
||||
@pytest.mark.parametrize(
|
||||
'count, config',
|
||||
[
|
||||
(
|
||||
2,
|
||||
'esp32c3eco7',
|
||||
'esp32c3_rev1',
|
||||
),
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c3'], indirect=['target'])
|
||||
def test_wpa_supplicant_esp32c3eco7(case_tester: CaseTester) -> None:
|
||||
def test_wpa_supplicant_esp32c3_rev1(case_tester: CaseTester) -> None:
|
||||
for case in case_tester.test_menu:
|
||||
if case.attributes.get('test_env') == 'two_duts':
|
||||
case_tester.run_multi_dev_case(case=case, reset=True)
|
||||
|
||||
@@ -72,12 +72,12 @@ def test_power_save_conn_esp32c2_26mhz(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
# Case 2: BLE power save test for ESP32C2ECO4
|
||||
@pytest.mark.two_duts
|
||||
@pytest.mark.xtal_26mhz
|
||||
@pytest.mark.esp32c2eco4
|
||||
@pytest.mark.esp32c2_rev2
|
||||
@pytest.mark.parametrize(
|
||||
'config, count, app_path, baud',
|
||||
[
|
||||
(
|
||||
'esp32c2eco4_xtal26m',
|
||||
'esp32c2_rev2_xtal26m',
|
||||
2,
|
||||
f'{str(CUR_DIR / "power_save")}|{str(CUR_DIR / "blecent")}',
|
||||
'74880',
|
||||
@@ -86,7 +86,7 @@ def test_power_save_conn_esp32c2_26mhz(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c2'], indirect=['target'])
|
||||
def test_power_save_conn_esp32c2eco4(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
def test_power_save_conn_esp32c2_rev2(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
peripheral = dut[0]
|
||||
central = dut[1]
|
||||
|
||||
@@ -102,12 +102,12 @@ def test_power_save_conn_esp32c2eco4(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
|
||||
# Case 2: BLE power save test for ESP32C3ECO7
|
||||
@pytest.mark.two_duts
|
||||
@pytest.mark.esp32c3eco7
|
||||
@pytest.mark.esp32c3_rev1
|
||||
@pytest.mark.parametrize(
|
||||
'config, count, app_path',
|
||||
[
|
||||
(
|
||||
'esp32c3eco7',
|
||||
'esp32c3_rev1',
|
||||
2,
|
||||
f'{str(CUR_DIR / "power_save")}|{str(CUR_DIR / "blecent")}',
|
||||
),
|
||||
@@ -115,7 +115,7 @@ def test_power_save_conn_esp32c2eco4(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c3'], indirect=['target'])
|
||||
def test_power_save_conn_esp32c3eco7(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
def test_power_save_conn_esp32c3_rev1(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
peripheral = dut[0]
|
||||
central = dut[1]
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ from pytest_embedded import Dut
|
||||
pytest.param('defaults', 'esp32', marks=[pytest.mark.eth_ip101]),
|
||||
pytest.param('lan8720_esp32', 'esp32', marks=[pytest.mark.eth_lan8720]),
|
||||
pytest.param('defaults_esp32p4', 'esp32p4', marks=[pytest.mark.eth_ip101]),
|
||||
pytest.param('defaults_esp32p4v1', 'esp32p4', marks=[pytest.mark.eth_ip101, pytest.mark.esp32p4_eco4]),
|
||||
pytest.param('defaults_esp32p4v1', 'esp32p4', marks=[pytest.mark.eth_ip101, pytest.mark.esp32p4_rev1]),
|
||||
],
|
||||
indirect=['target'],
|
||||
)
|
||||
|
||||
@@ -154,7 +154,7 @@ def test_esp_eth_iperf_ip101(
|
||||
'config, target',
|
||||
[
|
||||
pytest.param('default_ip101_esp32p4', 'esp32p4', marks=[pytest.mark.eth_ip101]),
|
||||
pytest.param('default_ip101_esp32p4v1', 'esp32p4', marks=[pytest.mark.eth_ip101, pytest.mark.esp32p4_eco4]),
|
||||
pytest.param('default_ip101_esp32p4v1', 'esp32p4', marks=[pytest.mark.eth_ip101, pytest.mark.esp32p4_rev1]),
|
||||
],
|
||||
indirect=['target'],
|
||||
)
|
||||
|
||||
@@ -400,7 +400,7 @@ def test_examples_efuse_with_virt_secure_boot_v1_pre_loaded(dut: Dut) -> None:
|
||||
dut.expect('example: Done')
|
||||
|
||||
|
||||
@pytest.mark.esp32eco3
|
||||
@pytest.mark.esp32_rev3
|
||||
@pytest.mark.parametrize(
|
||||
'config',
|
||||
[
|
||||
@@ -520,7 +520,7 @@ def test_examples_efuse_with_virt_secure_boot_v2(dut: Dut) -> None:
|
||||
dut.expect('example: Done')
|
||||
|
||||
|
||||
@pytest.mark.esp32eco3
|
||||
@pytest.mark.esp32_rev3
|
||||
@pytest.mark.parametrize(
|
||||
'config',
|
||||
[
|
||||
@@ -823,7 +823,7 @@ def test_examples_efuse_with_virt_sb_v1_and_fe(dut: Dut) -> None:
|
||||
dut.expect('example: Done')
|
||||
|
||||
|
||||
@pytest.mark.esp32eco3
|
||||
@pytest.mark.esp32_rev3
|
||||
@pytest.mark.parametrize(
|
||||
'config',
|
||||
[
|
||||
@@ -923,7 +923,7 @@ def test_examples_efuse_with_virt_sb_v2_and_fe(dut: Dut) -> None:
|
||||
@pytest.mark.parametrize(
|
||||
'qemu_extra_args',
|
||||
[
|
||||
f'-drive file={os.path.join(os.path.dirname(__file__), "test", "esp32eco3_efuses.bin")},'
|
||||
f'-drive file={os.path.join(os.path.dirname(__file__), "test", "esp32_rev3_efuses.bin")},'
|
||||
'if=none,format=raw,id=efuse '
|
||||
'-global driver=nvram.esp32.efuse,property=drive,value=efuse '
|
||||
'-global driver=timer.esp32.timg,property=wdt_disable,value=true',
|
||||
@@ -994,11 +994,11 @@ def test_examples_efuse_with_virt_sb_v2_and_fe_qemu(dut: QemuDut) -> None:
|
||||
|
||||
finally:
|
||||
# the above example test burns the efuses, and hence the efuses file which the
|
||||
# qemu uses to emulate the efuses, "test/esp32eco3_efuses.bin", gets modified.
|
||||
# qemu uses to emulate the efuses, "test/esp32_rev3_efuses.bin", gets modified.
|
||||
# Thus, restore the efuses file values back to the default ESP32-ECO3 efuses values.
|
||||
with open(os.path.join(os.path.dirname(__file__), 'test', 'esp32eco3_efuses.bin'), 'wb') as efuse_file:
|
||||
esp32eco3_efuses = '0' * 26 + '8' + '0' * 17 + '1' + '0' * 203
|
||||
efuse_file.write(bytearray.fromhex(esp32eco3_efuses))
|
||||
with open(os.path.join(os.path.dirname(__file__), 'test', 'esp32_rev3_efuses.bin'), 'wb') as efuse_file:
|
||||
esp32_rev3_efuses = '0' * 26 + '8' + '0' * 17 + '1' + '0' * 203
|
||||
efuse_file.write(bytearray.fromhex(esp32_rev3_efuses))
|
||||
|
||||
|
||||
def example_efuse_with_virt_sb_v2_and_fe(dut: Dut) -> None:
|
||||
|
||||
@@ -84,13 +84,13 @@ def test_wifi_getting_started_esp32c2_xtal_26mhz(dut: tuple[IdfDut, IdfDut]) ->
|
||||
|
||||
@pytest.mark.two_duts
|
||||
@pytest.mark.xtal_26mhz
|
||||
@pytest.mark.esp32c2eco4
|
||||
@pytest.mark.esp32c2_rev2
|
||||
@pytest.mark.parametrize(
|
||||
'count, config, baud, app_path',
|
||||
[
|
||||
(
|
||||
2,
|
||||
'esp32c2eco4_xtal26m',
|
||||
'esp32c2_rev2_xtal26m',
|
||||
'74880',
|
||||
f'{os.path.join(os.path.dirname(__file__), "softAP")}|{os.path.join(os.path.dirname(__file__), "station")}',
|
||||
),
|
||||
@@ -98,7 +98,7 @@ def test_wifi_getting_started_esp32c2_xtal_26mhz(dut: tuple[IdfDut, IdfDut]) ->
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c2'], indirect=['target'])
|
||||
def test_wifi_getting_started_esp32c2eco4_xtal_26mhz(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
def test_wifi_getting_started_esp32c2_rev2_xtal_26mhz(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
softap = dut[0]
|
||||
station = dut[1]
|
||||
|
||||
@@ -115,20 +115,20 @@ def test_wifi_getting_started_esp32c2eco4_xtal_26mhz(dut: tuple[IdfDut, IdfDut])
|
||||
|
||||
|
||||
@pytest.mark.two_duts
|
||||
@pytest.mark.esp32c3eco7
|
||||
@pytest.mark.esp32c3_rev1
|
||||
@pytest.mark.parametrize(
|
||||
'count, config, app_path',
|
||||
[
|
||||
(
|
||||
2,
|
||||
'c3eco7',
|
||||
'esp32c3_rev1',
|
||||
f'{os.path.join(os.path.dirname(__file__), "softAP")}|{os.path.join(os.path.dirname(__file__), "station")}',
|
||||
),
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c3'], indirect=['target'])
|
||||
def test_wifi_getting_started_esp32c3eco7(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
def test_wifi_getting_started_esp32c3_rev1(dut: tuple[IdfDut, IdfDut]) -> None:
|
||||
softap = dut[0]
|
||||
station = dut[1]
|
||||
|
||||
|
||||
@@ -80,28 +80,28 @@ def test_wifi_power_save_esp32c2_26mhz(dut: Dut) -> None:
|
||||
|
||||
@pytest.mark.wifi_ap
|
||||
@pytest.mark.xtal_26mhz
|
||||
@pytest.mark.esp32c2eco4
|
||||
@pytest.mark.esp32c2_rev2
|
||||
@pytest.mark.parametrize(
|
||||
'config, baud',
|
||||
[
|
||||
('c2eco4_xtal26m', '74880'),
|
||||
('esp32c2_rev2_xtal26m', '74880'),
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c2'], indirect=['target'])
|
||||
def test_wifi_power_save_esp32c2eco4_26mhz(dut: Dut) -> None:
|
||||
def test_wifi_power_save_esp32c2_rev2_26mhz(dut: Dut) -> None:
|
||||
_run_test(dut)
|
||||
|
||||
|
||||
@pytest.mark.wifi_ap
|
||||
@pytest.mark.esp32c3eco7
|
||||
@pytest.mark.esp32c3_rev1
|
||||
@pytest.mark.parametrize(
|
||||
'config',
|
||||
[
|
||||
'c3eco7',
|
||||
'esp32c3_rev1',
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c3'], indirect=['target'])
|
||||
def test_wifi_power_save_esp32c3eco7(dut: Dut) -> None:
|
||||
def test_wifi_power_save_esp32c3_rev1(dut: Dut) -> None:
|
||||
_run_test(dut)
|
||||
|
||||
+9
-8
@@ -98,7 +98,6 @@ env_markers =
|
||||
xtal32k: Runner with external 32k crystal connected
|
||||
no32kXtal: Runner with no external 32k crystal connected
|
||||
psramv0: Runner with PSRAM version 0
|
||||
esp32eco3: Runner with esp32 eco3 connected
|
||||
ecdsa_efuse: Runner with test ECDSA private keys programmed in efuse
|
||||
ccs811: Runner with CCS811 connected
|
||||
nvs_encr_hmac: Runner with test HMAC key programmed in efuse
|
||||
@@ -127,12 +126,14 @@ env_markers =
|
||||
twai_std: twai runner with all twai supported targets connect to usb-can adapter
|
||||
lp_i2s: lp_i2s runner tested with hp_i2s
|
||||
ram_app: ram_app runners
|
||||
esp32c3eco7: esp32c3 major version(v1.1) chips
|
||||
esp32c2eco4: esp32c2 major version(v2.0) chips
|
||||
recovery_bootloader: Runner with recovery bootloader offset set in
|
||||
esp32p4_eco4: Runner with esp32p4 eco4 connected
|
||||
esp32c5_eco3: Runner with esp32c5 eco3 connected
|
||||
rev_default: Runner with default revision connected
|
||||
flash_32m: Runner with 32MB flash
|
||||
eco4: Runner with SOC chip that is exactly with the ECO4 version
|
||||
eco5: Runner with esp32h2 eco5 connected
|
||||
|
||||
# revision markers
|
||||
rev_default: Runner with default revision connected
|
||||
esp32_rev3: Runner with ESP32 rev 3.x connected
|
||||
esp32c3_rev1: Runner with ESP32-C3 rev 1.x connected
|
||||
esp32c2_rev2: Runner with ESP32-C2 rev 2.x connected
|
||||
esp32p4_rev1: Runner with ESP32-P4 rev 1.x connected
|
||||
esp32c5_rev1: Runner with ESP32-C5 rev 1.x connected
|
||||
esp32h2_rev1_2: Runner with ESP32-H2 rev 1.2 connected
|
||||
|
||||
@@ -25,12 +25,11 @@ TIMEOUT_4H_MARKERS = [
|
||||
'ethernet_stress',
|
||||
]
|
||||
|
||||
ECO_MARKERS = [
|
||||
'esp32eco3',
|
||||
'esp32c2eco4',
|
||||
'esp32c3eco7',
|
||||
'esp32p4_eco4',
|
||||
'esp32c5_eco3',
|
||||
'eco4',
|
||||
'eco5',
|
||||
REV_MARKERS = [
|
||||
'esp32_rev3',
|
||||
'esp32c2_rev2',
|
||||
'esp32c3_rev1',
|
||||
'esp32h2_rev1_2',
|
||||
'esp32p4_rev1',
|
||||
'esp32c5_rev1',
|
||||
]
|
||||
|
||||
@@ -20,7 +20,7 @@ from pytest_embedded.utils import find_by_suffix
|
||||
from pytest_ignore_test_results.ignore_results import ChildCase
|
||||
from pytest_ignore_test_results.ignore_results import ChildCasesStashKey
|
||||
|
||||
from .constants import ECO_MARKERS
|
||||
from .constants import REV_MARKERS
|
||||
from .utils import format_case_id
|
||||
from .utils import merge_junit_files
|
||||
from .utils import normalize_testcase_file_path
|
||||
@@ -181,8 +181,8 @@ class IdfLocalPlugin:
|
||||
if 'esp32c2' in case.targets and 'xtal_26mhz' not in case.all_markers:
|
||||
item.add_marker('xtal_40mhz')
|
||||
|
||||
for eco_marker in ECO_MARKERS:
|
||||
if eco_marker in case.all_markers:
|
||||
for rev_marker in REV_MARKERS:
|
||||
if rev_marker in case.all_markers:
|
||||
break
|
||||
else:
|
||||
item.add_marker('rev_default')
|
||||
|
||||
@@ -190,16 +190,16 @@ def test_phy_tsens_coexist_c2_xtal26m(dut: tuple[Dut, Dut]) -> None:
|
||||
|
||||
@pytest.mark.two_duts
|
||||
@pytest.mark.xtal_26mhz
|
||||
@pytest.mark.esp32c2eco4
|
||||
@pytest.mark.esp32c2_rev2
|
||||
@pytest.mark.parametrize(
|
||||
'count, config, baud',
|
||||
[
|
||||
(2, 'c2_eco4', '74880'),
|
||||
(2, 'esp32c2_rev2', '74880'),
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c2'], indirect=['target'])
|
||||
def test_phy_tsens_coexist_c2eco4_xtal26m(dut: tuple[Dut, Dut]) -> None:
|
||||
def test_phy_tsens_coexist_esp32c2_rev2_xtal26m(dut: tuple[Dut, Dut]) -> None:
|
||||
for _dut in dut:
|
||||
_dut.expect('esp>')
|
||||
run_phy_tsens_test(dut)
|
||||
@@ -216,16 +216,16 @@ def test_phy_tsens_coexist_c2eco4_xtal26m(dut: tuple[Dut, Dut]) -> None:
|
||||
|
||||
|
||||
@pytest.mark.two_duts
|
||||
@pytest.mark.esp32c3eco7
|
||||
@pytest.mark.esp32c3_rev1
|
||||
@pytest.mark.parametrize(
|
||||
'count, config',
|
||||
[
|
||||
(2, 'c3_eco7'),
|
||||
(2, 'esp32c3_rev1'),
|
||||
],
|
||||
indirect=True,
|
||||
)
|
||||
@idf_parametrize('target', ['esp32c3'], indirect=['target'])
|
||||
def test_phy_tsens_coexist_c3eco7(dut: tuple[Dut, Dut]) -> None:
|
||||
def test_phy_tsens_coexist_esp32c3_rev1(dut: tuple[Dut, Dut]) -> None:
|
||||
for _dut in dut:
|
||||
_dut.expect('esp>')
|
||||
run_phy_tsens_test(dut)
|
||||
|
||||
Reference in New Issue
Block a user