summaryrefslogtreecommitdiff
path: root/tools/buildman
diff options
context:
space:
mode:
Diffstat (limited to 'tools/buildman')
-rw-r--r--tools/buildman/boards.py4
-rw-r--r--tools/buildman/builder.py19
-rw-r--r--tools/buildman/builderthread.py33
-rw-r--r--tools/buildman/control.py2
-rw-r--r--tools/buildman/func_test.py22
-rwxr-xr-xtools/buildman/main.py3
-rw-r--r--tools/buildman/requirements.txt7
-rw-r--r--tools/buildman/test.py1
-rw-r--r--tools/buildman/toolchain.py2
9 files changed, 46 insertions, 47 deletions
diff --git a/tools/buildman/boards.py b/tools/buildman/boards.py
index e7aa0d85a58..2fe43c3fc89 100644
--- a/tools/buildman/boards.py
+++ b/tools/buildman/boards.py
@@ -251,9 +251,9 @@ class KconfigScanner:
'-undef',
'-x', 'assembler-with-cpp',
defconfig]
- result = command.run_pipe([cmd], capture=True, capture_stderr=True)
+ stdout = command.output(*cmd, capture_stderr=True)
temp = tempfile.NamedTemporaryFile(prefix='buildman-')
- tools.write_file(temp.name, result.stdout, False)
+ tools.write_file(temp.name, stdout, False)
fname = temp.name
tout.info(f'Processing #include to produce {defconfig}')
else:
diff --git a/tools/buildman/builder.py b/tools/buildman/builder.py
index cbf1345281b..4bea0a02b78 100644
--- a/tools/buildman/builder.py
+++ b/tools/buildman/builder.py
@@ -19,8 +19,8 @@ import time
from buildman import builderthread
from buildman import toolchain
-from patman import gitutil
from u_boot_pylib import command
+from u_boot_pylib import gitutil
from u_boot_pylib import terminal
from u_boot_pylib import tools
from u_boot_pylib.terminal import tprint
@@ -510,7 +510,7 @@ class Builder:
stage: Stage that we are at (mrproper, config, oldconfig, build)
cwd: Directory where make should be run
args: Arguments to pass to make
- kwargs: Arguments to pass to command.run_pipe()
+ kwargs: Arguments to pass to command.run_one()
"""
def check_output(stream, data):
@@ -531,11 +531,12 @@ class Builder:
return False
self._restarting_config = False
- self._terminated = False
+ self._terminated = False
cmd = [self.gnu_make] + list(args)
- result = command.run_pipe([cmd], capture=True, capture_stderr=True,
- cwd=cwd, raise_on_error=False, infile='/dev/null',
- output_func=check_output, **kwargs)
+ result = command.run_one(*cmd, capture=True, capture_stderr=True,
+ cwd=cwd, raise_on_error=False,
+ infile='/dev/null', output_func=check_output,
+ **kwargs)
if self._terminated:
# Try to be helpful
@@ -1095,14 +1096,13 @@ class Builder:
diff = result[name]
if name.startswith('_'):
continue
- if diff != 0:
- color = self.col.RED if diff > 0 else self.col.GREEN
+ colour = self.col.RED if diff > 0 else self.col.GREEN
msg = ' %s %+d' % (name, diff)
if not printed_target:
tprint('%10s %-15s:' % ('', result['_target']),
newline=False)
printed_target = True
- tprint(msg, colour=color, newline=False)
+ tprint(msg, colour=colour, newline=False)
if printed_target:
tprint()
if show_bloat:
@@ -1353,6 +1353,7 @@ class Builder:
for line in lines:
if not line:
continue
+ col = None
if line[0] == '+':
col = self.col.GREEN
elif line[0] == '-':
diff --git a/tools/buildman/builderthread.py b/tools/buildman/builderthread.py
index 29e6cf32af1..b8578d5b97b 100644
--- a/tools/buildman/builderthread.py
+++ b/tools/buildman/builderthread.py
@@ -17,8 +17,8 @@ import sys
import threading
from buildman import cfgutil
-from patman import gitutil
from u_boot_pylib import command
+from u_boot_pylib import gitutil
from u_boot_pylib import tools
RETURN_CODE_RETRY = -1
@@ -179,13 +179,12 @@ class BuilderThread(threading.Thread):
cwd (str): Working directory to set, or None to leave it alone
*args (list of str): Arguments to pass to 'make'
**kwargs (dict): A list of keyword arguments to pass to
- command.run_pipe()
+ command.run_one()
Returns:
CommandResult object
"""
- return self.builder.do_make(commit, brd, stage, cwd, *args,
- **kwargs)
+ return self.builder.do_make(commit, brd, stage, cwd, *args, **kwargs)
def _build_args(self, brd, out_dir, out_rel_dir, work_dir, commit_upto):
"""Set up arguments to the args list based on the settings
@@ -588,9 +587,10 @@ class BuilderThread(threading.Thread):
lines = []
for fname in BASE_ELF_FILENAMES:
cmd = [f'{self.toolchain.cross}nm', '--size-sort', fname]
- nm_result = command.run_pipe([cmd], capture=True,
- capture_stderr=True, cwd=result.out_dir,
- raise_on_error=False, env=env)
+ nm_result = command.run_one(*cmd, capture=True,
+ capture_stderr=True,
+ cwd=result.out_dir,
+ raise_on_error=False, env=env)
if nm_result.stdout:
nm_fname = self.builder.get_func_sizes_file(
result.commit_upto, result.brd.target, fname)
@@ -598,9 +598,10 @@ class BuilderThread(threading.Thread):
print(nm_result.stdout, end=' ', file=outf)
cmd = [f'{self.toolchain.cross}objdump', '-h', fname]
- dump_result = command.run_pipe([cmd], capture=True,
- capture_stderr=True, cwd=result.out_dir,
- raise_on_error=False, env=env)
+ dump_result = command.run_one(*cmd, capture=True,
+ capture_stderr=True,
+ cwd=result.out_dir,
+ raise_on_error=False, env=env)
rodata_size = ''
if dump_result.stdout:
objdump = self.builder.get_objdump_file(result.commit_upto,
@@ -613,9 +614,10 @@ class BuilderThread(threading.Thread):
rodata_size = fields[2]
cmd = [f'{self.toolchain.cross}size', fname]
- size_result = command.run_pipe([cmd], capture=True,
- capture_stderr=True, cwd=result.out_dir,
- raise_on_error=False, env=env)
+ size_result = command.run_one(*cmd, capture=True,
+ capture_stderr=True,
+ cwd=result.out_dir,
+ raise_on_error=False, env=env)
if size_result.stdout:
lines.append(size_result.stdout.splitlines()[1] + ' ' +
rodata_size)
@@ -624,9 +626,8 @@ class BuilderThread(threading.Thread):
cmd = [f'{self.toolchain.cross}objcopy', '-O', 'binary',
'-j', '.rodata.default_environment',
'env/built-in.o', 'uboot.env']
- command.run_pipe([cmd], capture=True,
- capture_stderr=True, cwd=result.out_dir,
- raise_on_error=False, env=env)
+ command.run_one(*cmd, capture=True, capture_stderr=True,
+ cwd=result.out_dir, raise_on_error=False, env=env)
if not work_in_output:
copy_files(result.out_dir, build_dir, '', ['uboot.env'])
diff --git a/tools/buildman/control.py b/tools/buildman/control.py
index 55d4d770c5c..5109b1cd5ce 100644
--- a/tools/buildman/control.py
+++ b/tools/buildman/control.py
@@ -20,9 +20,9 @@ from buildman import bsettings
from buildman import cfgutil
from buildman import toolchain
from buildman.builder import Builder
-from patman import gitutil
from patman import patchstream
from u_boot_pylib import command
+from u_boot_pylib import gitutil
from u_boot_pylib import terminal
from u_boot_pylib import tools
from u_boot_pylib.terminal import print_clear, tprint
diff --git a/tools/buildman/func_test.py b/tools/buildman/func_test.py
index 4e12c671a3d..b45eb95a1e6 100644
--- a/tools/buildman/func_test.py
+++ b/tools/buildman/func_test.py
@@ -18,8 +18,8 @@ from buildman import bsettings
from buildman import cmdline
from buildman import control
from buildman import toolchain
-from patman import gitutil
from u_boot_pylib import command
+from u_boot_pylib import gitutil
from u_boot_pylib import terminal
from u_boot_pylib import test_util
from u_boot_pylib import tools
@@ -187,7 +187,7 @@ class TestFunctional(unittest.TestCase):
self._git_dir = os.path.join(self._base_dir, 'src')
self._buildman_pathname = sys.argv[0]
self._buildman_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
- command.test_result = self._HandleCommand
+ command.TEST_RESULT = self._HandleCommand
bsettings.setup(None)
bsettings.add_file(settings_data)
self.setupToolchains()
@@ -232,8 +232,8 @@ class TestFunctional(unittest.TestCase):
self._toolchains.Add('gcc', test=False)
def _RunBuildman(self, *args):
- return command.run_pipe([[self._buildman_pathname] + list(args)],
- capture=True, capture_stderr=True)
+ all_args = [self._buildman_pathname] + list(args)
+ return command.run_one(*all_args, capture=True, capture_stderr=True)
def _RunControl(self, *args, brds=False, clean_dir=False,
test_thread_exceptions=False, get_builder=True):
@@ -266,7 +266,7 @@ class TestFunctional(unittest.TestCase):
return result
def testFullHelp(self):
- command.test_result = None
+ command.TEST_RESULT = None
result = self._RunBuildman('-H')
help_file = os.path.join(self._buildman_dir, 'README.rst')
# Remove possible extraneous strings
@@ -277,7 +277,7 @@ class TestFunctional(unittest.TestCase):
self.assertEqual(0, result.return_code)
def testHelp(self):
- command.test_result = None
+ command.TEST_RESULT = None
result = self._RunBuildman('-h')
help_file = os.path.join(self._buildman_dir, 'README.rst')
self.assertTrue(len(result.stdout) > 1000)
@@ -286,13 +286,13 @@ class TestFunctional(unittest.TestCase):
def testGitSetup(self):
"""Test gitutils.Setup(), from outside the module itself"""
- command.test_result = command.CommandResult(return_code=1)
+ command.TEST_RESULT = command.CommandResult(return_code=1)
gitutil.setup()
- self.assertEqual(gitutil.use_no_decorate, False)
+ self.assertEqual(gitutil.USE_NO_DECORATE, False)
- command.test_result = command.CommandResult(return_code=0)
+ command.TEST_RESULT = command.CommandResult(return_code=0)
gitutil.setup()
- self.assertEqual(gitutil.use_no_decorate, True)
+ self.assertEqual(gitutil.USE_NO_DECORATE, True)
def _HandleCommandGitLog(self, args):
if args[-1] == '--':
@@ -445,7 +445,7 @@ class TestFunctional(unittest.TestCase):
stage: Stage that we are at (mrproper, config, build)
cwd: Directory where make should be run
args: Arguments to pass to make
- kwargs: Arguments to pass to command.run_pipe()
+ kwargs: Arguments to pass to command.run_one()
"""
self._make_calls += 1
out_dir = ''
diff --git a/tools/buildman/main.py b/tools/buildman/main.py
index a948f36d9c0..72571b226d9 100755
--- a/tools/buildman/main.py
+++ b/tools/buildman/main.py
@@ -50,8 +50,7 @@ def run_tests(skip_net_tests, debug, verbose, args):
# 'entry' module.
result = test_util.run_test_suites(
'buildman', debug, verbose, False, args.threads, test_name, [],
- [test.TestBuild, func_test.TestFunctional,
- 'buildman.toolchain', 'patman.gitutil'])
+ [test.TestBuild, func_test.TestFunctional, 'buildman.toolchain'])
return (0 if result.wasSuccessful() else 1)
diff --git a/tools/buildman/requirements.txt b/tools/buildman/requirements.txt
index 052d0ed5c6f..d48650cd1e5 100644
--- a/tools/buildman/requirements.txt
+++ b/tools/buildman/requirements.txt
@@ -1,5 +1,2 @@
-coverage==6.2
-jsonschema==4.17.3
-pycryptodome==3.20
-pyyaml==6.0
-yamllint==1.26.3
+filelock==3.0.12
+importlib_resources==6.5.2
diff --git a/tools/buildman/test.py b/tools/buildman/test.py
index 385a34e5254..c5feb74a105 100644
--- a/tools/buildman/test.py
+++ b/tools/buildman/test.py
@@ -836,6 +836,7 @@ class TestBuild(unittest.TestCase):
tmpdir = self.base_dir
with (patch('time.time', side_effect=self.get_time),
+ patch('time.perf_counter', side_effect=self.get_time),
patch('time.monotonic', side_effect=self.get_time),
patch('time.sleep', side_effect=self.inc_time),
patch('os.kill', side_effect=self.kill)):
diff --git a/tools/buildman/toolchain.py b/tools/buildman/toolchain.py
index 958f36f9f61..5d051e005da 100644
--- a/tools/buildman/toolchain.py
+++ b/tools/buildman/toolchain.py
@@ -100,7 +100,7 @@ class Toolchain:
else:
self.priority = priority
if test:
- result = command.run_pipe([cmd], capture=True, env=env,
+ result = command.run_one(*cmd, capture=True, env=env,
raise_on_error=False)
self.ok = result.return_code == 0
if verbose: