dtoc: Hide the test options unless test code is available
It doesn't make much sense to expose tests when dtoc is running
outside of the U-Boot git checkout. Hide the option in this case.
Signed-off-by: Simon Glass <sjg@chromium.org>
diff --git a/tools/dtoc/main.py b/tools/dtoc/main.py
index fc9207d..9152166 100755
--- a/tools/dtoc/main.py
+++ b/tools/dtoc/main.py
@@ -23,6 +23,7 @@
from argparse import ArgumentParser
import os
+import pathlib
import sys
# Bring in the patman libraries
@@ -37,6 +38,9 @@
from dtoc import dtb_platdata
from u_boot_pylib import test_util
+DTOC_DIR = pathlib.Path(__file__).parent
+HAVE_TESTS = (DTOC_DIR / 'test_dtoc.py').exists()
+
def run_tests(processes, args):
"""Run all the test we have for dtoc
@@ -93,19 +97,22 @@
help='set phase of U-Boot this invocation is for (spl/tpl)')
parser.add_argument('-P', '--processes', type=int,
help='set number of processes to use for running tests')
-parser.add_argument('-t', '--test', action='store_true', dest='test',
- default=False, help='run tests')
-parser.add_argument('-T', '--test-coverage', action='store_true',
- default=False, help='run tests and check for 100%% coverage')
+if HAVE_TESTS:
+ parser.add_argument('-t', '--test', action='store_true', dest='test',
+ default=False, help='run tests')
+ parser.add_argument(
+ '-T', '--test-coverage', action='store_true',
+ default=False, help='run tests and check for 100%% coverage')
+
parser.add_argument('files', nargs='*')
args = parser.parse_args()
# Run our meagre tests
-if args.test:
+if HAVE_TESTS and args.test:
ret_code = run_tests(args.processes, args)
sys.exit(ret_code)
-elif args.test_coverage:
+elif HAVE_TESTS and args.test_coverage:
RunTestCoverage()
else: