diff options
author | Neha Malcom Francis | 2024-01-05 17:09:17 +0530 |
---|---|---|
committer | Tom Rini | 2024-01-18 17:50:27 -0500 |
commit | 10fee88d42fe37d83f0a37b3dae69b674f8055f3 (patch) | |
tree | 7359a9452d7d85b4d4983ae1a92ef5db6ef70a6e /tools | |
parent | 0cc7a701e9ead1229aec8a28375a46337d326377 (diff) |
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>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/binman/etype/ti_board_config.py | 5 | ||||
-rw-r--r-- | tools/binman/ftest.py | 6 | ||||
-rw-r--r-- | tools/binman/test/323_ti_board_cfg_phony.dts | 14 | ||||
-rw-r--r-- | tools/binman/test/yaml/config.yaml | 4 | ||||
-rw-r--r-- | tools/binman/test/yaml/config_phony.yaml | 18 | ||||
-rw-r--r-- | tools/buildman/requirements.txt | 1 |
6 files changed, 46 insertions, 2 deletions
diff --git a/tools/binman/etype/ti_board_config.py b/tools/binman/etype/ti_board_config.py index 94f894c2811..2c3bb8f7b56 100644 --- a/tools/binman/etype/ti_board_config.py +++ b/tools/binman/etype/ti_board_config.py @@ -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: diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py index 90482518f1e..8a44bc051b3 100644 --- a/tools/binman/ftest.py +++ b/tools/binman/ftest.py @@ -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') diff --git a/tools/binman/test/323_ti_board_cfg_phony.dts b/tools/binman/test/323_ti_board_cfg_phony.dts new file mode 100644 index 00000000000..441296de4fd --- /dev/null +++ b/tools/binman/test/323_ti_board_cfg_phony.dts @@ -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"; + }; + }; +}; diff --git a/tools/binman/test/yaml/config.yaml b/tools/binman/test/yaml/config.yaml index 5f799a6e3a9..c2be32128bb 100644 --- a/tools/binman/test/yaml/config.yaml +++ b/tools/binman/test/yaml/config.yaml @@ -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 diff --git a/tools/binman/test/yaml/config_phony.yaml b/tools/binman/test/yaml/config_phony.yaml new file mode 100644 index 00000000000..d76fcb3b821 --- /dev/null +++ b/tools/binman/test/yaml/config_phony.yaml @@ -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 diff --git a/tools/buildman/requirements.txt b/tools/buildman/requirements.txt index a1efcb9d4b4..4a31e69e4cb 100644 --- a/tools/buildman/requirements.txt +++ b/tools/buildman/requirements.txt @@ -1,2 +1,3 @@ jsonschema==4.17.3 pyyaml==6.0 +yamllint==1.26.3 |