aboutsummaryrefslogtreecommitdiffstats
path: root/host/tests/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* Remove proto-RFNoC filesMartin Braun2019-11-261-55/+2
| | | | | | | This commit removes all files and parts of files that are used by proto-RFNoC only. uhd: Fix include CMakeLists.txt, add missing files
* tests: Add benchmark of streamer and chdr xportsCiro Nishiguchi2019-11-261-7/+27
|
* tests: Make packet handler benchmark include flow controlCiro Nishiguchi2019-11-261-5/+6
| | | | | Add mock flow control to the packet handler benchmark to make it a better comparison to streamer_benchmark.
* rfnoc: tests: Let block unit tests use regular factoryMartin Braun2019-11-261-11/+1
| | | | | | | Up until now, these unit tests were bypassing the factory, and directly linking against the relevant block factories. This can cause linker issues, but it also doesn't test code paths. This change makes the unit tests look more like the actual usage.
* rfnoc: Add DUC block controllerMartin Braun2019-11-261-0/+1
|
* rfnoc: DDC: Fix property propagationMartin Braun2019-11-261-1/+9
| | | | | | | | | - Combine scaling and samp_rate resolvers - Prioritize decim when user has set it for DDC: When samp_rate_in changes, either the samp_rate_out or the decim values may change to accommodate it. If decim has been set by the user (which can be determined by the valid flag), prefer changing samp_rate_out over decim.
* rfnoc: add rx and tx transports, and amend rfnoc_graphCiro Nishiguchi2019-11-261-0/+2
| | | | | | | | | | | | | | | | | | | | | | | transports: Transports build on I/O service and implements flow control and sequence number checking. The rx streamer subclass extends the streamer implementation to connect it to the rfnoc graph. It receives configuration values from property propagation and configures the streamer accordingly. It also implements the issue_stream_cmd rx_streamer API method. Add implementation of rx streamer creation and method to connect it to an rfnoc block. rfnoc_graph: Cache more connection info, clarify contract Summary of changes: - rfnoc_graph stores more information about static connections at the beginning. Some search algorithms are replaced by simpler lookups. - The contract for connect() was clarified. It is required to call connect, even for static connections.
* rfnoc: Add shutdown feature to blocksMartin Braun2019-11-261-0/+1
| | | | | | | | On destruction, the rfnoc_graph will call shutdown() on all blocks. This allows a safe de-initialization of blocks independent of the lifetime of the noc_block_base::sptr. Also adds the shutdown feature to null_block_control.
* rfnoc: Add null block controllerMartin Braun2019-11-261-0/+1
|
* 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