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
This commit is contained in:
Matthew Crymble 2021-01-15 16:47:16 -06:00 committed by Aaron Rossetto
parent 7e2edf7057
commit 7b86a47bf7
2 changed files with 5 additions and 2 deletions

View file

@ -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}"

View file

@ -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)