aboutsummaryrefslogtreecommitdiffstats
path: root/host/tests/chdr_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'host/tests/chdr_test.cpp')
-rw-r--r--host/tests/chdr_test.cpp141
1 files changed, 72 insertions, 69 deletions
diff --git a/host/tests/chdr_test.cpp b/host/tests/chdr_test.cpp
index 11daca521..595d7011a 100644
--- a/host/tests/chdr_test.cpp
+++ b/host/tests/chdr_test.cpp
@@ -7,128 +7,131 @@
#include <uhd/transport/chdr.hpp>
#include <uhd/utils/byteswap.hpp>
-#include <boost/test/unit_test.hpp>
#include <boost/format.hpp>
+#include <boost/test/unit_test.hpp>
#include <cstdlib>
#include <iostream>
using namespace uhd::transport::vrt;
-static void pack_and_unpack(
- if_packet_info_t &if_packet_info_in
-){
+static void pack_and_unpack(if_packet_info_t& if_packet_info_in)
+{
// Temp buffer for packed packet
uint32_t packet_buff[2048] = {0};
// Check input (must not be lazy)
- BOOST_REQUIRE(
- (if_packet_info_in.num_payload_words32 == 0 and if_packet_info_in.num_payload_bytes == 0)
- or
- (if_packet_info_in.num_payload_words32 != 0 and if_packet_info_in.num_payload_bytes != 0)
- );
+ BOOST_REQUIRE((if_packet_info_in.num_payload_words32 == 0
+ and if_packet_info_in.num_payload_bytes == 0)
+ or (if_packet_info_in.num_payload_words32 != 0
+ and if_packet_info_in.num_payload_bytes != 0));
if (if_packet_info_in.num_payload_words32) {
- BOOST_REQUIRE(if_packet_info_in.num_payload_bytes <= 4 * if_packet_info_in.num_payload_words32);
- BOOST_REQUIRE(if_packet_info_in.num_payload_bytes > 4*(if_packet_info_in.num_payload_words32-1));
+ BOOST_REQUIRE(if_packet_info_in.num_payload_bytes
+ <= 4 * if_packet_info_in.num_payload_words32);
+ BOOST_REQUIRE(if_packet_info_in.num_payload_bytes
+ > 4 * (if_packet_info_in.num_payload_words32 - 1));
}
- //pack metadata into a vrt header
- chdr::if_hdr_pack_be(
- packet_buff, if_packet_info_in
- );
+ // pack metadata into a vrt header
+ chdr::if_hdr_pack_be(packet_buff, if_packet_info_in);
std::cout << std::endl;
uint32_t header_bits = (uhd::ntohx(packet_buff[0]) >> 28);
std::cout << boost::format("header bits = 0b%d%d%d%d") % ((header_bits & 8) > 0)
- % ((header_bits & 4) > 0)
- % ((header_bits & 2) > 0)
- % ((header_bits & 1) > 0) << std::endl;
- for (size_t i = 0; i < 5; i++)
- {
- std::cout << boost::format("packet_buff[%u] = 0x%08x") % i % uhd::ntohx(packet_buff[i]) << std::endl;
+ % ((header_bits & 4) > 0) % ((header_bits & 2) > 0)
+ % ((header_bits & 1) > 0)
+ << std::endl;
+ for (size_t i = 0; i < 5; i++) {
+ std::cout << boost::format("packet_buff[%u] = 0x%08x") % i
+ % uhd::ntohx(packet_buff[i])
+ << std::endl;
}
if_packet_info_t if_packet_info_out;
// Must be set a-priori as per contract
if_packet_info_out.num_packet_words32 = if_packet_info_in.num_packet_words32;
- //unpack the vrt header back into metadata
- chdr::if_hdr_unpack_be(
- packet_buff, if_packet_info_out
- );
+ // unpack the vrt header back into metadata
+ chdr::if_hdr_unpack_be(packet_buff, if_packet_info_out);
- //check the the unpacked metadata is the same
+ // check the the unpacked metadata is the same
BOOST_CHECK_EQUAL(if_packet_info_in.packet_count, if_packet_info_out.packet_count);
- BOOST_CHECK_EQUAL(if_packet_info_in.num_header_words32, if_packet_info_out.num_header_words32);
- BOOST_CHECK_EQUAL(if_packet_info_in.num_payload_words32, if_packet_info_out.num_payload_words32);
+ BOOST_CHECK_EQUAL(
+ if_packet_info_in.num_header_words32, if_packet_info_out.num_header_words32);
+ BOOST_CHECK_EQUAL(
+ if_packet_info_in.num_payload_words32, if_packet_info_out.num_payload_words32);
BOOST_CHECK(if_packet_info_out.has_sid);
BOOST_CHECK_EQUAL(if_packet_info_in.sid, if_packet_info_out.sid);
BOOST_CHECK(if_packet_info_out.has_sid);
BOOST_CHECK_EQUAL(if_packet_info_in.has_tsf, if_packet_info_out.has_tsf);
- if (if_packet_info_in.has_tsf and if_packet_info_out.has_tsf){
+ if (if_packet_info_in.has_tsf and if_packet_info_out.has_tsf) {
BOOST_CHECK_EQUAL(if_packet_info_in.tsf, if_packet_info_out.tsf);
}
}
-BOOST_AUTO_TEST_CASE(test_with_chdr){
+BOOST_AUTO_TEST_CASE(test_with_chdr)
+{
if_packet_info_t if_packet_info;
- if_packet_info.packet_type = if_packet_info_t::PACKET_TYPE_DATA;
- if_packet_info.eob = false;
- if_packet_info.packet_count = 7;
- if_packet_info.has_tsf = true;
- if_packet_info.tsf = 0x1234567890ABCDEFull;
- if_packet_info.sid = 0xAABBCCDD;
+ if_packet_info.packet_type = if_packet_info_t::PACKET_TYPE_DATA;
+ if_packet_info.eob = false;
+ if_packet_info.packet_count = 7;
+ if_packet_info.has_tsf = true;
+ if_packet_info.tsf = 0x1234567890ABCDEFull;
+ if_packet_info.sid = 0xAABBCCDD;
if_packet_info.num_payload_words32 = 24;
- if_packet_info.num_payload_bytes = 95;
+ if_packet_info.num_payload_bytes = 95;
pack_and_unpack(if_packet_info);
}
-BOOST_AUTO_TEST_CASE(test_with_chdr_fc){
+BOOST_AUTO_TEST_CASE(test_with_chdr_fc)
+{
if_packet_info_t if_packet_info;
- if_packet_info.packet_type = if_packet_info_t::PACKET_TYPE_FC;
- if_packet_info.eob = false;
- if_packet_info.packet_count = 19;
- if_packet_info.has_tsf = false;
- if_packet_info.tsf = 0x1234567890ABCDEFull;
- if_packet_info.sid = 0xAABBCCDD;
+ if_packet_info.packet_type = if_packet_info_t::PACKET_TYPE_FC;
+ if_packet_info.eob = false;
+ if_packet_info.packet_count = 19;
+ if_packet_info.has_tsf = false;
+ if_packet_info.tsf = 0x1234567890ABCDEFull;
+ if_packet_info.sid = 0xAABBCCDD;
if_packet_info.num_payload_words32 = 4;
- if_packet_info.num_payload_bytes = 16;
+ if_packet_info.num_payload_bytes = 16;
pack_and_unpack(if_packet_info);
}
-BOOST_AUTO_TEST_CASE(test_with_chdr_cmd){
+BOOST_AUTO_TEST_CASE(test_with_chdr_cmd)
+{
if_packet_info_t if_packet_info;
- if_packet_info.packet_type = if_packet_info_t::PACKET_TYPE_CMD;
- if_packet_info.packet_count = 19;
- if_packet_info.has_tsf = true;
- if_packet_info.tsf = 0x1234567890ABCDEFull;
- if_packet_info.sid = 0xAABBCCDD;
+ if_packet_info.packet_type = if_packet_info_t::PACKET_TYPE_CMD;
+ if_packet_info.packet_count = 19;
+ if_packet_info.has_tsf = true;
+ if_packet_info.tsf = 0x1234567890ABCDEFull;
+ if_packet_info.sid = 0xAABBCCDD;
if_packet_info.num_payload_words32 = 4;
- if_packet_info.num_payload_bytes = 16;
+ if_packet_info.num_payload_bytes = 16;
pack_and_unpack(if_packet_info);
}
-BOOST_AUTO_TEST_CASE(test_with_chdr_resp){
+BOOST_AUTO_TEST_CASE(test_with_chdr_resp)
+{
if_packet_info_t if_packet_info;
- if_packet_info.packet_type = if_packet_info_t::PACKET_TYPE_RESP;
- if_packet_info.packet_count = 123;
- if_packet_info.has_tsf = false;
- if_packet_info.tsf = 0x1234567890ABCDEFull;
- if_packet_info.sid = 0xAABBCCDD;
+ if_packet_info.packet_type = if_packet_info_t::PACKET_TYPE_RESP;
+ if_packet_info.packet_count = 123;
+ if_packet_info.has_tsf = false;
+ if_packet_info.tsf = 0x1234567890ABCDEFull;
+ if_packet_info.sid = 0xAABBCCDD;
if_packet_info.num_payload_words32 = 4;
- if_packet_info.num_payload_bytes = 16;
+ if_packet_info.num_payload_bytes = 16;
pack_and_unpack(if_packet_info);
}
-BOOST_AUTO_TEST_CASE(test_with_chdr_err){
+BOOST_AUTO_TEST_CASE(test_with_chdr_err)
+{
if_packet_info_t if_packet_info;
- if_packet_info.packet_type = if_packet_info_t::PACKET_TYPE_ERROR;
- if_packet_info.packet_count = 1928;
- if_packet_info.eob = false;
- if_packet_info.error = false; // Needs to be set explicitly
- if_packet_info.has_tsf = false;
- if_packet_info.tsf = 0x1234567890ABCDEFull;
- if_packet_info.sid = 0xAABBCCDD;
+ if_packet_info.packet_type = if_packet_info_t::PACKET_TYPE_ERROR;
+ if_packet_info.packet_count = 1928;
+ if_packet_info.eob = false;
+ if_packet_info.error = false; // Needs to be set explicitly
+ if_packet_info.has_tsf = false;
+ if_packet_info.tsf = 0x1234567890ABCDEFull;
+ if_packet_info.sid = 0xAABBCCDD;
if_packet_info.num_payload_words32 = 4;
- if_packet_info.num_payload_bytes = 16;
+ if_packet_info.num_payload_bytes = 16;
pack_and_unpack(if_packet_info);
}
-