]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
tools: binman: ti_board_cfg: Check for linting problems
authorNeha Malcom Francis <n-francis@ti.com>
Fri, 5 Jan 2024 11:39:17 +0000 (17:09 +0530)
committerTom Rini <trini@konsulko.com>
Thu, 18 Jan 2024 22:50:27 +0000 (17:50 -0500)
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>
tools/binman/etype/ti_board_config.py
tools/binman/ftest.py
tools/binman/test/323_ti_board_cfg_phony.dts [new file with mode: 0644]
tools/binman/test/yaml/config.yaml
tools/binman/test/yaml/config_phony.yaml [new file with mode: 0644]
tools/buildman/requirements.txt

index 94f894c28111c0bf4d83ff53e55028182ed28da7..2c3bb8f7b56ad40ee5ec474771403e37ddf54a36 100644 (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:
index 90482518f1e79c390738d0f6da0a49e0879d5abb..8a44bc051b36d532bcc0d4ae2f4ec1d2622635c8 100644 (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')
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 (file)
index 0000000..441296d
--- /dev/null
@@ -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";
+               };
+       };
+};
index 5f799a6e3a991294d1c158cef7b07c9029c1db0c..c2be32128bb996f1e85e05c2ed7e7d2e23362981 100644 (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
diff --git a/tools/binman/test/yaml/config_phony.yaml b/tools/binman/test/yaml/config_phony.yaml
new file mode 100644 (file)
index 0000000..d76fcb3
--- /dev/null
@@ -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
index a1efcb9d4b44963e8b5b4891eef6a2321bee5068..4a31e69e4cb56b29ee9ed827d4a5a4e94b77980f 100644 (file)
@@ -1,2 +1,3 @@
 jsonschema==4.17.3
 pyyaml==6.0
+yamllint==1.26.3