aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorSimon Glass2019-07-08 13:18:48 -0600
committerSimon Glass2019-07-23 20:27:58 -0700
commitee0c9a739f219c80b8a1f1abc217338c8c2087cc (patch)
treea0ae27878aa978dc0a08b616d9d58650f6a07191 /tools
parent2569e10f5b56649aa13e806da39a6238fdb53cab (diff)
binman: Allow verbosity control when running tests
At present the -v flag is ignored with tests, so that (for example) -v2 does not have any effect. Update binman to pass this flag through to tests so that they work just like running binman normally, except in a few special cases where we are actually testing behaviour with different levels of verbosity. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools')
-rwxr-xr-xtools/binman/binman.py8
-rw-r--r--tools/binman/ftest.py17
2 files changed, 22 insertions, 3 deletions
diff --git a/tools/binman/binman.py b/tools/binman/binman.py
index bab98826dc6..7c1dcfb65fc 100755
--- a/tools/binman/binman.py
+++ b/tools/binman/binman.py
@@ -46,11 +46,12 @@ except:
import control
import test_util
-def RunTests(debug, processes, args):
+def RunTests(debug, verbosity, processes, args):
"""Run the functional tests and any embedded doctests
Args:
debug: True to enable debugging, which shows a full stack trace on error
+ verbosity: Verbosity level to use
args: List of positional args provided to binman. This can hold a test
name to execute (as in 'binman -t testSections', for example)
processes: Number of processes to use to run tests (None=same as #CPUs)
@@ -71,6 +72,8 @@ def RunTests(debug, processes, args):
sys.argv = [sys.argv[0]]
if debug:
sys.argv.append('-D')
+ if verbosity:
+ sys.argv.append('-v%d' % verbosity)
# Run the entry tests first ,since these need to be the first to import the
# 'entry' module.
@@ -153,7 +156,8 @@ def RunBinman(options, args):
sys.tracebacklimit = 0
if options.test:
- ret_code = RunTests(options.debug, options.processes, args[1:])
+ ret_code = RunTests(options.debug, options.verbosity, options.processes,
+ args[1:])
elif options.test_coverage:
RunTestCoverage()
diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py
index b1780854cfe..f5e0b9b9742 100644
--- a/tools/binman/ftest.py
+++ b/tools/binman/ftest.py
@@ -153,6 +153,19 @@ class TestFunctional(unittest.TestCase):
TestFunctional._MakeInputFile('spl/u-boot-spl.dtb', U_BOOT_SPL_DTB_DATA)
TestFunctional._MakeInputFile('tpl/u-boot-tpl.dtb', U_BOOT_TPL_DTB_DATA)
+ def _GetVerbosity(self):
+ """Check if verbosity should be enabled
+
+ Returns:
+ list containing either:
+ - Verbosity flag (e.g. '-v2') if it is present on the cmd line
+ - nothing if the flag is not present
+ """
+ for arg in sys.argv[1:]:
+ if arg.startswith('-v'):
+ return [arg]
+ return []
+
def _RunBinman(self, *args, **kwargs):
"""Run binman using the command line
@@ -213,6 +226,8 @@ class TestFunctional(unittest.TestCase):
args.append('--fake-dtb')
if verbosity is not None:
args.append('-v%d' % verbosity)
+ else:
+ args += self._GetVerbosity()
if entry_args:
for arg, value in entry_args.items():
args.append('-a%s=%s' % (arg, value))
@@ -1471,7 +1486,7 @@ class TestFunctional(unittest.TestCase):
expected = 'Skipping images: image1'
# We should only get the expected message in verbose mode
- for verbosity in (None, 2):
+ for verbosity in (0, 2):
with test_util.capture_sys_output() as (stdout, stderr):
retcode = self._DoTestFile('006_dual_image.dts',
verbosity=verbosity,