aboutsummaryrefslogtreecommitdiffstats
path: root/host/tests
Commit message (Collapse)AuthorAgeFilesLines
...
* uhd: Create discoverable feature registry implementationLane Kolbly2020-06-252-35/+23
| | | | | | Classes which want to implement discoverable_feature can simply inherit from this registry and get access to an ergonomic map-backed registry of features.
* uhd: Add discoverable_features APILane Kolbly2020-06-252-0/+112
| | | | | | | | The "discoverable features" API handles how clients access the myriad features we offer, without simply adding a million has_FOO and do_FOO methods to radio_control and multi_usrp. discoverable_features allows clients to query the existance of, enumerate, and ultimately they get (by enum or by type) an object which implements their wanted feature.
* test: Add verify-flatbuffer testLars Amsel2020-06-232-0/+34
| | | | | | This runs update_fbs.py --verify as a unit test, and fail accordingly. The test passes if git executable is not found or the schema files are not within a git repo, because both are not a dependency of UHD.
* tests: Add unit test for FFT RFNoC blockAaron Rossetto2020-06-182-0/+191
|
* tests: Add infrastructure to run Python unit testsMartin Braun2020-06-152-0/+37
| | | | | | | | | | | | | | | | - Add UHD_ADD_PYTEST() CMake macro - Add CMake code to tests/CMakeLists.txt to auto-run all registered Python unit tests - Add a token unit test (it replicates parts of ranges_test.cpp) The way Python-based unit tests are implemented in UHD is that they can import uhd, and then operate on the module as usual. Writing unit tests in Python instead of C++ can have multiple advantages: - If they test PyBind-wrapped C++ code, they can test both the binding and the underlying C++ code at once - Writing unit tests in Python may be more concise
* devtest: Assert result of python_api_test correctlyMartin Braun2020-06-101-0/+15
| | | | Before this, the python_api_test didn't assert an error when it failed.
* devtest: Don't skip Python API tests if Python API is enabledMartin Braun2020-06-101-0/+5
| | | | | | | | One of the devtests (the python_api_test) gets skipped without failures if the uhd module can't be loaded. However, this can mask errors if the uhd module can't be loaded because it's broken. This change will verify if the uhd module should have been loaded, and throw an error if that's the case.
* b200: tests: Fix PyLint issues in B200 devtestMartin Braun2020-06-101-1/+4
|
* tests: Fix multi_usrp_testMartin Braun2020-06-101-16/+28
| | | | | | | | This is a test that automatically executes API calls. The following tests were broken: - clock source: On B200mini, we need to set the time source back to internal to test the clock source. - The filter API call tests did not match the API calls themselves
* rfnoc: Add unit test for Add/Sub RFNoC blockAaron Rossetto2020-05-282-0/+93
|
* tests: Add unit test for Split Stream RFNoC blockAaron Rossetto2020-05-282-0/+232
| | | | This commit adds a unit test for the split stream RFNoC block.
* tests: Add unit test for USE_MAP action forwarding policyAaron Rossetto2020-05-281-0/+137
| | | | This commit adds a unit test for the USE_MAP action forwarding policy.
* tests: Add unit test for USE_MAP prop forwarding policyAaron Rossetto2020-05-282-1/+259
| | | | | | | | | | | | | | | This commit adds a unit test for the USE_MAP property forwarding policy. It also adds a pair of new mock RFNoC nodes for use in unit testing: - mock_edge_node_t is a node with a configurable number of input and output ports each having an edge property named 'prop' associated with each. The node is also able to source actions from any of its edges and records incoming actions in a map. - mock_routing_node_t is a do-nothing node specifically for testing property and action forwarding between edges with the USE_MAP forwarding strategy. The node has functions to configure the property and action forwarding maps.
* tests: updated devtest runner to use standard device argsMatthew Crymble2020-05-272-3/+3
| | | | | This will allow run_testsuite.py to be called for specific devices instead of all devices for a certain type.
* cal: Minor fixes in power container, add unit testMartin Braun2020-05-261-0/+24
| | | | | | | - min_power and max_power arguments were swapped. They were always called correctly, so this is more of a documentation fix. - Add a unit test for the case where power values are not regular, which is the normal case with real data.
* tests: Add unit tests for pwr_cal_mgrMartin Braun2020-05-202-0/+157
|
* cal: database: Add option to register flash cal callbacksMartin Braun2020-05-201-0/+36
| | | | | | | | | | | This adds the possibility to read cal data from flash/EEPROM by adding callbacks to the database. Unlike the RC and FILESYSTEM data, this is very device-specific, but we can let devices register callbacks in the database so that reading cal data from flash can use the same APIs as from RC or filesystem. Note that this also gives a convenient way to inject call data during unit tests, if desired.
* tests: Added unit test for Vector IIR RFNoC blockAaron Rossetto2020-05-192-0/+225
|
* tests: Remove 'six' dependency from devtestMartin Braun2020-05-121-2/+1
| | | | This removes 'six' as a dependency for devtest.
* Remove remaining Python 2 referencesMartin Braun2020-05-075-5/+0
| | | | | | | This changes two things in all applicable files: - Remove imports from __future__ - Change default shebangs from /usr/bin/env python to /usr/bin/env python3
* test: Add output for gpio_testMichael West2020-04-301-0/+3
| | | | | | Print output from stdout and stderr upon error. Signed-off-by: Michael West <michael.west@ettus.com>
* devtest: Add support for TwinRX to x3x0Michael West2020-04-301-52/+92
| | | | | | | Adding necessary code to examine number of TX and RX channels and adjust test cases accordingly. Signed-off-by: Michael West <michael.west@ettus.com>
* devtest: Add method to get number of channelsMichael West2020-04-301-0/+36
| | | | | | Adding method to get number of TX and RX channels to usrp_probe. Signed-off-by: Michael West <michael.west@ettus.com>
* devtest: Fix benchmark_rate_test success criteriaMichael West2020-04-301-2/+2
| | | | | | | Allow success if testing either TX or RX. Previously required both TX and RX to be tested simultaneously. Signed-off-by: Michael West <michael.west@ettus.com>
* tests: Print images dir instead of simply reading itMartin Braun2020-04-171-1/+1
|
* cal: Add pwr_cal containerMartin Braun2020-04-172-0/+135
| | | | | | | This is a cal container for all types of power cal (RX or TX) that rely on a single, overall gain value. Includes Python API.
* lib: utils: interpolation: Add bilinear interpolationMartin Braun2020-04-171-1/+69
| | | | | | This allows to treat a std::map<KeyType<std::map<KeyType, ValueType>> as a set of x-y coordinates, and bilinearly interpolate a z-value given four x/y pairs.
* tests: Add Fosphor block controller unit testWade Fife2020-04-142-0/+358
|
* tests: migrated rfnoc block tests to dedicated subdirectorymattprost2020-04-136-381/+455
| | | | | | | | This separates the rfnoc block tests into files for each specific block. This was done to improve the readability of these files and declutter the tests directory. Signed-off-by: mattprost <matt.prost@ni.com>
* fixup! uhd: Add fuzzy serial number checkingmattprost2020-04-091-8/+8
|
* tests: Fix client_zero_test flush bit testMartin Braun2020-04-081-6/+12
| | | | | A test to check the address was using a & instead of a %, resulting in a -Wtautological-compare.
* uhd: Add fuzzy serial number checkingLane Kolbly2020-04-082-0/+28
| | | | | | | | | We have integer 32-bit serial numbers for MPM devices, for example "1234abcd". For serial numbers which have less than eight digits, e.g. "123abcd", a user may feel inclined to prefix this number with a 0 when they are searching for devices, e.g. "0123abcd". This change makes it so that specifying "0123abcd" will match a device with serial number "123ABCD".
* tests: Add FIR filter block controller unit testAaron Rossetto2020-04-072-0/+247
|
* uhd: math: Add interpolation.hppMartin Braun2020-04-074-10/+37
| | | | | | | | - Moves linear_interp from cal to utils - Moves the interp_mode enum class to interpolation.hpp - Adds three interpolation methods for maps: at_interpolate_1d(), at_nearest(), at_lin_interp() - Adds unit tests
* devtest: add missing devtest to n3xxCiro Nishiguchi2020-04-031-0/+1
|
* uhd: paths: Harmonize around XDG Base Directory specificationMartin Braun2020-04-021-9/+8
| | | | | | | | | | | | | | | | | | | | | | Up until now, we completely ignore the XDG specification. This commit does the following to change that: - It uses XDG_DATA_HOME and XDG_CONFIG_HOME for cal and config data, respectively. - If config data is in ~/.uhd/uhd.conf, that is still accepted, but if it conflicts with $XDG_CONFIG_HOME/uhd.conf, it is ignored and a warning is displayed - The default location for cal data is thus ${HOME}/.local/share/uhd/cal on Unix, and %LOCALAPPDATA%\uhd\cal on Windows. This is a change in location! - The UHD_CONFIG_DIR environment variable was confusingly named and is now removed. It provided an alternative location than the home directory. The same purpose is now much better served by XDG_DATA_HOME and XDG_CONFIG_HOME. The specification can be found here: specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
* rfnoc: Add multichannel register interfacemattprost2020-04-022-0/+181
| | | | | | | | | | | This utility class implements the register access methods of reg_iface but adds built-in address translation features for consecutive instances of an RFNoC block. The register peek and poke methods accept an extra 'instance' parameter which is used to calculate the absolute address for the register access. This can be used for accessing registers for the different channels of a multi-channel block (i.e. Radio, DDC, DUC, etc). Signed-off-by: mattprost <matt.prost@ni.com>
* uhd: cal: Add iq_cal calibration data container classMartin Braun2020-04-022-0/+82
| | | | | | | | This class can be used to store calibration coefficients for the X300 DC offset and IQ imbalance calibration. Note: This also modifies Doxyfile.in to not document files generated by flatc.
* uhd: cal: Add database classMartin Braun2020-03-262-0/+89
| | | | | | This class contains methods to store and retrieve data from the local calibration database. Note that in this case, the "database" is just a bunch of files on the local filesystem.
* uhd: paths: Add get_cal_data_path() API callMartin Braun2020-03-261-1/+3
| | | | This points to the location where cal data is stored.
* uhd: math: Add linear_interp()Martin Braun2020-03-181-1/+10
| | | | This lets you linearly interpolate between two points.
* utils: Add bool specialization to cast::from_str()Aaron Rossetto2020-03-181-0/+20
| | | | | | | This adds a specialization to `uhd::cast::from_str()` to handle `bool` as a target type and interpret strings like 'y', 'Y', 'n', 'No', 'True', 'False', etc. as Boolean values, as well as the traditional '0' and '1' (which also work).
* tests: Allow custom name for mock terminatorAaron Rossetto2020-03-131-4/+6
| | | | | | | Allow a unit test to instantiate a mock_terminator_t and provide a custom name to be displayed when get_unique_id() is called (generally for logging purposes). The custom name is optional and the generic 'MOCK_TERMINATOR' is used if unset.
* uhd: Apply clang-format against all .cpp and .hpp files in host/Martin Braun2020-03-0322-193/+212
| | | | | Note: template_lvbitx.{cpp,hpp} need to be excluded from the list of files that clang-format gets applied against.
* rfnoc: Provide make_args_t dtor in rfnoc_blocks_testAaron Rossetto2020-02-041-0/+3
|
* rfnoc: Create mock factoryMartin Braun2020-01-294-197/+15
| | | | | | This is an API that allows creating mock block controllers, to write unit tests for block controllers. See rfnoc_blocks_test for an example how to use them.
* cmake: Find DPDK via pkg-config, if availableAlex Williams2020-01-221-2/+2
| | | | | | Debian uses pkg-config without the libdpdk.so linker script. Use the pkg-config file to grab the installed libraries and determine what to link to.
* uhd: fixing MSVC warningsBrent Stapleton2020-01-091-1/+2
| | | | | | | | | | | Small changes to remove various compiler warnings found in MSVC - Adding uhd::narrow_cast to verious spots - wavetable.hpp: all floats literals in the wavetable. - paths_test: unnecessary character escape - replay example: remove unreferenced noc_id - adfXXXX: Fixing qualifiers to match between parent and derived classes - rpc, block_id: Removing unused name in try...catch
* tests: fixup compiler warningBrent Stapleton2019-12-301-1/+1
| | | | Fixes cb40069b ("tests: Port polling-mode dpdk_test to new DPDK...")
* tests: Port polling-mode dpdk_test to new DPDK frameworkAlex Williams2019-12-203-83/+121
| | | | | | The mock_send_transport and mock_recv_transport are used, which ends up with two layers of flow control. More work may be needed here for comparisons with the old data.