aboutsummaryrefslogtreecommitdiffstats
path: root/host/tests/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
...
* rfnoc: Add mb_controller APIMartin Braun2019-11-261-0/+1
| | | | | | | | | The mb_controller is an interface to hardware-specific functions of the motherboard. The API works in two ways: - The user can request access to it, and thus interact directly with the motherboard - RFNoC blocks can request access to it, if they need to interact with the motherboard themselves.
* rfnoc: Add radio block controllerMartin Braun2019-11-261-0/+1
|
* rfnoc: Moved chdr types/packet class out of chdr dirAshish Chaudhari2019-11-261-4/+4
| | | | | | - Moved chdr_packet and chdr_types from rfnoc/chdr to rfnoc and updated all references - Moved non-CHDR definitions to rfnoc_common.hpp
* transport: Implement a single-threaded I/O serviceAlex Williams2019-11-261-0/+6
| | | | | | | | | | | | | | | | | | | | The inline_io_service connects transports to links without any worker threads. Send operations go directly to the link, and recv will perform the I/O as part of the get_recv_buffer() call. The inline_io_service also supports muxed links natively. The receive mux is entirely inline. There is no separate thread for the inline_io_service, and that continues here. A queue is created for each client of the mux, and packets are processed as they come in. If a packet is to go up to a different client, the packet is queued up for later. When that client attempts to recv(), the queue is checked first, and the attempts to receive from the link happen ONLY if no packet was found. Also add mock transport to test I/O service APIs. Tests I/O service construction and some basic packet transmision. One case will also uses a single link that is shared between the send and recv transports. That link is muxed between two compatible but different transports.
* tests: add mock transport implementation and testCiro Nishiguchi2019-11-261-0/+1
| | | | Add test for transports using mock transports
* rfnoc: Add DDC block controllerMartin Braun2019-11-261-0/+10
|
* rfnoc: adding client_zeroBrent Stapleton2019-11-261-0/+5
| | | | | | | | | | - Adding client_zero class, which gathers information about our device form the global registers on port 0 of the RFNoC backend registers. - adding unit tests to exercise client_zero - mock_reg_iface class: adding fake register_iface so we can run unit tests in software only Co-authored-by: Martin Braun <martin.braun@ettus.com>
* cmake: tests: Move RFNoC tests to UHD_ADD_NONAPI_TEST() macroMartin Braun2019-11-261-42/+19
| | | | This is a continuation of a76ce96c.
* rfnoc: Add action APIMartin Braun2019-11-261-0/+13
| | | | | | | | - Added action_info class - Allow to send actions from node to node - Allow to post actions into nodes - Allow to set default forwarding policies - Added unit tests
* rfnoc: Refactored CHDR packet interfacesAshish Chaudhari2019-11-261-1/+13
| | | | | | | - Moved packet interface code from public to private include - Split packet interface into two files: payload paring and packet iface - Added support for all CHDR packet types - Added more test cases to unit test
* rfnoc: Add property propagation, Boost.Graph storageMartin Braun2019-11-261-0/+26
| | | | | | | | | | | | - Adds a detail::graph_t class, which handles the propagation - Adds methods to node_t to aid with propagation - Adds unit tests - Adds dynamic property forwarding: Nodes are now able to forward properties they don't know about by providing a forwarding policy. A good example is the FIFO block which simply forwards most properties verbatim. - node: Temporarily disabling consistency check at init
* rfnoc: Add properties, nodes, and accessorsMartin Braun2019-11-261-0/+2
| | | | | | | | | | | | | | Adds the following classes: - uhd::rfnoc::node_t, the base class for RFNoC nodes - uhd::rfnoc::node_accessor_t, a class to access private properties - uhd::rfnoc::res_source_info, a struct that identifies where properties come from - uhd::rfnoc::property_t, and property_base_t (its parent) - uhd::rfnoc::prop_accessor_t, a class to access properties Add always dirty property (dirtifier). Also adds unit tests for properties.
* rfnoc: add new data_chdr packetization.Trung Tran2019-11-261-0/+1
|
* lib: Simplify implementation of uhd::get_system_time() to use <chrono>Martin Braun2019-11-261-0/+6
| | | | | | | uhd::get_system_time() is currently only used in USRP1 code, and it turns out that our "optimized", platform-dependent implementation still is a little slower than straight-up chrono. We therefore remove all the special cases, and replace them with a single, standard solution.
* lib: utils: Add is_a_tty()Martin Braun2019-10-071-0/+1
| | | | | | | This is a portable version of POSIX's isatty(). Windows has its own version, called _isatty(). UHD thus gains its own, portable version. The underscores aren't beautiful, but they're necessary so we can distinguish the POSIX version from the UHD version.
* cmake: tests: Add macro for non-API based unit testsMartin Braun2019-05-221-49/+59
| | | | | | All unit tests which require extra sources (i.e., can't just interact with the UHD API) have been manually added to the CMakeLists.txt in a clumsy fashion. This macro cleans that up a little.
* utils: Add scope_exit objectMartin Braun2019-04-011-0/+1
| | | | | | | This is a utility for RAII-style operations. An object that will run code when a scope is left. Also includes unit tests.
* uhd: Remove cal containersMartin Braun2019-03-201-1/+0
| | | | | They are currently unused, and may need reimplementation. For the time being, they can go out of the codebase.
* uhd: mpm: update all license header w/ "-or-later"Brent Stapleton2019-03-081-1/+1
| | | | Updating all SPDX license identifiers to include "-or-later"
* cmake: fix variable usageMichael Dickens2019-01-301-2/+1
|
* mpmd,transport,prefs: Add xport_mgr for dpdk_zero_copyAlex Williams2019-01-251-0/+4
| | | | | | | | | | | | | | | | | | | | | | | Add configuration sections to the UHD config file for NIC entries. Keys are based on MAC addresses, and the entries beneath the section describe which CPU and I/O thread to use for the NIC and its IPv4 address. Make ring sizes configurable for uhd-dpdk. Ring size is now an argument for packet buffers. Note that the maximum number of available buffers is still determined at init! Add ability to receive broadcasts to uhd-dpdk. This is controllable by a boolean in the sockarg during socket creation. dpdk_zero_copy will filter broadcast packets out. Add dpdk_simple transport (to mirror udp_simple). This transport allows receiving from broadcast addresses, but it only permits one outstanding buffer at a time. Fix IP checksum handling in UHD-DPDK. TX checksums were not being calculated in the NIC, and in RX, the check for IP checksums allowed values of zero (reported as none). Now packets with bad IP checksums will be dropped.
* tests: Add unit test for DPDK transportAlex Williams2019-01-151-0/+14
| | | | | | | | | This commit adds a loopback benchmark for a PC with 2 DPDK-compatible NIC ports that are connected together via a cable. It sends messages with embedded sequence numbers (outgoing and last-seen) for maintaining a flow control window of packets in flight. It tracks the number of bytes sent/received and reports the time the test took and average throughput.
* tests: Add benchmark of streaming code pathsCiro Nishiguchi2019-01-101-0/+13
| | | | | Add a benchmark of packet handlers and device3 flow control. Benchmarks use mock transport objects.
* cmake: Update coding style to use lowercase commandsMartin Braun2018-11-141-39/+39
| | | | | | | | | | | | | | | | | Also updates our coding style file. Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code (with GNU compliant sed): cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done > convert.sed \ && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' \ '*CMakeLists.txt' | xargs -0 gsed -i -f convert.sed && rm convert.sed (Make sure the backslashes don't get mangled!)
* tests: device3_test: add graph impl testTrung Tran2018-10-311-2/+10
|
* Test: Add unit test for eeprom_utilsmichael-west2018-10-251-0/+1
|
* soft_register: Remove compiler warning, add unit testMartin Braun2018-07-111-1/+2
|
* lib: Add path_expandvars() internal API callMartin Braun2018-02-201-0/+23
|
* uhd: Update license headersMartin Braun2018-02-191-0/+1
| | | | | | | All copyright is now attributed to "Ettus Research, a National Instruments company". SPDX headers were also updated to latest version 3.0.
* lib: Add config_parser classMartin Braun2018-02-011-0/+13
| | | | | | | This class is not publicly exported. It is meant to read config files in the INI format. Reviewed-by: Brent Stapleton <brent.stapleton@ettus.com>
* uhdlib: Update constrained_device_args_tMartin Braun2018-01-181-0/+3
| | | | | | | - Allow enums to be non-consecutive - Move to uhdlib/ - Add unit tests - Updated N230 use of constrained_device_args_t
* uhd: Add narrow_cast and narrowMartin Braun2018-01-121-0/+1
| | | | Reviewed-by: Ashish Chaudhari <ashish.chaudhari@ettus.com>
* types: sensor_value_t can now be created from mapMartin Braun2017-12-221-0/+1
| | | | - Adds unit tests for sensor_value_t also
* Move all license headers to SPDX format.Martin Braun2017-12-221-12/+1
|
* uhd: tasks now use std::threads under the hood, and can't be interruptedMartin Braun2017-06-281-0/+1
| | | | | USRP1 and USRP2 used tasks that relied on Boost thread interruption mechanisms. These were replaced with explicit atomics.
* utils: introduce new logging API and remove msg APIAndrej Rode2017-02-201-1/+1
|
* calibration: generic containers for datasetsPaul David2016-11-291-0/+1
| | | | | | - Includes a container for power calibration data - Unit tests to check underlying container functionality - Nearest neighbor and bilinear interpolation
* Merging RFNoC support for X310Martin Braun2016-08-091-0/+43
|
* usrp: Added fe_connection type and unit testAshish Chaudhari2016-03-211-0/+1
| | | | | - Wraps a sampling mode and IF frequency - Built-in parser to deduce swap,invert,mode bits from string connection
* uhd: Added expert dependency tracking infrastructureAshish Chaudhari2016-02-121-0/+1
| | | | | | | - Code location uhd/lib/experts - expert_nodes.hpp contains all node definitions: data and worker - expert_container.hpp contains the memory manager and resolver for expert nodes - expert_factory contains the initializer and modifier for expert_container
* tests: Added first batch of device testsMartin Braun2015-10-071-0/+2
| | | | | - Currently supported: B2xx, X3x0 - Runs some simple examples
* Remove CMake 3.0+ warningsNicholas Corgan2015-08-131-3/+0
|
* C API cleanup, feature additionsNicholas Corgan2015-08-121-2/+2
| | | | | | * Cleaned up usage of handles vs. handle pointers * Store global string for last error thrown * Removed uhd::device_addr_t handle, added std::vector<std::string> handle
* C API: feature additions, bugfixesNicholas Corgan2015-08-071-0/+1
| | | | | | * Wrapped uhd::device_addrs_t, added find functions for multi_usrp, multi_usrp_clock * Replaced getopt with public domain implementation * Minor bugfixes
* uhd: C API wrapperNicholas Corgan2015-08-061-0/+10
| | | | | | | * multi_usrp, multi_usrp_clock, and associated classes accessible through C * Added Doxygen documentation explaining structure and API * Simple RX and TX streaming examples * Unit tests for different parts of C interface and C++ error conversion
* cmake: MinGW improvementsNicholas Corgan2015-07-231-5/+1
| | | | | | * Improved toolchan file, accounts for different versions * Don't force static runtime linking (was causing test errors) * Include MinGW runtime in packaging
* Added support for MinGW cross-compileNicholas Corgan2015-01-131-2/+6
| | | | | | * Added CMake toolchain file, compatible with different versions * No dependency on MinGW runtime, all statically linked * Misc coding tweaks to allow MinGW to compile
* transport: Made CHDR-related routines separate from VRTMartin Braun2014-12-031-1/+2
| | | | | | Our VRT routines have the option to switch, on the fly, between VRLP and CHDR. This adds new CHDR-specific (un-)packers, which can only work with CHDR.
* math: Added a portable log2()Martin Braun2014-11-201-0/+1
|
* uhd: Added sid_tMartin Braun2014-10-281-0/+1
| | | | | | | This is a data type to represent SIDs (stream IDs). It includes setters and getters for all components of the SID, converters to and from string and uint32 as well as C++ streams.