tools: binman: ti_board_cfg: Check for linting problems

Use yamllint for checking whether YAML configuration files are adhering
to default yamllint rules.

Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
Suggested-by: Nishanth Menon <nm@ti.com>
This commit is contained in:
Neha Malcom Francis 2024-01-05 17:09:17 +05:30 committed by Tom Rini
parent 0cc7a701e9
commit 10fee88d42
6 changed files with 46 additions and 2 deletions

View file

@ -9,6 +9,7 @@
import os
import struct
import yaml
import yamllint
from collections import OrderedDict
from jsonschema import validate
@ -18,6 +19,7 @@ from binman.entry import Entry
from binman.etype.section import Entry_section
from dtoc import fdt_util
from u_boot_pylib import tools
from yamllint import config
BOARDCFG = 0xB
BOARDCFG_SEC = 0xD
@ -244,6 +246,9 @@ class Entry_ti_board_config(Entry_section):
with open(self._schema_file, 'r') as sch:
self.schema_yaml = yaml.safe_load(sch)
yaml_config = config.YamlLintConfig("extends: default")
for p in yamllint.linter.run(open(self._config_file, "r"), yaml_config):
self.Raise(f"Yamllint error: {p.line}: {p.rule}")
try:
validate(self.file_yaml, self.schema_yaml)
except Exception as e:

View file

@ -7030,6 +7030,12 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
data = self._DoReadFile('293_ti_board_cfg.dts')
self.assertEqual(TI_BOARD_CONFIG_DATA, data)
def testTIBoardConfigLint(self):
"""Test that an incorrectly linted config file would generate error"""
with self.assertRaises(ValueError) as e:
data = self._DoReadFile('323_ti_board_cfg_phony.dts')
self.assertIn("Yamllint error", str(e.exception))
def testTIBoardConfigCombined(self):
"""Test that a schema validated combined board config file can be generated"""
data = self._DoReadFile('294_ti_board_cfg_combined.dts')

View file

@ -0,0 +1,14 @@
// SPDX-License-Identifier: GPL-2.0+
/dts-v1/;
/ {
#address-cells = <1>;
#size-cells = <1>;
binman {
ti-board-config {
config = "yaml/config_phony.yaml";
schema = "yaml/schema.yaml";
};
};
};

View file

@ -10,9 +10,9 @@ main-branch:
b: 0
arr: [0, 0, 0, 0]
another-arr:
- #1
- # 1
c: 0
d: 0
- #2
- # 2
c: 0
d: 0

View file

@ -0,0 +1,18 @@
# SPDX-License-Identifier: GPL-2.0+
#
# Test config
#
---
main-branch :
obj :
a : 0x0
b: 0
arr: [0, 0, 0, 0]
another-arr:
- # 1
c: 0
d: 0
- # 2
c: 0
d: 0

View file

@ -1,2 +1,3 @@
jsonschema==4.17.3
pyyaml==6.0
yamllint==1.26.3