diff options
author | Alex Williams <alex.williams@ni.com> | 2019-11-04 15:54:35 -0800 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2019-11-26 12:21:33 -0800 |
commit | 70ed069b6e36b1823339cb0ac48f383c992de3b0 (patch) | |
tree | 9910b21f4ab84a81f6b2c1b51afed9a1a3f7f7e7 | |
parent | 80ec3fee4298d5b0defd98db7dcf1a01f49e9778 (diff) | |
download | uhd-70ed069b6e36b1823339cb0ac48f383c992de3b0.tar.gz uhd-70ed069b6e36b1823339cb0ac48f383c992de3b0.tar.bz2 uhd-70ed069b6e36b1823339cb0ac48f383c992de3b0.zip |
tests: Add check for life on DPDK port
-rw-r--r-- | host/tests/CMakeLists.txt | 21 | ||||
-rw-r--r-- | host/tests/dpdk_port_test.cpp | 41 |
2 files changed, 62 insertions, 0 deletions
diff --git a/host/tests/CMakeLists.txt b/host/tests/CMakeLists.txt index 4578a6307..d3c0b8e6a 100644 --- a/host/tests/CMakeLists.txt +++ b/host/tests/CMakeLists.txt @@ -115,6 +115,27 @@ endmacro(UHD_ADD_NONAPI_TEST) ############################################################################### # Now add all unit tests that require special linkage ############################################################################### +if(ENABLE_DPDK) + find_package(DPDK) + UHD_ADD_NONAPI_TEST( + TARGET "dpdk_port_test.cpp" + EXTRA_SOURCES + ${CMAKE_SOURCE_DIR}/lib/utils/config_parser.cpp + ${CMAKE_SOURCE_DIR}/lib/utils/paths.cpp + ${CMAKE_SOURCE_DIR}/lib/utils/pathslib.cpp + ${CMAKE_SOURCE_DIR}/lib/utils/prefs.cpp + ${CMAKE_SOURCE_DIR}/lib/transport/uhd-dpdk/dpdk_common.cpp + INCLUDE_DIRS + ${DPDK_INCLUDE_DIR} + EXTRA_LIBS ${DPDK_LIBRARIES} + NOAUTORUN # Don't register for auto-run, it requires special config + ) + set_source_files_properties( + ${CMAKE_SOURCE_DIR}/lib/transport/uhd-dpdk/dpdk_common.cpp + PROPERTIES COMPILE_FLAGS "-march=native -D_GNU_SOURCE" + ) +ENDIF(ENABLE_DPDK) + UHD_ADD_NONAPI_TEST( TARGET "system_time_test.cpp" EXTRA_SOURCES diff --git a/host/tests/dpdk_port_test.cpp b/host/tests/dpdk_port_test.cpp new file mode 100644 index 000000000..65cf045eb --- /dev/null +++ b/host/tests/dpdk_port_test.cpp @@ -0,0 +1,41 @@ +// +// Copyright 2019 Ettus Research, a National Instruments brand +// +// SPDX-License-Identifier: GPL-3.0-or-later +// + +#include <uhdlib/transport/dpdk/common.hpp> +#include <boost/program_options.hpp> +#include <iostream> + +namespace po = boost::program_options; + +int main(int argc, char **argv) +{ + po::options_description desc("Allowed options"); + int status = 0; + std::string args; + desc.add_options() + ("help", "help message") + ("args", po::value<std::string>(&args)->default_value(""), "UHD-DPDK args") + ; + po::variables_map vm; + po::store(po::parse_command_line(argc, argv, desc), vm); + po::notify(vm); + + if (vm.count("help")) { + std::cout << desc << std::endl; + return 0; + } + + auto dpdk_args = uhd::device_addr_t(args); + auto ctx = uhd::transport::dpdk::dpdk_ctx::get(); + ctx->init(args); + + uhd::transport::dpdk::dpdk_port* port = ctx->get_port(0); + std::cout << "Port 0 MTU: " << port->get_mtu() << std::endl; + status = ctx->get_port_link_status(0); + std::cout << "Port 0 Link up: " << status << std::endl; + ctx.reset(); + return 0; +} |