binman: Allow a single test to be executed
Provide an easy way to execute a single binman test by specifying it on the command line. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
258fb0e677
commit
084059a31f
@ -27,8 +27,14 @@ import cmdline
|
||||
import command
|
||||
import control
|
||||
|
||||
def RunTests(debug):
|
||||
"""Run the functional tests and any embedded doctests"""
|
||||
def RunTests(debug, args):
|
||||
"""Run the functional tests and any embedded doctests
|
||||
|
||||
Args:
|
||||
debug: True to enable debugging, which shows a full stack trace on error
|
||||
args: List of positional args provided to binman. This can hold a test
|
||||
name to execute (as in 'binman -t testSections', for example)
|
||||
"""
|
||||
import elf_test
|
||||
import entry_test
|
||||
import fdt_test
|
||||
@ -50,9 +56,16 @@ def RunTests(debug):
|
||||
# 'entry' module.
|
||||
suite = unittest.TestLoader().loadTestsFromTestCase(entry_test.TestEntry)
|
||||
suite.run(result)
|
||||
test_name = args and args[0] or None
|
||||
for module in (ftest.TestFunctional, fdt_test.TestFdt, elf_test.TestElf,
|
||||
image_test.TestImage):
|
||||
suite = unittest.TestLoader().loadTestsFromTestCase(module)
|
||||
if test_name:
|
||||
try:
|
||||
suite = unittest.TestLoader().loadTestsFromName(args[0], module)
|
||||
except AttributeError:
|
||||
continue
|
||||
else:
|
||||
suite = unittest.TestLoader().loadTestsFromTestCase(module)
|
||||
suite.run(result)
|
||||
|
||||
print result
|
||||
@ -111,7 +124,7 @@ def RunBinman(options, args):
|
||||
sys.tracebacklimit = 0
|
||||
|
||||
if options.test:
|
||||
ret_code = RunTests(options.debug)
|
||||
ret_code = RunTests(options.debug, args[1:])
|
||||
|
||||
elif options.test_coverage:
|
||||
RunTestCoverage()
|
||||
|
Loading…
Reference in New Issue
Block a user