From 7b86a47bf7143df1cac252602e3c9ddbdd871d90 Mon Sep 17 00:00:00 2001 From: Matthew Crymble Date: Fri, 15 Jan 2021 16:47:16 -0600 Subject: devtest: allow extra device arguments when running devtests This allows running devtests for a single device instead of all connected devices or selecting a specific network interface. Set the additional device arguments with the EXTRA_DEV_ARGS variable. This can be set as an environment variable or on the command line. For example: make test_x3x0 EXTRA_DEV_ARGS=addr=192.168.30.2 --- host/tests/devtest/CMakeLists.txt | 2 +- host/tests/devtest/run_testsuite.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/host/tests/devtest/CMakeLists.txt b/host/tests/devtest/CMakeLists.txt index 429d1a731..a8a7f51ef 100644 --- a/host/tests/devtest/CMakeLists.txt +++ b/host/tests/devtest/CMakeLists.txt @@ -26,7 +26,7 @@ macro(ADD_DEVTEST pattern filter devtype) ${RUNTIME_PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/run_testsuite.py "--src-dir" "${CMAKE_CURRENT_SOURCE_DIR}" "--devtest-pattern" "${pattern}" - "--args" "type=${filter}" + "--args" "$(EXTRA_DEV_ARGS),type=${filter}" "--build-type" "${CMAKE_BUILD_TYPE}" "--build-dir" "${CMAKE_BINARY_DIR}" "--python-interp" "${RUNTIME_PYTHON_EXECUTABLE}" diff --git a/host/tests/devtest/run_testsuite.py b/host/tests/devtest/run_testsuite.py index a5ece8ac6..4e45b112e 100755 --- a/host/tests/devtest/run_testsuite.py +++ b/host/tests/devtest/run_testsuite.py @@ -90,6 +90,7 @@ def main(): env = setup_env(args) devtest_pattern = "devtest_{p}.py".format(p=args.devtest_pattern) uhd_args_list = get_usrp_list(args.args, env) + arg_dict = dict(arg.split('=') for arg in args.args.strip(',').split(',')) if len(uhd_args_list) == 0: print("No devices found. Exiting.") exit(1) @@ -103,13 +104,15 @@ def main(): print('--- This will take some time. Better grab a cup of tea.') sys.stdout.flush() args_str = uhd_info['args'] - env['_UHD_TEST_ARGS_STR'] = args_str logfile_name = "log{}.log".format( args_str.replace('type=', '_').replace('serial=', '_').replace(',', '') ) resultsfile_name = "results{}.log".format( args_str.replace('type=', '_').replace('serial=', '_').replace(',', '') ) + if 'addr' in arg_dict: + args_str += ',addr={}'.format(arg_dict['addr']) + env['_UHD_TEST_ARGS_STR'] = args_str env['_UHD_TEST_LOGFILE'] = os.path.join(args.log_dir, logfile_name) env['_UHD_TEST_RESULTSFILE'] = os.path.join(args.log_dir, resultsfile_name) env['_UHD_TEST_LOG_LEVEL'] = str(logging.INFO) -- cgit v1.2.3