mirror of
https://github.com/saymrwulf/uhd.git
synced 2026-05-16 21:10:10 +00:00
76 lines
2.4 KiB
Python
76 lines
2.4 KiB
Python
#!/usr/bin/env python3
|
|
#
|
|
# Copyright 2018 Ettus Research, a National Instruments Company
|
|
#
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
#
|
|
""" Test Python API """
|
|
|
|
import os
|
|
from uhd_test_base import shell_application
|
|
from uhd_test_base import uhd_test_case
|
|
try:
|
|
import uhd
|
|
except ImportError:
|
|
uhd = None
|
|
|
|
# For what we're doing here, ruamel.yaml and yaml are compatible, and we'll use
|
|
# whatever we can find
|
|
try:
|
|
from ruamel import yaml
|
|
except:
|
|
import yaml
|
|
|
|
|
|
class uhd_python_api_test(uhd_test_case):
|
|
""" Run multi_usrp_test """
|
|
def test_api(self):
|
|
"""
|
|
Run test and report results.
|
|
"""
|
|
if uhd is None:
|
|
print("UHD module not found -- checking for Python API")
|
|
config_info_app = shell_application('uhd_config_info')
|
|
config_info_app.run(['--enabled-components'])
|
|
if "Python API" in config_info_app.stdout:
|
|
raise RuntimeError("Python API enabled, but cannot load uhd module!")
|
|
print("Skipping test, Python API not installed.")
|
|
self.report_result("python_api_tester", 'status', 'Skipped')
|
|
return
|
|
devtest_src_dir = os.getenv('_UHD_DEVTEST_SRC_DIR', '')
|
|
multi_usrp_test_path = \
|
|
os.path.join(devtest_src_dir, 'multi_usrp_test.py')
|
|
args = [
|
|
self.create_addr_args_str(),
|
|
]
|
|
app = shell_application(multi_usrp_test_path)
|
|
app.run(args)
|
|
run_results = {
|
|
'return_code': app.returncode,
|
|
'passed': False
|
|
}
|
|
run_results['passed'] = all([
|
|
app.returncode == 0,
|
|
])
|
|
self.log.info('STDERR Output:')
|
|
self.log.info(str(app.stderr))
|
|
for key in sorted(run_results):
|
|
self.log.info('%s = %s', str(key), str(run_results[key]))
|
|
self.report_result(
|
|
"python_api_tester",
|
|
key, run_results[key]
|
|
)
|
|
if 'passed' in run_results:
|
|
self.report_result(
|
|
"python_api_tester",
|
|
'status',
|
|
'Passed' if run_results['passed'] else 'Failed',
|
|
)
|
|
self.assertTrue(
|
|
run_results['passed'],
|
|
msg="Errors occurred during test python_api_test. "
|
|
"Check log file for details.\n"
|
|
"Run results:\n{r}".format(
|
|
r=yaml.dump(run_results, default_flow_style=False)
|
|
)
|
|
)
|