uhd/host/tests/devtest
mattprost be4aaf6cfa devtest: Add multi-spc timed command tests
These tests are designed to validate timed commands operating correctly
at various offsets. This is to support the multiple-samples-per-cycle
logic in the FPGA which enables multi-spc streaming on certain devices.
The tests cover devices with digital code shared in the RFNoC framework,
even if they do not strictly support multi-spc streaming.

Co-authored-by: Grant Meyerhoff <grant.meyerhoff@ni.com>
Co-authored-by: Wade Fife <wade.fife@ettus.com>
Signed-off-by: mattprost <matt.prost@ni.com>
2022-12-21 20:26:51 -06:00
..
benchmark_rate_test.py devtest: benchmark_rate: Add support for rx and tx only tests 2021-06-10 07:28:25 -05:00
bitbang_test.py test: x410: Add GPIO tests to X410 devtest 2022-03-23 21:09:39 -05:00
CMakeLists.txt cmake: Replace CMAKE_{SOURCE,BINARY}_DIR with UHD_*_DIR 2021-09-10 15:08:10 -05:00
devtest_b2xx.py devtest: Add receive stability test to B2xx devtest 2021-09-28 06:24:05 -07:00
devtest_e3xx.py devtest: Add multi-spc timed command tests 2022-12-21 20:26:51 -06:00
devtest_e320.py devtest: Add multi-spc timed command tests 2022-12-21 20:26:51 -06:00
devtest_n3x0.py devtest: Add multi-spc timed command tests 2022-12-21 20:26:51 -06:00
devtest_x3x0.py devtest: Add multi-spc timed command tests 2022-12-21 20:26:51 -06:00
devtest_x4x0.py devtest: Add multi-spc timed command tests 2022-12-21 20:26:51 -06:00
gpio_test.py test: x410: Add GPIO tests to X410 devtest 2022-03-23 21:09:39 -05:00
list_sensors_test.py devtest: Add list_sensors test 2018-02-27 10:03:37 -08:00
multi_usrp_test.py devtest: Clarify data type in multi_usrp_test::send_waveform() 2021-10-06 11:57:25 -07:00
python_api_test.py tests: Make python_api_test.py always explicitly call Python 2021-06-02 21:49:39 -07:00
python_rx_stability_test.py devtest: Add receive stability test to B2xx devtest 2021-09-28 06:24:05 -07:00
README.md
recv_stability_test.py devtest: Add receive stability test 2021-09-28 06:24:05 -07:00
run_testsuite.py devtest: reapply allow extra device arguments when running devtests 2021-02-12 13:16:01 -08:00
rx_multi_spc_timed_commands_test.py devtest: Add multi-spc timed command tests 2022-12-21 20:26:51 -06:00
rx_samples_to_file_test.py devtese: Change default Python interpreter to 3 2019-11-08 08:56:20 -08:00
test_messages_test.py devtest: Add test_messages_test to X310 2019-11-26 12:21:33 -08:00
test_pps_test.py devtese: Change default Python interpreter to 3 2019-11-08 08:56:20 -08:00
tx_bursts_test.py devtese: Change default Python interpreter to 3 2019-11-08 08:56:20 -08:00
tx_multi_spc_timed_commands_test.py devtest: Add multi-spc timed command tests 2022-12-21 20:26:51 -06:00
tx_waveforms_test.py devtese: Change default Python interpreter to 3 2019-11-08 08:56:20 -08:00
uhd_test_base.py tests: Make python_api_test.py always explicitly call Python 2021-06-02 21:49:39 -07:00
usrp_probe.py host: devtest: Allow getting mgmt_addr in tests 2022-03-23 21:09:39 -05:00
usrp_probe_test.py devtese: Change default Python interpreter to 3 2019-11-08 08:56:20 -08:00

Device Tests

These are a set of tests to be run with one or more attached devices. None of these tests require special configuration; e.g., the X3x0 test will work regardless of attached daughterboards, FPGIO wiring etc.

Adding new tests

To add new tests, add new files with classes that derive from unittest.TestCase. Most of the time, you'll want to derive from uhd_test_case or uhd_example_test_case.

Adding new devices

To add new devices, follow these steps:

  1. Add an entry to the CMakeLists.txt file in this directory using the ADD_DEVTEST() macro.
  2. Add a devtest_pattern.py file to this directory, where pattern is the same pattern used in the ADD_DEVTEST() macro.
  3. Edit this devtest file to import all the tests you want to run. Some may require parameterization.

The devtest file is 'executed' using Python's unittest module, so it doesn't require any actual commands. If the device needs special initialization, commands inside this file will be executed if they are not in a if __name__ == "__main__" conditional.