Lines Matching +full:board +full:- +full:schema
5 # SPDX-License-Identifier: Apache-2.0
9 into a JSON files compatible with Twister report schema making them ready for upload
14 sturctured as 'ZEPHYR_VERSION/APPLICATION/FEATURE/BOARD' under the input path(s).
15 The BOARD name itself can be in HWMv2 format as 'BOARD/SOC' or 'BOARD/SOC/VARIANT'
16 with the corresponding sub-directories.
18 For example, an input path `./**/*v3.6.0-rc3-*/footprints/**/frdm_k64f/` will be
19 expanded by bash to all sub-directories with the 'footprints' data `v3.6.0-rc3`
20 release commits collected for `frdm_k64f` board.
22 `shopt -s globstar`.
29 This scripts has `--test-name` parameter to customize how to compose test names
48 VERSION_COMMIT_RE = re.compile(r".*-g([a-f0-9]{12})$")
49 PLAN_HEADERS = ['name', 'feature', 'board', 'application', 'options', 'suite_name']
71 console.setFormatter(logging.Formatter('%(asctime)s - %(levelname)-8s - %(message)s'))
93 "Each directory must have 'ZEPHYR_VERSION/APPLICATION/FEATURE/BOARD' path structure.")
95 parser.add_argument('-p', '--plan', metavar='PLAN_FILE_CSV', required=True,
100 parser.add_argument('-o', '--output-fname', metavar='OUTPUT_FNAME', required=False,
105 parser.add_argument('-z', '--zephyr_base', metavar='ZEPHYR_BASE', required=False,
111 parser.add_argument("--test-name",
117 parser.add_argument("--no-testsuite-check",
121 parser.add_argument('-v', '--verbose', required=False, action='count', default=0,
127 def read_plan(fname: str) -> list[dict]:
132 plan = { f"{p['name']}/{p['feature']}/{p['board']}" : p for p in plan_vals }
138 (in_path, data_id['board']) = os.path.split(in_path)
139 if not data_id['board']:
141 (in_path, data_id['board']) = os.path.split(in_path)
150 if f"{data_id['app']}/{data_id['feature']}/{data_id['board']}" in plan:
153 # try with HWMv2 board name one more level deep
154 data_id['board'] = f"{data_id['feature']}/{data_id['board']}"
201 logging.warning(f"skipped '{report_path}' - not a correct report directory")
205 logging.info(f"filtered '{report_path}' - not in the plan")
209 r_plan = f"{data_id['app']}/{data_id['feature']}/{data_id['board']}"
212 logging.info(f"filtered '{report_path}' - no Twister suite name in the plan.")
246 # Compose twister_footprint.json record - each application (test suite) will have its own
261 'platform': [ plan[r_plan]['board'] ]
268 'platform': plan[r_plan]['board'],