6 #include <gtest/gtest.h>
8 #include "../clock.hpp"
50 dst_nid, transfer_id);
52 frame.setStartOfTransfer((
set & (1 << 2)) != 0);
53 frame.setEndOfTransfer((
set & (1 << 1)) != 0);
55 if ((
set & (1 << 0)) != 0)
60 EXPECT_EQ(data.length(),
61 frame.setPayload(
reinterpret_cast<const uint8_t*
>(data.c_str()),
unsigned(data.length())));
74 template <
unsigned BufSize>
97 if (content.length() >
sizeof(data))
99 std::cerr <<
"matchBufferContent(): Content is too long" << std::endl;
102 tbb->
read(0, data,
unsigned(content.length()));
103 if (
std::equal(content.begin(), content.end(), data))
107 std::cout <<
"Buffer content mismatch:"
108 <<
"\n\tExpected: " << content
109 <<
"\n\tActually: " <<
reinterpret_cast<const char*
>(data)
115 #define CHECK_NOT_COMPLETE(x) ASSERT_EQ(uavcan::TransferReceiver::ResultNotComplete, (x))
116 #define CHECK_COMPLETE(x) ASSERT_EQ(uavcan::TransferReceiver::ResultComplete, (x))
117 #define CHECK_SINGLE_FRAME(x) ASSERT_EQ(uavcan::TransferReceiver::ResultSingleFrame, (x))
128 std::cout <<
"sizeof(TransferReceiver): " <<
sizeof(TransferReceiver) << std::endl;
133 ASSERT_EQ(TransferReceiver::getDefaultTransferInterval(), rcv.
getInterval());
140 ASSERT_EQ(TransferReceiver::getDefaultTransferInterval(), rcv.
getInterval());
152 ASSERT_EQ(TransferReceiver::getDefaultTransferInterval(), rcv.
getInterval());
172 ASSERT_GE(TransferReceiver::getDefaultTransferInterval(), rcv.
getInterval());
173 ASSERT_LE(TransferReceiver::getMinTransferInterval(), rcv.
getInterval());
188 ASSERT_GT(TransferReceiver::getDefaultTransferInterval(), rcv.
getInterval());
244 ASSERT_LT(TransferReceiver::getDefaultTransferInterval(), rcv.
getInterval());
245 ASSERT_LE(TransferReceiver::getMinTransferInterval(), rcv.
getInterval());
246 ASSERT_GE(TransferReceiver::getMaxTransferInterval(), rcv.
getInterval());
254 context.
receiver.~TransferReceiver();
259 TEST(TransferReceiver, OutOfBufferSpace_32bytes)
297 TEST(TransferReceiver, OutOfOrderFrames)
321 TEST(TransferReceiver, IntervalMeasurement)
329 static const int INTERVAL = 1000;
333 for (
int i = 0; i < 1000; i++)
351 TEST(TransferReceiver, Restart)
399 TEST(TransferReceiver, UtcTransferTimestamping)
450 TEST(TransferReceiver, HeaderParsing)
452 static const std::string SFT_PAYLOAD =
"1234567";
497 ASSERT_TRUE(
std::equal(SFT_PAYLOAD.begin(), SFT_PAYLOAD.end(),
frame.getPayloadPtr()));
521 for (
unsigned i = 0; i < (
sizeof(ADDRESSED_TRANSFER_TYPES) /
sizeof(ADDRESSED_TRANSFER_TYPES[0])); i++)
527 const uint64_t ts_monotonic = i + 10;
542 for (
unsigned i = 0; i <
int(
sizeof(ADDRESSED_TRANSFER_TYPES) /
sizeof(ADDRESSED_TRANSFER_TYPES[0])); i++)
554 ASSERT_TRUE(
std::equal(SFT_PAYLOAD.begin(), SFT_PAYLOAD.end(),
frame.getPayloadPtr()));