aboutsummaryrefslogtreecommitdiffstats
path: root/host/tests/stream_sig_test.cpp
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@ettus.com>2016-08-01 18:17:41 -0700
committerMartin Braun <martin.braun@ettus.com>2016-08-09 12:42:52 -0700
commit3bf4b000f7d9a7f4af82c21753556ede7e8df6e3 (patch)
tree2228d7eb58c4d83d91192cb9b6a908e4e49f6317 /host/tests/stream_sig_test.cpp
parentc5b076173e2d866f3ee99c113a37183c5ec20f0b (diff)
downloaduhd-3bf4b000f7d9a7f4af82c21753556ede7e8df6e3.tar.gz
uhd-3bf4b000f7d9a7f4af82c21753556ede7e8df6e3.tar.bz2
uhd-3bf4b000f7d9a7f4af82c21753556ede7e8df6e3.zip
Merging RFNoC support for X310
Diffstat (limited to 'host/tests/stream_sig_test.cpp')
-rw-r--r--host/tests/stream_sig_test.cpp82
1 files changed, 82 insertions, 0 deletions
diff --git a/host/tests/stream_sig_test.cpp b/host/tests/stream_sig_test.cpp
new file mode 100644
index 000000000..904a14053
--- /dev/null
+++ b/host/tests/stream_sig_test.cpp
@@ -0,0 +1,82 @@
+//
+// Copyright 2014-2015 Ettus Research LLC
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+//
+
+#include <iostream>
+#include <boost/test/unit_test.hpp>
+#include <uhd/exception.hpp>
+#include <uhd/rfnoc/stream_sig.hpp>
+
+using namespace uhd::rfnoc;
+
+BOOST_AUTO_TEST_CASE(test_stream_sig) {
+ stream_sig_t stream_sig;
+
+ BOOST_CHECK_EQUAL(stream_sig.item_type, "");
+ BOOST_CHECK_EQUAL(stream_sig.vlen, 0);
+ BOOST_CHECK_EQUAL(stream_sig.packet_size, 0);
+ BOOST_CHECK_EQUAL(stream_sig.is_bursty, false);
+
+ std::stringstream ss;
+ ss << stream_sig;
+ // Eventually actually test the contents
+ std::cout << ss.str() << std::endl;
+}
+
+BOOST_AUTO_TEST_CASE(test_stream_sig_compat) {
+ stream_sig_t upstream_sig;
+ stream_sig_t downstream_sig;
+
+ BOOST_CHECK(stream_sig_t::is_compatible(upstream_sig, downstream_sig));
+ upstream_sig.vlen = 32;
+ BOOST_CHECK(stream_sig_t::is_compatible(upstream_sig, downstream_sig));
+ downstream_sig.vlen = 32;
+ BOOST_CHECK(stream_sig_t::is_compatible(upstream_sig, downstream_sig));
+ upstream_sig.vlen = 16;
+ BOOST_CHECK(not stream_sig_t::is_compatible(upstream_sig, downstream_sig));
+ upstream_sig.vlen = 32;
+ BOOST_CHECK(stream_sig_t::is_compatible(upstream_sig, downstream_sig));
+ upstream_sig.packet_size = 8;
+ BOOST_CHECK(stream_sig_t::is_compatible(upstream_sig, downstream_sig));
+ downstream_sig.packet_size = 12;
+ BOOST_CHECK(not stream_sig_t::is_compatible(upstream_sig, downstream_sig));
+ upstream_sig.packet_size = 0;
+ BOOST_CHECK(stream_sig_t::is_compatible(upstream_sig, downstream_sig));
+ downstream_sig.item_type = "";
+ BOOST_CHECK(stream_sig_t::is_compatible(upstream_sig, downstream_sig));
+ upstream_sig.item_type = "sc16";
+ downstream_sig.item_type = "s8";
+ BOOST_CHECK(not stream_sig_t::is_compatible(upstream_sig, downstream_sig));
+}
+
+BOOST_AUTO_TEST_CASE(test_stream_sig_types) {
+ stream_sig_t stream_sig;
+ BOOST_CHECK_EQUAL(stream_sig.get_bytes_per_item(), 0);
+ stream_sig.item_type = "sc16";
+ BOOST_CHECK_EQUAL(stream_sig.get_bytes_per_item(), 4);
+ stream_sig.item_type = "sc12";
+ BOOST_CHECK_EQUAL(stream_sig.get_bytes_per_item(), 3);
+ stream_sig.item_type = "sc8";
+ BOOST_CHECK_EQUAL(stream_sig.get_bytes_per_item(), 2);
+ stream_sig.item_type = "s16";
+ BOOST_CHECK_EQUAL(stream_sig.get_bytes_per_item(), 2);
+ stream_sig.item_type = "s8";
+ BOOST_CHECK_EQUAL(stream_sig.get_bytes_per_item(), 1);
+ stream_sig.item_type = "fc32";
+ BOOST_CHECK_EQUAL(stream_sig.get_bytes_per_item(), 8);
+ stream_sig.item_type = "not_a_type";
+ BOOST_REQUIRE_THROW(stream_sig.get_bytes_per_item(), uhd::key_error);
+}