|
1 | | -# SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD |
| 1 | +# SPDX-FileCopyrightText: 2024-2026 Espressif Systems (Shanghai) CO LTD |
2 | 2 | # SPDX-License-Identifier: Apache-2.0 |
3 | 3 | import os |
4 | 4 | import uuid |
5 | 5 | import pytest |
6 | 6 |
|
7 | 7 |
|
8 | | -def pytest_generate_tests(metafunc): |
9 | | - allowed_ids = set() |
10 | | - |
11 | | - # get markers from test case (e.g. 'esp_box_3') |
12 | | - for marker in metafunc.definition.iter_markers(): |
13 | | - allowed_ids.add(marker.name) |
| 8 | +# TODO: Rename esp-box-3 port in bsp-wall to esp_box_3 |
14 | 9 |
|
15 | | - all_params = [ |
16 | | - pytest.param('/dev/boards/esp-box-3', |
17 | | - '/dev/boards/esp-box-3', |
18 | | - 'build_esp-box-3', |
19 | | - id='esp_box_3'), |
20 | | - pytest.param('/dev/boards/esp32_c3_lcdkit', |
21 | | - '/dev/boards/esp32_c3_lcdkit', |
22 | | - 'build_esp32_c3_lcdkit', |
23 | | - id='esp32_c3_lcdkit'), |
24 | | - pytest.param('/dev/boards/esp32_p4_box', |
25 | | - '/dev/boards/esp32_p4_box', |
26 | | - 'build_esp32_p4_box', |
27 | | - id='esp32_p4_box'), |
28 | | - pytest.param('/dev/boards/esp32_p4_function_ev_board', |
29 | | - '/dev/boards/esp32_p4_function_ev_board', |
30 | | - 'build_esp32_p4_function_ev_board', |
31 | | - id='esp32_p4_function_ev_board'), |
32 | | - pytest.param('/dev/boards/esp32_s3_eye', |
33 | | - '/dev/boards/esp32_s3_eye', |
34 | | - 'build_esp32_s3_eye', |
35 | | - id='esp32_s3_eye'), |
36 | | - pytest.param('/dev/boards/esp32_s3_lcd_ev_board', |
37 | | - '/dev/boards/esp32_s3_lcd_ev_board', |
38 | | - 'build_esp32_s3_lcd_ev_board', |
39 | | - id='esp32_s3_lcd_ev_board'), |
40 | | - pytest.param('/dev/boards/esp32_s3_lcd_ev_board-2', |
41 | | - '/dev/boards/esp32_s3_lcd_ev_board-2', |
42 | | - 'build_esp32_s3_lcd_ev_board', |
43 | | - id='esp32_s3_lcd_ev_board_2'), |
44 | | - pytest.param('/dev/boards/esp32_s3_usb_otg', |
45 | | - '/dev/boards/esp32_s3_usb_otg', |
46 | | - 'build_esp32_s3_usb_otg', |
47 | | - id='esp32_s3_usb_otg'), |
48 | | - pytest.param('/dev/boards/esp_wrover_kit', |
49 | | - '/dev/boards/esp_wrover_kit', |
50 | | - 'build_esp_wrover_kit', |
51 | | - id='esp_wrover_kit'), |
52 | | - pytest.param('/dev/boards/esp32_azure_iot_kit', |
53 | | - '/dev/boards/esp32_azure_iot_kit', |
54 | | - 'build_esp32_azure_iot_kit', |
55 | | - id='esp32_azure_iot_kit'), |
56 | | - pytest.param('/dev/boards/m5dial', |
57 | | - '/dev/boards/m5dial', |
58 | | - 'build_m5dial', |
59 | | - id='m5dial'), |
60 | | - pytest.param('/dev/boards/m5stack_core', |
61 | | - '/dev/boards/m5stack_core', |
62 | | - 'build_m5stack_core', |
63 | | - id='m5stack_core'), |
64 | | - pytest.param('/dev/boards/m5stack_core_2', |
65 | | - '/dev/boards/m5stack_core_2', |
66 | | - 'build_m5stack_core', |
67 | | - id='m5stack_core_2'), |
68 | | - pytest.param('/dev/boards/m5stack_core_s3', |
69 | | - '/dev/boards/m5stack_core_s3', |
70 | | - 'build_m5stack_core_s3', |
71 | | - id='m5stack_core_s3'), |
72 | | - pytest.param('/dev/boards/m5stack_core_s3_se', |
73 | | - '/dev/boards/m5stack_core_s3_se', |
74 | | - 'build_m5stack_core_s3', |
75 | | - id='m5stack_core_s3_se'), |
76 | | - pytest.param('/dev/boards/m5_atom_s3', |
77 | | - '/dev/boards/m5_atom_s3', |
78 | | - 'build_m5_atom_s3', |
79 | | - id='m5_atom_s3'), |
80 | | - pytest.param('/dev/boards/esp32_s3_devkitc_1_1', |
81 | | - '/dev/boards/esp32_s3_devkitc_1_1', |
82 | | - 'build_esp_bsp_devkit', |
83 | | - id='esp_bsp_devkit'), |
84 | | - pytest.param('/dev/boards/esp32_s2_devkitc_1', |
85 | | - '/dev/boards/esp32_s2_devkitc_1', |
86 | | - 'build_esp_bsp_generic', |
87 | | - id='esp_bsp_generic'), |
88 | | - pytest.param('/dev/boards/esp32_s3_korvo_2', |
89 | | - '/dev/boards/esp32_s3_korvo_2', |
90 | | - 'build_esp32_s3_korvo_2', |
91 | | - id='esp32_s3_korvo_2'), |
92 | | - pytest.param('/dev/boards/esp32_p4_eye', |
93 | | - '/dev/boards/esp32_p4_eye', |
94 | | - 'build_esp32_p4_eye', |
95 | | - id='esp32_p4_eye'), |
96 | | - ] |
97 | 10 |
|
98 | | - # filter by markers |
99 | | - selected_params = [ |
100 | | - p for p in all_params if p.id in allowed_ids |
101 | | - ] |
| 11 | +def pytest_generate_tests(metafunc): |
| 12 | + test_parameters = [] |
102 | 13 |
|
103 | | - # if not markers, use all |
104 | | - if not selected_params: |
105 | | - selected_params = all_params |
| 14 | + for marker in metafunc.definition.iter_markers(): |
| 15 | + if "runner_" in marker.name: |
| 16 | + bsp_name = marker.name.removeprefix("runner_") |
| 17 | + bsp_param = pytest.param( |
| 18 | + f'/dev/boards/{bsp_name}', |
| 19 | + f'/dev/boards/{bsp_name}', |
| 20 | + f'build_{bsp_name}', |
| 21 | + # Test are ran one at a time for each board |
| 22 | + marks=pytest.mark.xdist_group(name=f'{bsp_name}') |
| 23 | + ) |
| 24 | + test_parameters.append(bsp_param) |
106 | 25 |
|
107 | 26 | if 'port' in metafunc.fixturenames and 'flash_port' in metafunc.fixturenames: |
108 | 27 | metafunc.parametrize( |
109 | 28 | 'port, flash_port, build_dir', |
110 | | - selected_params |
| 29 | + test_parameters |
111 | 30 | ) |
112 | 31 |
|
113 | 32 |
|
|
0 commit comments