[PATCH 2/2] tools: binman: ti_board_cfg: Check for linting problems
Neha Malcom Francis
n-francis at ti.com
Fri Jan 5 04:40:53 CET 2024
Hi Nishanth
On 04/01/24 20:51, Nishanth Menon wrote:
> On 13:23-20240104, Neha Malcom Francis wrote:
>> Use yamllint for checking whether YAML configuration files are adhering
>> to default yamllint rules.
>>
>> Signed-off-by: Neha Malcom Francis <n-francis at ti.com>
>> Suggested-by: Nishanth Menon <nm at ti.com>
>> ---
>> tools/binman/etype/ti_board_config.py | 5 +++++
>> tools/binman/ftest.py | 6 ++++++
>> tools/binman/test/323_ti_board_cfg_phony.dts | 14 ++++++++++++++
>> tools/binman/test/yaml/config.yaml | 4 ++--
>> tools/binman/test/yaml/config_phony.yaml | 18 ++++++++++++++++++
>> 5 files changed, 45 insertions(+), 2 deletions(-)
>> create mode 100644 tools/binman/test/323_ti_board_cfg_phony.dts
>> create mode 100644 tools/binman/test/yaml/config_phony.yaml
>>
>> diff --git a/tools/binman/etype/ti_board_config.py b/tools/binman/etype/ti_board_config.py
>> index 94f894c281..2c3bb8f7b5 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
>
> Don't you need to add this to requirements.txt?
>
Yes I do... thanks for catching that!
>>
>> 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 a4ac520cbb..1fbb0fef1a 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 0000000000..441296de4f
>> --- /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 5f799a6e3a..c2be32128b 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 0000000000..d76fcb3b82
>> --- /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
>> --
>> 2.34.1
>>
>
--
Thanking You
Neha Malcom Francis
More information about the U-Boot
mailing list