summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2022-01-22 15:07:28 +0300
committerTom Rini <trini@konsulko.com>2022-02-09 07:07:59 +0300
commit1d0f30e936d2fabbbaa34c3904369252d54a56cc (patch)
treee8436bb0186b0acff50dc4d77879509e65dbc950 /tools
parentce3e75dc5977e6500669fd9418405ddd4207a164 (diff)
downloadu-boot-1d0f30e936d2fabbbaa34c3904369252d54a56cc.tar.xz
patman: Update test_util to run doc tests
At present this function does not run the doctests. Allow the caller to pass these modules in as strings. Update patman to use this. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools')
-rwxr-xr-xtools/dtoc/main.py2
-rwxr-xr-xtools/patman/main.py20
-rw-r--r--tools/patman/test_util.py17
3 files changed, 16 insertions, 23 deletions
diff --git a/tools/dtoc/main.py b/tools/dtoc/main.py
index 6f9b526bd7..276cfadf5a 100755
--- a/tools/dtoc/main.py
+++ b/tools/dtoc/main.py
@@ -58,7 +58,7 @@ def run_tests(processes, args):
test_util.RunTestSuites(
result, debug=True, verbosity=1, test_preserve_dirs=False,
processes=processes, test_name=test_name, toolpath=[],
- test_class_list=[test_dtoc.TestDtoc,test_src_scan.TestSrcScan])
+ class_and_module_list=[test_dtoc.TestDtoc,test_src_scan.TestSrcScan])
return test_util.ReportResult('binman', test_name, result)
diff --git a/tools/patman/main.py b/tools/patman/main.py
index e5be28e331..c01ae36e9f 100755
--- a/tools/patman/main.py
+++ b/tools/patman/main.py
@@ -134,23 +134,11 @@ if args.cmd == 'test':
import doctest
from patman import func_test
- sys.argv = [sys.argv[0]]
result = unittest.TestResult()
- suite = unittest.TestSuite()
- loader = unittest.TestLoader()
- for module in (test_checkpatch.TestPatch, func_test.TestFunctional):
- if args.testname:
- try:
- suite.addTests(loader.loadTestsFromName(args.testname, module))
- except AttributeError:
- continue
- else:
- suite.addTests(loader.loadTestsFromTestCase(module))
- suite.run(result)
-
- for module in ['gitutil', 'settings', 'terminal']:
- suite = doctest.DocTestSuite(module)
- suite.run(result)
+ test_util.RunTestSuites(
+ result, False, False, False, None, None, None,
+ [test_checkpatch.TestPatch, func_test.TestFunctional,
+ 'gitutil', 'settings', 'terminal'])
sys.exit(test_util.ReportResult('patman', args.testname, result))
diff --git a/tools/patman/test_util.py b/tools/patman/test_util.py
index 4e261755dc..9654e7319c 100644
--- a/tools/patman/test_util.py
+++ b/tools/patman/test_util.py
@@ -4,6 +4,7 @@
#
from contextlib import contextmanager
+import doctest
import glob
import multiprocessing
import os
@@ -139,7 +140,7 @@ def ReportResult(toolname:str, test_name: str, result: unittest.TestResult):
def RunTestSuites(result, debug, verbosity, test_preserve_dirs, processes,
- test_name, toolpath, test_class_list):
+ test_name, toolpath, class_and_module_list):
"""Run a series of test suites and collect the results
Args:
@@ -154,11 +155,13 @@ def RunTestSuites(result, debug, verbosity, test_preserve_dirs, processes,
processes: Number of processes to use to run tests (None=same as #CPUs)
test_name: Name of test to run, or None for all
toolpath: List of paths to use for tools
- test_class_list: List of test classes to run
+ class_and_module_list: List of test classes (type class) and module
+ names (type str) to run
"""
- for module in []:
- suite = doctest.DocTestSuite(module)
- suite.run(result)
+ for module in class_and_module_list:
+ if isinstance(module, str) and (not test_name or test_name == module):
+ suite = doctest.DocTestSuite(module)
+ suite.run(result)
sys.argv = [sys.argv[0]]
if debug:
@@ -171,7 +174,9 @@ def RunTestSuites(result, debug, verbosity, test_preserve_dirs, processes,
suite = unittest.TestSuite()
loader = unittest.TestLoader()
- for module in test_class_list:
+ for module in class_and_module_list:
+ if isinstance(module, str):
+ continue
# Test the test module about our arguments, if it is interested
if hasattr(module, 'setup_test_args'):
setup_test_args = getattr(module, 'setup_test_args')