* [PATCH 0/9] Enable the pylint checker in CI
@ 2022-02-11 20:23 Simon Glass
2022-02-11 20:23 ` [PATCH 1/9] patman: Correct pylint errors Simon Glass
` (8 more replies)
0 siblings, 9 replies; 19+ messages in thread
From: Simon Glass @ 2022-02-11 20:23 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Heinrich Schuchardt, Simon Glass, Alper Nebi Yasak,
Arie Haenel, Bin Meng, Bruce Monroe, Daniel Schwierzeck,
Heiko Thiery, Igor Opaniuk, Julien Lenoir, Marek Behún,
Masahiro Yamada, Patrice Chotard, Trevor Woerner, Walter Lozano
This series adds a new errors-only pylint check and adds it to the CI
systems.
It also fixes the current errors in the U-Boot Python code, disabling
errors where it seems necessary.
A small patch to buildman allows it to build sandbox without any changes
to the default config file.
Simon Glass (9):
patman: Correct pylint errors
buildman: Correct pylint errors
dtoc: Correct pylint errors
binman: Correct pylint errors
moveconfig: Correct pylint errors
test: Correct pylint errors
Makefile: Add a way to check for pylint errors
buildman: Update default config to build for sandbox
Azure/GitLab CI: Add the pylint checker
.azure-pipelines.yml | 22 +++++++++++++++++++++
.gitlab-ci.yml | 16 +++++++++++++++
Makefile | 10 ++++++++--
doc/develop/python_cq.rst | 11 +++++++++++
test/py/tests/test_android/test_avb.py | 2 +-
test/py/tests/test_bind.py | 8 ++++----
test/py/tests/vboot_evil.py | 3 ++-
test/py/u_boot_console_base.py | 8 ++++++++
tools/binman/cmdline.py | 2 +-
tools/binman/control.py | 6 ++++++
tools/binman/elf_test.py | 13 ++++++------
tools/binman/entry.py | 2 ++
tools/binman/entry_test.py | 7 ++-----
tools/binman/etype/blob_dtb.py | 3 +++
tools/binman/etype/blob_phase.py | 3 +++
tools/binman/etype/cbfs.py | 3 +++
tools/binman/etype/fdtmap.py | 5 +++++
tools/binman/etype/files.py | 2 ++
tools/binman/etype/section.py | 1 +
tools/binman/etype/u_boot_dtb_with_ucode.py | 3 +++
tools/binman/ftest.py | 21 ++------------------
tools/buildman/bsettings.py | 1 +
tools/buildman/builder.py | 2 +-
tools/buildman/cfgutil.py | 6 +++---
tools/buildman/func_test.py | 6 ------
tools/buildman/kconfiglib.py | 1 +
tools/buildman/main.py | 4 ++--
tools/concurrencytest/__init__.py | 0
tools/dtoc/test_dtoc.py | 6 +++---
tools/dtoc/test_fdt.py | 6 +++---
tools/moveconfig.py | 5 +----
tools/patman/checkpatch.py | 4 +++-
tools/patman/command.py | 8 +-------
tools/patman/commit.py | 2 +-
tools/patman/cros_subprocess.py | 18 ++++-------------
tools/patman/func_test.py | 10 ++++++++++
tools/patman/patchstream.py | 2 +-
tools/patman/series.py | 3 +--
tools/patman/settings.py | 4 ++--
tools/patman/tools.py | 10 +++++-----
40 files changed, 154 insertions(+), 95 deletions(-)
create mode 100644 tools/concurrencytest/__init__.py
--
2.35.1.265.g69c8d7142f-goog
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH 1/9] patman: Correct pylint errors
2022-02-11 20:23 [PATCH 0/9] Enable the pylint checker in CI Simon Glass
@ 2022-02-11 20:23 ` Simon Glass
2022-03-02 18:55 ` Tom Rini
2022-02-11 20:23 ` [PATCH 2/9] buildman: " Simon Glass
` (7 subsequent siblings)
8 siblings, 1 reply; 19+ messages in thread
From: Simon Glass @ 2022-02-11 20:23 UTC (permalink / raw)
To: U-Boot Mailing List; +Cc: Tom Rini, Heinrich Schuchardt, Simon Glass
Fix pylint errors that can be fixed and mask those that seem to be
incorrect.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
doc/develop/python_cq.rst | 11 +++++++++++
tools/concurrencytest/__init__.py | 0
tools/patman/checkpatch.py | 4 +++-
tools/patman/command.py | 8 +-------
tools/patman/commit.py | 2 +-
tools/patman/cros_subprocess.py | 18 ++++--------------
tools/patman/func_test.py | 10 ++++++++++
tools/patman/patchstream.py | 2 +-
tools/patman/series.py | 3 +--
tools/patman/settings.py | 4 ++--
tools/patman/tools.py | 10 +++++-----
11 files changed, 39 insertions(+), 33 deletions(-)
create mode 100644 tools/concurrencytest/__init__.py
diff --git a/doc/develop/python_cq.rst b/doc/develop/python_cq.rst
index 3f99f1d9c0..1e209ff197 100644
--- a/doc/develop/python_cq.rst
+++ b/doc/develop/python_cq.rst
@@ -77,4 +77,15 @@ If the pylint version is updated in CI, this may result in needing to regenerate
`scripts/pylint.base`.
+Checking for errors
+-------------------
+
+If you only want to check for pylint errors, use::
+
+ PYTHONPATH=/path/to/scripts/dtc/pylibfdt/ make pylint_err
+
+This will show only pylint errors. Note that you must set PYTHONPATH to point
+to the pylibfdt directory build by U-Boot (typically the sandbox_spl board). If
+you have used `make qcheck` then it sill be in `board-sandbox_spl`.
+
.. _`PEP 8`: https://www.python.org/dev/peps/pep-0008/
diff --git a/tools/concurrencytest/__init__.py b/tools/concurrencytest/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tools/patman/checkpatch.py b/tools/patman/checkpatch.py
index dd792efee0..70ba561c26 100644
--- a/tools/patman/checkpatch.py
+++ b/tools/patman/checkpatch.py
@@ -125,7 +125,7 @@ def check_patch_parse(checkpatch_output, verbose=False):
Returns:
namedtuple containing:
ok: False=failure, True=ok
- problems: List of problems, each a dict:
+ problems (list of problems): each a dict:
'type'; error or warning
'msg': text message
'file' : filename
@@ -252,6 +252,8 @@ def check_patches(verbose, args):
if (len(result.problems) != result.errors + result.warnings +
result.checks):
print("Internal error: some problems lost")
+ # Python seems to get confused by this
+ # pylint: disable=E1133
for item in result.problems:
sys.stderr.write(
get_warning_msg(col, item.get('type', '<unknown>'),
diff --git a/tools/patman/command.py b/tools/patman/command.py
index 24358784f2..92c453b5c1 100644
--- a/tools/patman/command.py
+++ b/tools/patman/command.py
@@ -17,13 +17,6 @@ class CommandResult:
return_code: Return code from command
exception: Exception received, or None if all ok
"""
- def __init__(self):
- self.stdout = None
- self.stderr = None
- self.combined = None
- self.return_code = None
- self.exception = None
-
def __init__(self, stdout='', stderr='', combined='', return_code=0,
exception=None):
self.stdout = stdout
@@ -72,6 +65,7 @@ def run_pipe(pipe_list, infile=None, outfile=None,
"""
if test_result:
if hasattr(test_result, '__call__'):
+ # pylint: disable=E1102
result = test_result(pipe_list=pipe_list)
if result:
return result
diff --git a/tools/patman/commit.py b/tools/patman/commit.py
index c331a3b122..a645b22d08 100644
--- a/tools/patman/commit.py
+++ b/tools/patman/commit.py
@@ -31,7 +31,7 @@ class Commit:
"""
def __init__(self, hash):
self.hash = hash
- self.subject = None
+ self.subject = ''
self.tags = []
self.changes = {}
self.cc_list = []
diff --git a/tools/patman/cros_subprocess.py b/tools/patman/cros_subprocess.py
index f1b26087cf..cd614f38a6 100644
--- a/tools/patman/cros_subprocess.py
+++ b/tools/patman/cros_subprocess.py
@@ -113,7 +113,7 @@ class Popen(subprocess.Popen):
return b''
return data
- def communicate_filter(self, output):
+ def communicate_filter(self, output, input_buf=''):
"""Interact with process: Read data from stdout and stderr.
This method runs until end-of-file is reached, then waits for the
@@ -166,7 +166,7 @@ class Popen(subprocess.Popen):
# Flush stdio buffer. This might block, if the user has
# been writing to .stdin in an uncontrolled fashion.
self.stdin.flush()
- if input:
+ if input_buf:
write_set.append(self.stdin)
else:
self.stdin.close()
@@ -195,10 +195,10 @@ class Popen(subprocess.Popen):
# When select has indicated that the file is writable,
# we can write up to PIPE_BUF bytes without risk
# blocking. POSIX defines PIPE_BUF >= 512
- chunk = input[input_offset : input_offset + 512]
+ chunk = input_buf[input_offset : input_offset + 512]
bytes_written = os.write(self.stdin.fileno(), chunk)
input_offset += bytes_written
- if input_offset >= len(input):
+ if input_offset >= len(input_buf):
self.stdin.close()
write_set.remove(self.stdin)
@@ -240,16 +240,6 @@ class Popen(subprocess.Popen):
stderr = self.convert_data(stderr)
combined = self.convert_data(combined)
- # Translate newlines, if requested. We cannot let the file
- # object do the translation: It is based on stdio, which is
- # impossible to combine with select (unless forcing no
- # buffering).
- if self.universal_newlines and hasattr(file, 'newlines'):
- if stdout:
- stdout = self._translate_newlines(stdout)
- if stderr:
- stderr = self._translate_newlines(stderr)
-
self.wait()
return (stdout, stderr, combined)
diff --git a/tools/patman/func_test.py b/tools/patman/func_test.py
index 59ee90c344..7b92bc67be 100644
--- a/tools/patman/func_test.py
+++ b/tools/patman/func_test.py
@@ -341,6 +341,8 @@ Changes in v2:
tools.write_file(path, text, binary=False)
index = self.repo.index
index.add(fname)
+ # pylint doesn't seem to find this
+ # pylint: disable=E1101
author = pygit2.Signature('Test user', 'test@email.com')
committer = author
tree = index.write_tree()
@@ -363,6 +365,8 @@ Changes in v2:
self.repo = repo
new_tree = repo.TreeBuilder().write()
+ # pylint doesn't seem to find this
+ # pylint: disable=E1101
author = pygit2.Signature('Test user', 'test@email.com')
committer = author
_ = repo.create_commit('HEAD', author, committer, 'Created master',
@@ -414,6 +418,8 @@ better than before''')
first_target = repo.revparse_single('HEAD')
target = repo.revparse_single('HEAD~2')
+ # pylint doesn't seem to find this
+ # pylint: disable=E1101
repo.reset(target.oid, pygit2.GIT_CHECKOUT_FORCE)
self.make_commit_with_file('video: Some video improvements', '''
Fix up the video so that
@@ -459,6 +465,8 @@ complicated as possible''')
"""Test creating patches from a branch"""
repo = self.make_git_tree()
target = repo.lookup_reference('refs/heads/first')
+ # pylint doesn't seem to find this
+ # pylint: disable=E1101
self.repo.checkout(target, strategy=pygit2.GIT_CHECKOUT_FORCE)
control.setup()
try:
@@ -615,6 +623,8 @@ diff --git a/lib/efi_loader/efi_memory.c b/lib/efi_loader/efi_memory.c
"""Test CountCommitsToBranch when there is no upstream"""
repo = self.make_git_tree()
target = repo.lookup_reference('refs/heads/base')
+ # pylint doesn't seem to find this
+ # pylint: disable=E1101
self.repo.checkout(target, strategy=pygit2.GIT_CHECKOUT_FORCE)
# Check that it can detect the current branch
diff --git a/tools/patman/patchstream.py b/tools/patman/patchstream.py
index 9b32fd4790..fb6a6036f3 100644
--- a/tools/patman/patchstream.py
+++ b/tools/patman/patchstream.py
@@ -597,7 +597,7 @@ class PatchStream:
if 'prefix' in self.series:
parts.append(self.series['prefix'])
if 'postfix' in self.series:
- parts.append(self.serties['postfix'])
+ parts.append(self.series['postfix'])
if 'version' in self.series:
parts.append("v%s" % self.series['version'])
diff --git a/tools/patman/series.py b/tools/patman/series.py
index 891f278534..3075378ac1 100644
--- a/tools/patman/series.py
+++ b/tools/patman/series.py
@@ -122,8 +122,7 @@ class Series(dict):
cc_list = list(self._generated_cc[commit.patch])
for email in sorted(set(cc_list) - to_set - cc_set):
if email == None:
- email = col.build(col.YELLOW, "<alias '%s' not found>"
- % tag)
+ email = col.build(col.YELLOW, '<alias not found>')
if email:
print(' Cc: ', email)
print
diff --git a/tools/patman/settings.py b/tools/patman/settings.py
index 014bb376d8..7c2b5c196c 100644
--- a/tools/patman/settings.py
+++ b/tools/patman/settings.py
@@ -200,12 +200,12 @@ def CreatePatmanConfigFile(gitutil, config_fname):
"""
name = gitutil.get_default_user_name()
if name == None:
- name = raw_input("Enter name: ")
+ name = input("Enter name: ")
email = gitutil.get_default_user_email()
if email == None:
- email = raw_input("Enter email: ")
+ email = input("Enter email: ")
try:
f = open(config_fname, 'w')
diff --git a/tools/patman/tools.py b/tools/patman/tools.py
index 5e4d4ac05c..2ac814d476 100644
--- a/tools/patman/tools.py
+++ b/tools/patman/tools.py
@@ -62,8 +62,8 @@ def prepare_output_dir(dirname, preserve=False):
try:
os.makedirs(outdir)
except OSError as err:
- raise CmdError("Cannot make output directory '%s': '%s'" %
- (outdir, err.strerror))
+ raise ValueError(
+ f"Cannot make output directory 'outdir': 'err.strerror'")
tout.debug("Using output directory '%s'" % outdir)
else:
outdir = tempfile.mkdtemp(prefix='binman.')
@@ -160,7 +160,7 @@ def get_input_filename_glob(pattern):
A list of matching files in all input directories
"""
if not indir:
- return glob.glob(fname)
+ return glob.glob(pattern)
files = []
for dirname in indir:
pathname = os.path.join(dirname, pattern)
@@ -201,7 +201,7 @@ def path_has_file(path_spec, fname):
return True
return False
-def get_host_compile_tool(name):
+def get_host_compile_tool(env, name):
"""Get the host-specific version for a compile tool
This checks the environment variables that specify which version of
@@ -356,7 +356,7 @@ def run_result(name, *args, **kwargs):
name, extra_args = get_target_compile_tool(name)
args = tuple(extra_args) + args
elif for_host:
- name, extra_args = get_host_compile_tool(name)
+ name, extra_args = get_host_compile_tool(env, name)
args = tuple(extra_args) + args
name = os.path.expanduser(name) # Expand paths containing ~
all_args = (name,) + args
--
2.35.1.265.g69c8d7142f-goog
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 2/9] buildman: Correct pylint errors
2022-02-11 20:23 [PATCH 0/9] Enable the pylint checker in CI Simon Glass
2022-02-11 20:23 ` [PATCH 1/9] patman: Correct pylint errors Simon Glass
@ 2022-02-11 20:23 ` Simon Glass
2022-03-02 18:55 ` Tom Rini
2022-02-11 20:23 ` [PATCH 3/9] dtoc: " Simon Glass
` (6 subsequent siblings)
8 siblings, 1 reply; 19+ messages in thread
From: Simon Glass @ 2022-02-11 20:23 UTC (permalink / raw)
To: U-Boot Mailing List; +Cc: Tom Rini, Heinrich Schuchardt, Simon Glass
Fix pylint errors that can be fixed and mask those that seem to be
incorrect.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
tools/buildman/builder.py | 2 +-
tools/buildman/cfgutil.py | 6 +++---
tools/buildman/func_test.py | 6 ------
tools/buildman/kconfiglib.py | 1 +
tools/buildman/main.py | 4 ++--
5 files changed, 7 insertions(+), 12 deletions(-)
diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
index 754642d4a6..ecbfa3e361 100644
--- a/tools/buildman/builder.py
+++ b/tools/buildman/builder.py
@@ -1763,7 +1763,7 @@ class Builder:
if self.num_threads:
self.queue.put(job)
else:
- results = self._single_builder.RunJob(job)
+ self._single_builder.RunJob(job)
if self.num_threads:
term = threading.Thread(target=self.queue.join)
diff --git a/tools/buildman/cfgutil.py b/tools/buildman/cfgutil.py
index 4eba50868f..ab74a8ef06 100644
--- a/tools/buildman/cfgutil.py
+++ b/tools/buildman/cfgutil.py
@@ -123,10 +123,10 @@ def adjust_cfg_file(fname, adjust_cfg):
C=val to set the value of C (val must have quotes if C is
a string Kconfig)
"""
- lines = tools.ReadFile(fname, binary=False).splitlines()
+ lines = tools.read_file(fname, binary=False).splitlines()
out_lines = adjust_cfg_lines(lines, adjust_cfg)
out = '\n'.join(out_lines) + '\n'
- tools.WriteFile(fname, out, binary=False)
+ tools.write_file(fname, out, binary=False)
def convert_list_to_dict(adjust_cfg_list):
"""Convert a list of config changes into the dict used by adjust_cfg_file()
@@ -219,7 +219,7 @@ def check_cfg_file(fname, adjust_cfg):
Returns:
str: None if OK, else an error string listing the problems
"""
- lines = tools.ReadFile(fname, binary=False).splitlines()
+ lines = tools.read_file(fname, binary=False).splitlines()
bad_cfgs = check_cfg_lines(lines, adjust_cfg)
if bad_cfgs:
out = [f'{cfg:20} {line}' for cfg, line in bad_cfgs]
diff --git a/tools/buildman/func_test.py b/tools/buildman/func_test.py
index 6fcceb0ea5..fbf6706644 100644
--- a/tools/buildman/func_test.py
+++ b/tools/buildman/func_test.py
@@ -524,12 +524,6 @@ class TestFunctional(unittest.TestCase):
# Each commit has a config and make
self.assertEqual(self._make_calls, len(boards) * self._commits * 2)
- def testForceReconfigure(self):
- """The -f flag should force a rebuild"""
- self._RunControl('-b', TEST_BRANCH, '-C', '-o', self._output_dir)
- # Each commit has a config and make
- self.assertEqual(self._make_calls, len(boards) * self._commits * 2)
-
def testMrproper(self):
"""The -f flag should force a rebuild"""
self._RunControl('-b', TEST_BRANCH, '-m', '-o', self._output_dir)
diff --git a/tools/buildman/kconfiglib.py b/tools/buildman/kconfiglib.py
index c67895ced6..b9f3756755 100644
--- a/tools/buildman/kconfiglib.py
+++ b/tools/buildman/kconfiglib.py
@@ -556,6 +556,7 @@ from os.path import dirname, exists, expandvars, islink, join, realpath
VERSION = (14, 1, 0)
+# pylint: disable=E1101
# File layout:
#
diff --git a/tools/buildman/main.py b/tools/buildman/main.py
index 01271061e6..3b6af24080 100755
--- a/tools/buildman/main.py
+++ b/tools/buildman/main.py
@@ -30,8 +30,8 @@ from patman import terminal
from patman import test_util
def RunTests(skip_net_tests, verboose, args):
- import func_test
- import test
+ from buildman import func_test
+ from buildman import test
import doctest
result = unittest.TestResult()
--
2.35.1.265.g69c8d7142f-goog
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 3/9] dtoc: Correct pylint errors
2022-02-11 20:23 [PATCH 0/9] Enable the pylint checker in CI Simon Glass
2022-02-11 20:23 ` [PATCH 1/9] patman: Correct pylint errors Simon Glass
2022-02-11 20:23 ` [PATCH 2/9] buildman: " Simon Glass
@ 2022-02-11 20:23 ` Simon Glass
2022-03-02 18:55 ` Tom Rini
2022-02-11 20:23 ` [PATCH 4/9] binman: " Simon Glass
` (5 subsequent siblings)
8 siblings, 1 reply; 19+ messages in thread
From: Simon Glass @ 2022-02-11 20:23 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Heinrich Schuchardt, Simon Glass, Walter Lozano
Fix pylint errors in this directory.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
tools/dtoc/test_dtoc.py | 6 +++---
tools/dtoc/test_fdt.py | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/tools/dtoc/test_dtoc.py b/tools/dtoc/test_dtoc.py
index ea88954923..c81bcc9c32 100755
--- a/tools/dtoc/test_dtoc.py
+++ b/tools/dtoc/test_dtoc.py
@@ -16,13 +16,13 @@ import os
import struct
import unittest
-from dtb_platdata import Ftype
-from dtb_platdata import get_value
-from dtb_platdata import tab_to
from dtoc import dtb_platdata
from dtoc import fdt
from dtoc import fdt_util
from dtoc import src_scan
+from dtoc.dtb_platdata import Ftype
+from dtoc.dtb_platdata import get_value
+from dtoc.dtb_platdata import tab_to
from dtoc.src_scan import conv_name_to_c
from dtoc.src_scan import get_compat_name
from patman import test_util
diff --git a/tools/dtoc/test_fdt.py b/tools/dtoc/test_fdt.py
index c789822afa..fe6c578969 100755
--- a/tools/dtoc/test_fdt.py
+++ b/tools/dtoc/test_fdt.py
@@ -25,7 +25,7 @@ sys.path.insert(2, os.path.join(our_path,
from dtoc import fdt
from dtoc import fdt_util
from dtoc.fdt_util import fdt32_to_cpu, fdt64_to_cpu
-from fdt import Type, BytesToValue
+from dtoc.fdt import Type, BytesToValue
import libfdt
from patman import command
from patman import test_util
@@ -119,9 +119,9 @@ class TestFdt(unittest.TestCase):
"""Test that packing a device tree works"""
self.dtb.Pack()
- def testGetFdt(self):
+ def testGetFdtRaw(self):
"""Tetst that we can access the raw device-tree data"""
- self.assertTrue(isinstance(self.dtb.GetContents(), bytearray))
+ self.assertTrue(isinstance(self.dtb.GetContents(), bytes))
def testGetProps(self):
"""Tests obtaining a list of properties"""
--
2.35.1.265.g69c8d7142f-goog
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 4/9] binman: Correct pylint errors
2022-02-11 20:23 [PATCH 0/9] Enable the pylint checker in CI Simon Glass
` (2 preceding siblings ...)
2022-02-11 20:23 ` [PATCH 3/9] dtoc: " Simon Glass
@ 2022-02-11 20:23 ` Simon Glass
2022-03-02 18:55 ` Tom Rini
2022-02-11 20:23 ` [PATCH 5/9] moveconfig: " Simon Glass
` (4 subsequent siblings)
8 siblings, 1 reply; 19+ messages in thread
From: Simon Glass @ 2022-02-11 20:23 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Heinrich Schuchardt, Simon Glass, Heiko Thiery
Fix pylint errors that can be fixed and mask those that seem to be
incorrect.
A complication with binman is that it tries to avoid importing libfdt
(or anything that imports it) unless needed, so that things like help
still work if it is missing.
Note that two tests are duplicated in binman and two others have
duplicate names, so both of these issues are fixed also.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
tools/binman/cmdline.py | 2 +-
tools/binman/control.py | 6 ++++++
tools/binman/elf_test.py | 13 ++++++-------
tools/binman/entry.py | 2 ++
tools/binman/entry_test.py | 7 ++-----
tools/binman/etype/blob_dtb.py | 3 +++
tools/binman/etype/blob_phase.py | 3 +++
tools/binman/etype/cbfs.py | 3 +++
tools/binman/etype/fdtmap.py | 5 +++++
tools/binman/etype/files.py | 2 ++
tools/binman/etype/section.py | 1 +
tools/binman/etype/u_boot_dtb_with_ucode.py | 3 +++
tools/binman/ftest.py | 21 ++-------------------
13 files changed, 39 insertions(+), 32 deletions(-)
diff --git a/tools/binman/cmdline.py b/tools/binman/cmdline.py
index 0626b850f4..1d1ca43993 100644
--- a/tools/binman/cmdline.py
+++ b/tools/binman/cmdline.py
@@ -7,7 +7,7 @@
import argparse
from argparse import ArgumentParser
-import state
+from binman import state
def make_extract_parser(subparsers):
"""make_extract_parser: Make a subparser for the 'extract' command
diff --git a/tools/binman/control.py b/tools/binman/control.py
index a179f78129..c9d7a08bbc 100644
--- a/tools/binman/control.py
+++ b/tools/binman/control.py
@@ -20,6 +20,10 @@ from binman import elf
from patman import command
from patman import tout
+# These are imported if needed since they import libfdt
+state = None
+Image = None
+
# List of images we plan to create
# Make this global so that it can be referenced from tests
images = OrderedDict()
@@ -41,6 +45,8 @@ def _ReadImageDesc(binman_node, use_expanded):
Returns:
OrderedDict of Image objects, each of which describes an image
"""
+ # For Image()
+ # pylint: disable=E1102
images = OrderedDict()
if 'multiple-images' in binman_node.props:
for node in binman_node.subnodes:
diff --git a/tools/binman/elf_test.py b/tools/binman/elf_test.py
index 47ebfbac4a..75b6dc8d73 100644
--- a/tools/binman/elf_test.py
+++ b/tools/binman/elf_test.py
@@ -116,7 +116,7 @@ class TestElf(unittest.TestCase):
entry = FakeEntry(10)
section = FakeSection()
with self.assertRaises(ValueError) as e:
- syms = elf.LookupAndWriteSymbols('missing-file', entry, section)
+ elf.LookupAndWriteSymbols('missing-file', entry, section)
self.assertIn("Filename 'missing-file' not found in input path",
str(e.exception))
@@ -126,7 +126,7 @@ class TestElf(unittest.TestCase):
section = FakeSection()
elf_fname = self.ElfTestFile('u_boot_binman_syms')
with self.assertRaises(ValueError) as e:
- syms = elf.LookupAndWriteSymbols(elf_fname, entry, section)
+ elf.LookupAndWriteSymbols(elf_fname, entry, section)
self.assertIn('entry_path has offset 4 (size 8) but the contents size '
'is a', str(e.exception))
@@ -139,8 +139,7 @@ class TestElf(unittest.TestCase):
entry = FakeEntry(10)
section = FakeSection()
elf_fname = self.ElfTestFile('u_boot_binman_syms_bad')
- self.assertEqual(elf.LookupAndWriteSymbols(elf_fname, entry, section),
- None)
+ elf.LookupAndWriteSymbols(elf_fname, entry, section)
def testBadSymbolSize(self):
"""Test that an attempt to use an 8-bit symbol are detected
@@ -152,7 +151,7 @@ class TestElf(unittest.TestCase):
section = FakeSection()
elf_fname =self.ElfTestFile('u_boot_binman_syms_size')
with self.assertRaises(ValueError) as e:
- syms = elf.LookupAndWriteSymbols(elf_fname, entry, section)
+ elf.LookupAndWriteSymbols(elf_fname, entry, section)
self.assertIn('has size 1: only 4 and 8 are supported',
str(e.exception))
@@ -165,7 +164,7 @@ class TestElf(unittest.TestCase):
entry = FakeEntry(24)
section = FakeSection(sym_value=None)
elf_fname = self.ElfTestFile('u_boot_binman_syms')
- syms = elf.LookupAndWriteSymbols(elf_fname, entry, section)
+ elf.LookupAndWriteSymbols(elf_fname, entry, section)
self.assertEqual(tools.get_bytes(255, 20) + tools.get_bytes(ord('a'), 4),
entry.data)
@@ -177,7 +176,7 @@ class TestElf(unittest.TestCase):
section = FakeSection()
elf_fname = self.ElfTestFile('u_boot_binman_syms')
with test_util.capture_sys_output() as (stdout, stderr):
- syms = elf.LookupAndWriteSymbols(elf_fname, entry, section)
+ elf.LookupAndWriteSymbols(elf_fname, entry, section)
self.assertTrue(len(stdout.getvalue()) > 0)
finally:
tout.init(tout.WARNING)
diff --git a/tools/binman/entry.py b/tools/binman/entry.py
index dc26f8f167..9809288ffa 100644
--- a/tools/binman/entry.py
+++ b/tools/binman/entry.py
@@ -19,6 +19,8 @@ from patman import tout
modules = {}
+# This is imported if needed
+state = None
# An argument which can be passed to entries on the command line, in lieu of
# device-tree properties.
diff --git a/tools/binman/entry_test.py b/tools/binman/entry_test.py
index 7ed9b262bb..1d60076be1 100644
--- a/tools/binman/entry_test.py
+++ b/tools/binman/entry_test.py
@@ -5,6 +5,7 @@
# Test for the Entry class
import collections
+import importlib
import os
import sys
import unittest
@@ -32,11 +33,7 @@ class TestEntry(unittest.TestCase):
def _ReloadEntry(self):
global entry
if entry:
- if sys.version_info[0] >= 3:
- import importlib
- importlib.reload(entry)
- else:
- reload(entry)
+ importlib.reload(entry)
else:
from binman import entry
diff --git a/tools/binman/etype/blob_dtb.py b/tools/binman/etype/blob_dtb.py
index 3ce7511f6f..4159e3032a 100644
--- a/tools/binman/etype/blob_dtb.py
+++ b/tools/binman/etype/blob_dtb.py
@@ -8,6 +8,9 @@
from binman.entry import Entry
from binman.etype.blob import Entry_blob
+# This is imported if needed
+state = None
+
class Entry_blob_dtb(Entry_blob):
"""A blob that holds a device tree
diff --git a/tools/binman/etype/blob_phase.py b/tools/binman/etype/blob_phase.py
index ed25e467a1..23e2ad69ba 100644
--- a/tools/binman/etype/blob_phase.py
+++ b/tools/binman/etype/blob_phase.py
@@ -7,6 +7,9 @@
from binman.etype.section import Entry_section
+# This is imported if needed
+state = None
+
class Entry_blob_phase(Entry_section):
"""Section that holds a phase binary
diff --git a/tools/binman/etype/cbfs.py b/tools/binman/etype/cbfs.py
index cc1fbdf4b5..4a1837f26c 100644
--- a/tools/binman/etype/cbfs.py
+++ b/tools/binman/etype/cbfs.py
@@ -12,6 +12,9 @@ from binman.cbfs_util import CbfsWriter
from binman.entry import Entry
from dtoc import fdt_util
+# This is imported if needed
+state = None
+
class Entry_cbfs(Entry):
"""Coreboot Filesystem (CBFS)
diff --git a/tools/binman/etype/fdtmap.py b/tools/binman/etype/fdtmap.py
index 76e8dbe818..33c9d039a9 100644
--- a/tools/binman/etype/fdtmap.py
+++ b/tools/binman/etype/fdtmap.py
@@ -15,6 +15,11 @@ from patman import tout
FDTMAP_MAGIC = b'_FDTMAP_'
FDTMAP_HDR_LEN = 16
+# These is imported if needed
+Fdt = None
+libfdt = None
+state = None
+
def LocateFdtmap(data):
"""Search an image for an fdt map
diff --git a/tools/binman/etype/files.py b/tools/binman/etype/files.py
index 0650a69c55..13838ece8f 100644
--- a/tools/binman/etype/files.py
+++ b/tools/binman/etype/files.py
@@ -13,6 +13,8 @@ from binman.etype.section import Entry_section
from dtoc import fdt_util
from patman import tools
+# This is imported if needed
+state = None
class Entry_files(Entry_section):
"""A set of files arranged in a section
diff --git a/tools/binman/etype/section.py b/tools/binman/etype/section.py
index 25159074ba..639b12d95b 100644
--- a/tools/binman/etype/section.py
+++ b/tools/binman/etype/section.py
@@ -163,6 +163,7 @@ class Entry_section(Entry):
self._sort = False
self._skip_at_start = None
self._end_4gb = False
+ self._ignore_missing = False
def ReadNode(self):
"""Read properties from the section node"""
diff --git a/tools/binman/etype/u_boot_dtb_with_ucode.py b/tools/binman/etype/u_boot_dtb_with_ucode.py
index 554b3b2e00..047d310cdf 100644
--- a/tools/binman/etype/u_boot_dtb_with_ucode.py
+++ b/tools/binman/etype/u_boot_dtb_with_ucode.py
@@ -9,6 +9,9 @@ from binman.entry import Entry
from binman.etype.blob_dtb import Entry_blob_dtb
from patman import tools
+# This is imported if needed
+state = None
+
class Entry_u_boot_dtb_with_ucode(Entry_blob_dtb):
"""A U-Boot device tree file, with the microcode removed
diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py
index 59b6d52fbe..eabfb2a8b7 100644
--- a/tools/binman/ftest.py
+++ b/tools/binman/ftest.py
@@ -989,7 +989,7 @@ class TestFunctional(unittest.TestCase):
self.assertIn("Section '/binman': Size 0x7 (7) does not match "
"align-size 0x8 (8)", str(e.exception))
- def testPackAlignPowerOf2(self):
+ def testPackAlignPowerOf2Inv(self):
"""Test that invalid image alignment is detected"""
with self.assertRaises(ValueError) as e:
self._DoTestFile('020_pack_inv_image_align_power2.dts')
@@ -3712,7 +3712,7 @@ class TestFunctional(unittest.TestCase):
err = stderr.getvalue()
self.assertRegex(err, "Image 'main-section'.*missing.*: intel-ifwi")
- def testPackOverlap(self):
+ def testPackOverlapZero(self):
"""Test that zero-size overlapping regions are ignored"""
self._DoTestFile('160_pack_overlap_zero.dts')
@@ -3981,13 +3981,6 @@ class TestFunctional(unittest.TestCase):
self.assertIn("Generator node requires 'fit,fdt-list' property",
str(e.exception))
- def testFitFdtEmptyList(self):
- """Test handling of an empty 'of-list' entry arg"""
- entry_args = {
- 'of-list': '',
- }
- data = self._DoReadFileDtb('170_fit_fdt.dts', entry_args=entry_args)[0]
-
def testFitFdtMissing(self):
"""Test handling of a missing 'default-dt' entry arg"""
entry_args = {
@@ -4872,16 +4865,6 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
self.assertEqual('rot-cert', fent.fip_type)
self.assertEqual(b'aa', fent.data)
- def testFipOther(self):
- """Basic FIP with something that isn't a external blob"""
- data = self._DoReadFile('204_fip_other.dts')
- hdr, fents = fip_util.decode_fip(data)
-
- self.assertEqual(2, len(fents))
- fent = fents[1]
- self.assertEqual('rot-cert', fent.fip_type)
- self.assertEqual(b'aa', fent.data)
-
def testFipNoType(self):
"""FIP with an entry of an unknown type"""
with self.assertRaises(ValueError) as e:
--
2.35.1.265.g69c8d7142f-goog
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 5/9] moveconfig: Correct pylint errors
2022-02-11 20:23 [PATCH 0/9] Enable the pylint checker in CI Simon Glass
` (3 preceding siblings ...)
2022-02-11 20:23 ` [PATCH 4/9] binman: " Simon Glass
@ 2022-02-11 20:23 ` Simon Glass
2022-03-02 18:55 ` Tom Rini
2022-02-11 20:23 ` [PATCH 6/9] test: " Simon Glass
` (3 subsequent siblings)
8 siblings, 1 reply; 19+ messages in thread
From: Simon Glass @ 2022-02-11 20:23 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Heinrich Schuchardt, Simon Glass, Alper Nebi Yasak,
Trevor Woerner
Fix two pylint errors in this file.
Note ACTION_SPL_NOT_EXIST is not defined so the dead code can be removed.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
tools/moveconfig.py | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/tools/moveconfig.py b/tools/moveconfig.py
index 1bcf58caf1..d532863637 100755
--- a/tools/moveconfig.py
+++ b/tools/moveconfig.py
@@ -326,7 +326,7 @@ def read_file(fname, as_lines=True, skip_unicode=False):
return inf.read()
except UnicodeDecodeError as e:
if not skip_unicode:
- raises
+ raise
print("Failed on file %s': %s" % (fname, e))
return None
@@ -777,9 +777,6 @@ class KconfigParser:
actlog = "'%s' is the same as the define in Kconfig. Do nothing." \
% value
log_color = COLOR_LIGHT_PURPLE
- elif action == ACTION_SPL_NOT_EXIST:
- actlog = 'SPL is not enabled for this defconfig. Skip.'
- log_color = COLOR_PURPLE
else:
sys.exit('Internal Error. This should not happen.')
--
2.35.1.265.g69c8d7142f-goog
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 6/9] test: Correct pylint errors
2022-02-11 20:23 [PATCH 0/9] Enable the pylint checker in CI Simon Glass
` (4 preceding siblings ...)
2022-02-11 20:23 ` [PATCH 5/9] moveconfig: " Simon Glass
@ 2022-02-11 20:23 ` Simon Glass
2022-03-02 18:55 ` Tom Rini
2022-02-11 20:23 ` [PATCH 7/9] Makefile: Add a way to check for " Simon Glass
` (2 subsequent siblings)
8 siblings, 1 reply; 19+ messages in thread
From: Simon Glass @ 2022-02-11 20:23 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Heinrich Schuchardt, Simon Glass, Arie Haenel,
Bruce Monroe, Igor Opaniuk, Julien Lenoir, Patrice Chotard
Fix pylint errors in all test.
This requires adding a get_spawn() method to the ConsoleBase base, so that
its subclass is happy.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
test/py/tests/test_android/test_avb.py | 2 +-
test/py/tests/test_bind.py | 8 ++++----
test/py/tests/vboot_evil.py | 3 ++-
test/py/u_boot_console_base.py | 8 ++++++++
4 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/test/py/tests/test_android/test_avb.py b/test/py/tests/test_android/test_avb.py
index a04a7ff264..a3f883136b 100644
--- a/test/py/tests/test_android/test_avb.py
+++ b/test/py/tests/test_android/test_avb.py
@@ -66,7 +66,7 @@ def test_avb_mmc_uuid(u_boot_console):
part_list[cur_partname] = guid_to_check[1]
# lets check all guids with avb get_guid
- for part, guid in part_list.iteritems():
+ for part, guid in part_list.items():
avb_guid_resp = u_boot_console.run_command('avb get_uuid %s' % part)
assert guid == avb_guid_resp.split('UUID: ')[1]
diff --git a/test/py/tests/test_bind.py b/test/py/tests/test_bind.py
index 9f234fb635..8ad277da19 100644
--- a/test/py/tests/test_bind.py
+++ b/test/py/tests/test_bind.py
@@ -131,7 +131,7 @@ def test_bind_unbind_with_uclass(u_boot_console):
child2_index = int(child2_line[0].split()[1])
#bind simple_bus as a child of bind-test-child2
- response = u_boot_console.run_command('bind {} {} simple_bus'.format(child2_uclass, child2_index, 'simple_bus'))
+ response = u_boot_console.run_command('bind {} {} simple_bus'.format(child2_uclass, child2_index))
#check that the child is there and its uclass/index pair is right
tree = u_boot_console.run_command('dm tree')
@@ -152,7 +152,7 @@ def test_bind_unbind_with_uclass(u_boot_console):
assert child_of_child2_line == ''
#bind simple_bus as a child of bind-test-child2
- response = u_boot_console.run_command('bind {} {} simple_bus'.format(child2_uclass, child2_index, 'simple_bus'))
+ response = u_boot_console.run_command('bind {} {} simple_bus'.format(child2_uclass, child2_index))
#check that the child is there and its uclass/index pair is right
tree = u_boot_console.run_command('dm tree')
@@ -165,7 +165,7 @@ def test_bind_unbind_with_uclass(u_boot_console):
assert child_of_child2_index == child2_index + 1
#unbind the child and check it has been removed
- response = u_boot_console.run_command('unbind {} {} simple_bus'.format(child2_uclass, child2_index, 'simple_bus'))
+ response = u_boot_console.run_command('unbind {} {} simple_bus'.format(child2_uclass, child2_index))
assert response == ''
tree = u_boot_console.run_command('dm tree')
@@ -176,7 +176,7 @@ def test_bind_unbind_with_uclass(u_boot_console):
#unbind the child again and check it doesn't change the tree
tree_old = u_boot_console.run_command('dm tree')
- response = u_boot_console.run_command('unbind {} {} simple_bus'.format(child2_uclass, child2_index, 'simple_bus'))
+ response = u_boot_console.run_command('unbind {} {} simple_bus'.format(child2_uclass, child2_index))
tree_new = u_boot_console.run_command('dm tree')
assert response == ''
diff --git a/test/py/tests/vboot_evil.py b/test/py/tests/vboot_evil.py
index 9825c21716..e2b0cd6546 100644
--- a/test/py/tests/vboot_evil.py
+++ b/test/py/tests/vboot_evil.py
@@ -482,4 +482,5 @@ if __name__ == '__main__':
print('valid attack names: [fakeroot, kernel@]')
sys.exit(1)
- add_evil_node(sys.argv[1:])
+ in_fname, out_fname, kernel_fname, attack = sys.argv[1:]
+ add_evil_node(in_fname, out_fname, kernel_fname, attack)
diff --git a/test/py/u_boot_console_base.py b/test/py/u_boot_console_base.py
index 384fd53c65..6214e206b1 100644
--- a/test/py/u_boot_console_base.py
+++ b/test/py/u_boot_console_base.py
@@ -115,6 +115,14 @@ class ConsoleBase(object):
self.at_prompt = False
self.at_prompt_logevt = None
+ def get_spawn(self):
+ # This is not called, ssubclass must define this.
+ # Return a value to avoid:
+ # u_boot_console_base.py:348:12: E1128: Assigning result of a function
+ # call, where the function returns None (assignment-from-none)
+ return u_boot_spawn.Spawn([])
+
+
def eval_bad_patterns(self):
self.bad_patterns = [pat[PAT_RE] for pat in bad_pattern_defs \
if self.disable_check_count[pat[PAT_ID]] == 0]
--
2.35.1.265.g69c8d7142f-goog
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 7/9] Makefile: Add a way to check for pylint errors
2022-02-11 20:23 [PATCH 0/9] Enable the pylint checker in CI Simon Glass
` (5 preceding siblings ...)
2022-02-11 20:23 ` [PATCH 6/9] test: " Simon Glass
@ 2022-02-11 20:23 ` Simon Glass
2022-03-02 18:55 ` Tom Rini
2022-02-11 20:23 ` [PATCH 8/9] buildman: Update default config to build for sandbox Simon Glass
2022-02-11 20:23 ` [PATCH 9/9] Azure/GitLab CI: Add the pylint checker Simon Glass
8 siblings, 1 reply; 19+ messages in thread
From: Simon Glass @ 2022-02-11 20:23 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Heinrich Schuchardt, Simon Glass, Marek Behún,
Masahiro Yamada
Add a new 'pylint_err' target which only reports errors, not warnings.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
Makefile | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 1ee7089c52..97e597ed43 100644
--- a/Makefile
+++ b/Makefile
@@ -521,7 +521,8 @@ env_h := include/generated/environment.h
no-dot-config-targets := clean clobber mrproper distclean \
help %docs check% coccicheck \
- ubootversion backup tests check qcheck tcheck pylint
+ ubootversion backup tests check qcheck tcheck pylint \
+ pylint_err
config-targets := 0
mixed-targets := 0
@@ -2259,7 +2260,7 @@ distclean: mrproper
@rm -f boards.cfg CHANGELOG
# See doc/develop/python_cq.rst
-PHONY += pylint
+PHONY += pylint pylint_err
PYLINT_BASE := scripts/pylint.base
PYLINT_CUR := pylint.cur
PYLINT_DIFF := pylint.diff
@@ -2301,6 +2302,11 @@ pylint:
echo "No pylint regressions"; \
fi
+# Check for errors only
+pylint_err:
+ $(Q)pylint -E -j 0 --ignore-imports=yes \
+ $(shell find tools test -name "*.py")
+
backup:
F=`basename $(srctree)` ; cd .. ; \
gtar --force-local -zcvf `LC_ALL=C date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F
--
2.35.1.265.g69c8d7142f-goog
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 8/9] buildman: Update default config to build for sandbox
2022-02-11 20:23 [PATCH 0/9] Enable the pylint checker in CI Simon Glass
` (6 preceding siblings ...)
2022-02-11 20:23 ` [PATCH 7/9] Makefile: Add a way to check for " Simon Glass
@ 2022-02-11 20:23 ` Simon Glass
2022-03-02 18:56 ` Tom Rini
2022-02-11 20:23 ` [PATCH 9/9] Azure/GitLab CI: Add the pylint checker Simon Glass
8 siblings, 1 reply; 19+ messages in thread
From: Simon Glass @ 2022-02-11 20:23 UTC (permalink / raw)
To: U-Boot Mailing List; +Cc: Tom Rini, Heinrich Schuchardt, Simon Glass
At present the default .buildman file written by buildman does not specify
a default toolchain. Add an 'other' line so this works correctly and
sandbox builds run as expected.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
tools/buildman/bsettings.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/tools/buildman/bsettings.py b/tools/buildman/bsettings.py
index 0b7208da37..e634bbb279 100644
--- a/tools/buildman/bsettings.py
+++ b/tools/buildman/bsettings.py
@@ -74,6 +74,7 @@ def CreateBuildmanConfigFile(config_fname):
print('''[toolchain]
# name = path
# e.g. x86 = /opt/gcc-4.6.3-nolibc/x86_64-linux
+other = /
[toolchain-prefix]
# name = path to prefix
--
2.35.1.265.g69c8d7142f-goog
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH 9/9] Azure/GitLab CI: Add the pylint checker
2022-02-11 20:23 [PATCH 0/9] Enable the pylint checker in CI Simon Glass
` (7 preceding siblings ...)
2022-02-11 20:23 ` [PATCH 8/9] buildman: Update default config to build for sandbox Simon Glass
@ 2022-02-11 20:23 ` Simon Glass
2022-03-02 18:56 ` Tom Rini
8 siblings, 1 reply; 19+ messages in thread
From: Simon Glass @ 2022-02-11 20:23 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Heinrich Schuchardt, Simon Glass, Alper Nebi Yasak,
Bin Meng, Daniel Schwierzeck
Add a check that new Python code does not regress the pylint score for
any module.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
.azure-pipelines.yml | 22 ++++++++++++++++++++++
.gitlab-ci.yml | 16 ++++++++++++++++
2 files changed, 38 insertions(+)
diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml
index 81ab77e134..2543c37811 100644
--- a/.azure-pipelines.yml
+++ b/.azure-pipelines.yml
@@ -201,6 +201,28 @@ stages:
export PATH=/opt/gcc-11.1.0-nolibc/arm-linux-gnueabi/bin:$PATH
test/nokia_rx51_test.sh
+ - job: pylint
+ displayName: Check for any pylint regressions
+ pool:
+ vmImage: $(ubuntu_vm)
+ container:
+ image: $(ci_runner_image)
+ options: $(container_option)
+ steps:
+ - script: |
+ cd ${WORK_DIR}
+ export USER=azure
+ pip install -r test/py/requirements.txt
+ pip install asteval pylint pyopenssl
+ export PATH=${PATH}:~/.local/bin
+ echo "[MASTER]" >> .pylintrc
+ echo "load-plugins=pylint.extensions.docparams" >> .pylintrc
+ export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl
+ ./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w --board sandbox_spl
+ pylint --version
+ export PYTHONPATH=${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt
+ make pylint_err
+
- stage: test_py
jobs:
- job: test_py
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 85b5296634..1f4be626ad 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -215,6 +215,22 @@ Run tests for Nokia RX-51 (aka N900):
- export PATH=/opt/gcc-11.1.0-nolibc/arm-linux-gnueabi/bin:$PATH;
test/nokia_rx51_test.sh
+# Check for any pylint regressions
+Run pylint:
+ stage: testsuites
+ script:
+ - pip install -r test/py/requirements.txt
+ - pip install asteval pylint pyopenssl
+ - export PATH=${PATH}:~/.local/bin
+ - echo "[MASTER]" >> .pylintrc
+ - echo "load-plugins=pylint.extensions.docparams" >> .pylintrc
+ - export UBOOT_TRAVIS_BUILD_DIR=/tmp/sandbox_spl
+ - ./tools/buildman/buildman -T0 -o ${UBOOT_TRAVIS_BUILD_DIR} -w
+ --board sandbox_spl
+ - pylint --version
+ - export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt"
+ - make pylint_err
+
# Test sandbox with test.py
sandbox test.py:
variables:
--
2.35.1.265.g69c8d7142f-goog
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH 1/9] patman: Correct pylint errors
2022-02-11 20:23 ` [PATCH 1/9] patman: Correct pylint errors Simon Glass
@ 2022-03-02 18:55 ` Tom Rini
0 siblings, 0 replies; 19+ messages in thread
From: Tom Rini @ 2022-03-02 18:55 UTC (permalink / raw)
To: Simon Glass; +Cc: U-Boot Mailing List, Heinrich Schuchardt
[-- Attachment #1: Type: text/plain, Size: 248 bytes --]
On Fri, Feb 11, 2022 at 01:23:18PM -0700, Simon Glass wrote:
> Fix pylint errors that can be fixed and mask those that seem to be
> incorrect.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
Applied to u-boot/next, thanks!
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 2/9] buildman: Correct pylint errors
2022-02-11 20:23 ` [PATCH 2/9] buildman: " Simon Glass
@ 2022-03-02 18:55 ` Tom Rini
0 siblings, 0 replies; 19+ messages in thread
From: Tom Rini @ 2022-03-02 18:55 UTC (permalink / raw)
To: Simon Glass; +Cc: U-Boot Mailing List, Heinrich Schuchardt
[-- Attachment #1: Type: text/plain, Size: 248 bytes --]
On Fri, Feb 11, 2022 at 01:23:19PM -0700, Simon Glass wrote:
> Fix pylint errors that can be fixed and mask those that seem to be
> incorrect.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
Applied to u-boot/next, thanks!
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 3/9] dtoc: Correct pylint errors
2022-02-11 20:23 ` [PATCH 3/9] dtoc: " Simon Glass
@ 2022-03-02 18:55 ` Tom Rini
0 siblings, 0 replies; 19+ messages in thread
From: Tom Rini @ 2022-03-02 18:55 UTC (permalink / raw)
To: Simon Glass; +Cc: U-Boot Mailing List, Heinrich Schuchardt, Walter Lozano
[-- Attachment #1: Type: text/plain, Size: 204 bytes --]
On Fri, Feb 11, 2022 at 01:23:20PM -0700, Simon Glass wrote:
> Fix pylint errors in this directory.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
Applied to u-boot/next, thanks!
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 4/9] binman: Correct pylint errors
2022-02-11 20:23 ` [PATCH 4/9] binman: " Simon Glass
@ 2022-03-02 18:55 ` Tom Rini
0 siblings, 0 replies; 19+ messages in thread
From: Tom Rini @ 2022-03-02 18:55 UTC (permalink / raw)
To: Simon Glass; +Cc: U-Boot Mailing List, Heinrich Schuchardt, Heiko Thiery
[-- Attachment #1: Type: text/plain, Size: 562 bytes --]
On Fri, Feb 11, 2022 at 01:23:21PM -0700, Simon Glass wrote:
> Fix pylint errors that can be fixed and mask those that seem to be
> incorrect.
>
> A complication with binman is that it tries to avoid importing libfdt
> (or anything that imports it) unless needed, so that things like help
> still work if it is missing.
>
> Note that two tests are duplicated in binman and two others have
> duplicate names, so both of these issues are fixed also.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
Applied to u-boot/next, thanks!
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 5/9] moveconfig: Correct pylint errors
2022-02-11 20:23 ` [PATCH 5/9] moveconfig: " Simon Glass
@ 2022-03-02 18:55 ` Tom Rini
0 siblings, 0 replies; 19+ messages in thread
From: Tom Rini @ 2022-03-02 18:55 UTC (permalink / raw)
To: Simon Glass
Cc: U-Boot Mailing List, Heinrich Schuchardt, Alper Nebi Yasak,
Trevor Woerner
[-- Attachment #1: Type: text/plain, Size: 284 bytes --]
On Fri, Feb 11, 2022 at 01:23:22PM -0700, Simon Glass wrote:
> Fix two pylint errors in this file.
>
> Note ACTION_SPL_NOT_EXIST is not defined so the dead code can be removed.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
Applied to u-boot/next, thanks!
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 6/9] test: Correct pylint errors
2022-02-11 20:23 ` [PATCH 6/9] test: " Simon Glass
@ 2022-03-02 18:55 ` Tom Rini
0 siblings, 0 replies; 19+ messages in thread
From: Tom Rini @ 2022-03-02 18:55 UTC (permalink / raw)
To: Simon Glass
Cc: U-Boot Mailing List, Heinrich Schuchardt, Arie Haenel,
Bruce Monroe, Igor Opaniuk, Julien Lenoir, Patrice Chotard
[-- Attachment #1: Type: text/plain, Size: 306 bytes --]
On Fri, Feb 11, 2022 at 01:23:23PM -0700, Simon Glass wrote:
> Fix pylint errors in all test.
>
> This requires adding a get_spawn() method to the ConsoleBase base, so that
> its subclass is happy.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
Applied to u-boot/next, thanks!
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 7/9] Makefile: Add a way to check for pylint errors
2022-02-11 20:23 ` [PATCH 7/9] Makefile: Add a way to check for " Simon Glass
@ 2022-03-02 18:55 ` Tom Rini
0 siblings, 0 replies; 19+ messages in thread
From: Tom Rini @ 2022-03-02 18:55 UTC (permalink / raw)
To: Simon Glass
Cc: U-Boot Mailing List, Heinrich Schuchardt, Marek Behún,
Masahiro Yamada
[-- Attachment #1: Type: text/plain, Size: 238 bytes --]
On Fri, Feb 11, 2022 at 01:23:24PM -0700, Simon Glass wrote:
> Add a new 'pylint_err' target which only reports errors, not warnings.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
Applied to u-boot/next, thanks!
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 8/9] buildman: Update default config to build for sandbox
2022-02-11 20:23 ` [PATCH 8/9] buildman: Update default config to build for sandbox Simon Glass
@ 2022-03-02 18:56 ` Tom Rini
0 siblings, 0 replies; 19+ messages in thread
From: Tom Rini @ 2022-03-02 18:56 UTC (permalink / raw)
To: Simon Glass; +Cc: U-Boot Mailing List, Heinrich Schuchardt
[-- Attachment #1: Type: text/plain, Size: 349 bytes --]
On Fri, Feb 11, 2022 at 01:23:25PM -0700, Simon Glass wrote:
> At present the default .buildman file written by buildman does not specify
> a default toolchain. Add an 'other' line so this works correctly and
> sandbox builds run as expected.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
Applied to u-boot/next, thanks!
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH 9/9] Azure/GitLab CI: Add the pylint checker
2022-02-11 20:23 ` [PATCH 9/9] Azure/GitLab CI: Add the pylint checker Simon Glass
@ 2022-03-02 18:56 ` Tom Rini
0 siblings, 0 replies; 19+ messages in thread
From: Tom Rini @ 2022-03-02 18:56 UTC (permalink / raw)
To: Simon Glass
Cc: U-Boot Mailing List, Heinrich Schuchardt, Alper Nebi Yasak,
Bin Meng, Daniel Schwierzeck
[-- Attachment #1: Type: text/plain, Size: 253 bytes --]
On Fri, Feb 11, 2022 at 01:23:26PM -0700, Simon Glass wrote:
> Add a check that new Python code does not regress the pylint score for
> any module.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
Applied to u-boot/next, thanks!
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2022-03-02 18:57 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-11 20:23 [PATCH 0/9] Enable the pylint checker in CI Simon Glass
2022-02-11 20:23 ` [PATCH 1/9] patman: Correct pylint errors Simon Glass
2022-03-02 18:55 ` Tom Rini
2022-02-11 20:23 ` [PATCH 2/9] buildman: " Simon Glass
2022-03-02 18:55 ` Tom Rini
2022-02-11 20:23 ` [PATCH 3/9] dtoc: " Simon Glass
2022-03-02 18:55 ` Tom Rini
2022-02-11 20:23 ` [PATCH 4/9] binman: " Simon Glass
2022-03-02 18:55 ` Tom Rini
2022-02-11 20:23 ` [PATCH 5/9] moveconfig: " Simon Glass
2022-03-02 18:55 ` Tom Rini
2022-02-11 20:23 ` [PATCH 6/9] test: " Simon Glass
2022-03-02 18:55 ` Tom Rini
2022-02-11 20:23 ` [PATCH 7/9] Makefile: Add a way to check for " Simon Glass
2022-03-02 18:55 ` Tom Rini
2022-02-11 20:23 ` [PATCH 8/9] buildman: Update default config to build for sandbox Simon Glass
2022-03-02 18:56 ` Tom Rini
2022-02-11 20:23 ` [PATCH 9/9] Azure/GitLab CI: Add the pylint checker Simon Glass
2022-03-02 18:56 ` Tom Rini
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.