Strict warnings in the unit tests. This commit needs to be carefully reviewed.

This commit is contained in:
Pavel Kirienko
2014-08-28 04:54:59 +04:00
parent d9d6e80aea
commit b09bfab117
27 changed files with 205 additions and 178 deletions
+8 -8
View File
@@ -163,7 +163,7 @@ public:
uavcan::ISystemClock& iclock;
bool select_failure;
CanDriverMock(int num_ifaces, uavcan::ISystemClock& iclock)
CanDriverMock(unsigned num_ifaces, uavcan::ISystemClock& iclock)
: ifaces(num_ifaces, CanIfaceMock(iclock))
, iclock(iclock)
, select_failure(false)
@@ -179,15 +179,15 @@ public:
return -1;
}
const uavcan::uint8_t valid_iface_mask = (1 << getNumIfaces()) - 1;
const uavcan::uint8_t valid_iface_mask = uavcan::uint8_t((1 << getNumIfaces()) - 1);
EXPECT_FALSE(inout_masks.write & ~valid_iface_mask);
EXPECT_FALSE(inout_masks.read & ~valid_iface_mask);
uavcan::uint8_t out_write_mask = 0;
uavcan::uint8_t out_read_mask = 0;
for (int i = 0; i < getNumIfaces(); i++)
for (unsigned i = 0; i < getNumIfaces(); i++)
{
const uavcan::uint8_t mask = 1 << i;
const uavcan::uint8_t mask = uavcan::uint8_t(1 << i);
if ((inout_masks.write & mask) && ifaces.at(i).writeable)
{
out_write_mask |= mask;
@@ -208,14 +208,14 @@ public:
{
if (diff.isPositive())
{
mock->advance(diff.toUSec()); // Emulating timeout
mock->advance(uint64_t(diff.toUSec())); // Emulating timeout
}
}
else
{
if (diff.isPositive())
{
usleep(diff.toUSec());
usleep(unsigned(diff.toUSec()));
}
}
return 0;
@@ -224,12 +224,12 @@ public:
}
virtual uavcan::ICanIface* getIface(uavcan::uint8_t iface_index) { return &ifaces.at(iface_index); }
virtual uavcan::uint8_t getNumIfaces() const { return ifaces.size(); }
virtual uavcan::uint8_t getNumIfaces() const { return uavcan::uint8_t(ifaces.size()); }
};
enum FrameType { STD, EXT };
inline uavcan::CanFrame makeCanFrame(uint32_t id, const std::string& str_data, FrameType type)
{
id |= (type == EXT) ? uavcan::CanFrame::FlagEFF : 0;
return uavcan::CanFrame(id, reinterpret_cast<const uint8_t*>(str_data.c_str()), str_data.length());
return uavcan::CanFrame(id, reinterpret_cast<const uint8_t*>(str_data.c_str()), uavcan::uint8_t(str_data.length()));
}
+1 -1
View File
@@ -23,7 +23,7 @@ TEST(CanDriverMock, Basic)
EXPECT_EQ(7, masks.write);
EXPECT_EQ(0, masks.read);
for (int i = 0; i < 3; i++)
for (unsigned i = 0; i < 3; i++)
{
driver.ifaces.at(i).writeable = false;
}
+2 -2
View File
@@ -85,7 +85,7 @@ TEST(Frame, FrameParsing)
for (unsigned i = 0; i < sizeof(CanFrame::data); i++)
{
can.data[i] = i | (i << 4);
can.data[i] = uint8_t(i | (i << 4));
}
// CAN ID field order: Transfer ID, Last Frame, Frame Index, Source Node ID, Transfer Type, Data Type ID
@@ -227,7 +227,7 @@ TEST(Frame, FrameToString)
uint8_t data[8];
for (unsigned i = 0; i < sizeof(data); i++)
{
data[i] = i;
data[i] = uint8_t(i);
}
rx_frame.setPayload(data, sizeof(data));
@@ -14,7 +14,7 @@ static uavcan::RxFrame makeFrame()
uavcan::Frame(123, uavcan::TransferTypeMessageBroadcast, 1, uavcan::NodeID::Broadcast, 0, 1, true),
tsMono(123), tsUtc(456), 0);
uint8_t data[8];
for (unsigned i = 0; i < sizeof(data); i++)
for (uint8_t i = 0; i < sizeof(data); i++)
{
data[i] = i;
}
@@ -93,12 +93,12 @@ TEST(MultiFrameIncomingTransfer, Basic)
const uint8_t* const data_ptr = reinterpret_cast<const uint8_t*>(data.c_str());
ASSERT_FALSE(bufmgr.access(bufmgr_key));
ASSERT_TRUE(bufmgr.create(bufmgr_key));
ASSERT_EQ(data.length(), bufmgr.access(bufmgr_key)->write(0, data_ptr, data.length()));
ASSERT_EQ(data.length(), bufmgr.access(bufmgr_key)->write(0, data_ptr, unsigned(data.length())));
/*
* Check
*/
ASSERT_TRUE(match(it, frame, data_ptr, data.length()));
ASSERT_TRUE(match(it, frame, data_ptr, unsigned(data.length())));
/*
* Buffer release
+7 -7
View File
@@ -22,12 +22,12 @@ static bool allEqual(const T (&a)[Size])
return n == 0;
}
template <typename T, unsigned Size>
static void fill(T (&a)[Size], int value)
template <typename T, unsigned Size, typename R>
static void fill(T (&a)[Size], R value)
{
for (unsigned i = 0; i < Size; i++)
{
a[i] = value;
a[i] = T(value);
}
}
@@ -50,7 +50,7 @@ static bool matchAgainst(const std::string& data, const uavcan::ITransferBuffer&
}
else
{
const int res = tbb.read(offset, local_buffer, len);
const int res = tbb.read(offset, local_buffer, unsigned(len));
if (res != len)
{
std::cout << "matchAgainst(): res " << res << " expected " << len << std::endl;
@@ -97,7 +97,7 @@ TEST(StaticTransferBuffer, Basic)
ASSERT_TRUE(allEqual(local_buffer));
// Bulk write
ASSERT_EQ(TEST_BUFFER_SIZE, buf.write(0, test_data_ptr, TEST_DATA.length()));
ASSERT_EQ(TEST_BUFFER_SIZE, buf.write(0, test_data_ptr, unsigned(TEST_DATA.length())));
ASSERT_TRUE(matchAgainstTestData(buf, 0));
ASSERT_TRUE(matchAgainstTestData(buf, TEST_BUFFER_SIZE));
ASSERT_TRUE(matchAgainstTestData(buf, TEST_BUFFER_SIZE / 2));
@@ -149,7 +149,7 @@ TEST(DynamicTransferBufferManagerEntry, Basic)
ASSERT_TRUE(allEqual(local_buffer));
// Bulk write
ASSERT_EQ(MAX_SIZE, buf.write(0, test_data_ptr, TEST_DATA.length()));
ASSERT_EQ(MAX_SIZE, buf.write(0, test_data_ptr, unsigned(TEST_DATA.length())));
ASSERT_LT(0, pool.getNumUsedBlocks()); // Making sure some memory was used
@@ -222,7 +222,7 @@ TEST(TransferBufferManager, TestDataValidation)
static int fillTestData(const std::string& data, uavcan::ITransferBuffer* tbb)
{
return tbb->write(0, reinterpret_cast<const uint8_t*>(data.c_str()), data.length());
return tbb->write(0, reinterpret_cast<const uint8_t*>(data.c_str()), unsigned(data.length()));
}
TEST(TransferBufferManager, Basic)
@@ -106,9 +106,8 @@ TEST(TransferListener, CrcFailure)
ASSERT_TRUE(ser_mft.size() > 1);
ASSERT_TRUE(ser_sft.size() == 1);
// Fuck my brain.
const_cast<uint8_t*>(ser_mft[1].getPayloadPtr())[1] = ~ser_mft[1].getPayloadPtr()[1]; // CRC is no longer valid
const_cast<uint8_t*>(ser_sft[0].getPayloadPtr())[2] = ~ser_sft[0].getPayloadPtr()[2]; // no CRC - will be undetected
const_cast<uint8_t*>(ser_mft[1].getPayloadPtr())[1] = uint8_t(~ser_mft[1].getPayloadPtr()[1]); // CRC invalid now
const_cast<uint8_t*>(ser_sft[0].getPayloadPtr())[2] = uint8_t(~ser_sft[0].getPayloadPtr()[2]); // no CRC here
/*
* Sending and making sure that MFT was not received, but SFT was.
@@ -122,7 +121,7 @@ TEST(TransferListener, CrcFailure)
emulator.send(sers);
Transfer tr_sft_damaged = tr_sft;
tr_sft_damaged.payload[2] = ~tr_sft.payload[2]; // Damaging the data similarly, so that it can be matched
tr_sft_damaged.payload[2] = char(~tr_sft.payload[2]); // Damaging the data similarly, so that it can be matched
ASSERT_TRUE(subscriber.matchAndPop(tr_sft_damaged));
ASSERT_TRUE(subscriber.isEmpty());
@@ -25,7 +25,7 @@ struct RxFrameGenerator
, bufmgr_key(bufmgr_key)
{ }
uavcan::RxFrame operator()(int iface_index, const std::string& data, uint8_t frame_index, bool last,
uavcan::RxFrame operator()(uint8_t iface_index, const std::string& data, uint8_t frame_index, bool last,
uint8_t transfer_id, uint64_t ts_monotonic, uint64_t ts_utc = 0)
{
const uavcan::NodeID dst_nid =
@@ -35,7 +35,8 @@ struct RxFrameGenerator
uavcan::Frame frame(data_type_id, bufmgr_key.getTransferType(), bufmgr_key.getNodeID(),
dst_nid, frame_index, transfer_id, last);
EXPECT_EQ(data.length(), frame.setPayload(reinterpret_cast<const uint8_t*>(data.c_str()), data.length()));
EXPECT_EQ(data.length(),
frame.setPayload(reinterpret_cast<const uint8_t*>(data.c_str()), unsigned(data.length())));
return uavcan::RxFrame(frame, uavcan::MonotonicTime::fromUSec(ts_monotonic),
uavcan::UtcTime::fromUSec(ts_utc), iface_index);
@@ -75,7 +76,7 @@ static bool matchBufferContent(const uavcan::ITransferBuffer* tbb, const std::st
std::cerr << "matchBufferContent(): Content is too long" << std::endl;
std::exit(1);
}
tbb->read(0, data, content.length());
tbb->read(0, data, unsigned(content.length()));
if (std::equal(content.begin(), content.end(), data))
{
return true;
@@ -260,9 +261,9 @@ TEST(TransferReceiver, UnterminatedTransfer)
uavcan::TransferBufferAccessor bk(context.bufmgr, RxFrameGenerator::DEFAULT_KEY);
std::string content;
for (int i = 0; i <= uavcan::Frame::MaxIndex; i++)
for (uint8_t i = 0; i <= uavcan::Frame::MaxIndex; i++)
{
CHECK_NOT_COMPLETE(rcv.addFrame(gen(1, "12345678", i, false, 0, 1000 + i), bk)); // Last one will be dropped
CHECK_NOT_COMPLETE(rcv.addFrame(gen(1, "12345678", i, false, 0, 1000U + i), bk)); // Last one will be dropped
content += "12345678";
}
CHECK_COMPLETE(rcv.addFrame(gen(1, "12345678", uavcan::Frame::MaxIndex, true, 0, 1100), bk));
@@ -461,7 +462,7 @@ TEST(TransferReceiver, HeaderParsing)
/*
* MFT, message unicast, service request/response
*/
for (int i = 0; i < int(sizeof(ADDRESSED_TRANSFER_TYPES) / sizeof(ADDRESSED_TRANSFER_TYPES[0])); i++)
for (unsigned i = 0; i < (sizeof(ADDRESSED_TRANSFER_TYPES) / sizeof(ADDRESSED_TRANSFER_TYPES[0])); i++)
{
gen.bufmgr_key =
uavcan::TransferBufferManagerKey(gen.bufmgr_key.getNodeID(), ADDRESSED_TRANSFER_TYPES[i]);
@@ -504,13 +505,13 @@ TEST(TransferReceiver, HeaderParsing)
/*
* SFT, message unicast, service request/response
*/
for (int i = 0; i < int(sizeof(ADDRESSED_TRANSFER_TYPES) / sizeof(ADDRESSED_TRANSFER_TYPES[0])); i++)
for (unsigned i = 0; i < int(sizeof(ADDRESSED_TRANSFER_TYPES) / sizeof(ADDRESSED_TRANSFER_TYPES[0])); i++)
{
gen.bufmgr_key =
uavcan::TransferBufferManagerKey(gen.bufmgr_key.getNodeID(), ADDRESSED_TRANSFER_TYPES[i]);
uavcan::TransferBufferAccessor bk(context.bufmgr, gen.bufmgr_key);
const uavcan::RxFrame frame = gen(0, SFT_PAYLOAD_UNICAST, 0, true, tid.get(), i + 10000);
const uavcan::RxFrame frame = gen(0, SFT_PAYLOAD_UNICAST, 0, true, tid.get(), i + 10000U);
CHECK_SINGLE_FRAME(rcv.addFrame(frame, bk));
ASSERT_EQ(0x0000, rcv.getLastTransferCrc()); // Default value - zero
+3 -3
View File
@@ -13,7 +13,7 @@ static int sendOne(uavcan::TransferSender& sender, const std::string& data,
uint64_t monotonic_tx_deadline, uint64_t monotonic_blocking_deadline,
uavcan::TransferType transfer_type, uavcan::NodeID dst_node_id)
{
return sender.send(reinterpret_cast<const uint8_t*>(data.c_str()), data.length(),
return sender.send(reinterpret_cast<const uint8_t*>(data.c_str()), unsigned(data.length()),
uavcan::MonotonicTime::fromUSec(monotonic_tx_deadline),
uavcan::MonotonicTime::fromUSec(monotonic_blocking_deadline), transfer_type, dst_node_id);
}
@@ -22,7 +22,7 @@ static int sendOne(uavcan::TransferSender& sender, const std::string& data,
uint64_t monotonic_tx_deadline, uint64_t monotonic_blocking_deadline,
uavcan::TransferType transfer_type, uavcan::NodeID dst_node_id, uavcan::TransferID tid)
{
return sender.send(reinterpret_cast<const uint8_t*>(data.c_str()), data.length(),
return sender.send(reinterpret_cast<const uint8_t*>(data.c_str()), unsigned(data.length()),
uavcan::MonotonicTime::fromUSec(monotonic_tx_deadline),
uavcan::MonotonicTime::fromUSec(monotonic_blocking_deadline), transfer_type, dst_node_id, tid);
}
@@ -101,7 +101,7 @@ TEST(TransferSender, Basic)
/*
* Receiving on the other side.
*/
for (int i = 0; i < driver.getNumIfaces(); i++) // Moving the frames from TX to RX side
for (uint8_t i = 0; i < driver.getNumIfaces(); i++) // Moving the frames from TX to RX side
{
CanIfaceMock& iface = driver.ifaces.at(i);
std::cout << "Num frames: " << iface.tx.size() << std::endl;
@@ -23,8 +23,8 @@ TEST(TransferTestHelpers, Transfer)
// Filling the buffer with data
static const std::string TEST_DATA = "Kaneda! What do you see? Kaneda! What do you see? Kaneda! Kaneda!!!";
ASSERT_TRUE(tba.create());
ASSERT_EQ(TEST_DATA.length(),
tba.access()->write(0, reinterpret_cast<const uint8_t*>(TEST_DATA.c_str()), TEST_DATA.length()));
ASSERT_EQ(TEST_DATA.length(), tba.access()->write(0, reinterpret_cast<const uint8_t*>(TEST_DATA.c_str()),
unsigned(TEST_DATA.length())));
// Reading back
const Transfer transfer(mfit, uavcan::DataTypeDescriptor());
@@ -47,8 +47,8 @@ struct Transfer
{
break;
}
payload += std::string(reinterpret_cast<const char*>(buf), res);
offset += res;
payload += std::string(reinterpret_cast<const char*>(buf), unsigned(res));
offset += unsigned(res);
}
}
@@ -186,27 +186,27 @@ std::vector<uavcan::RxFrame> serializeTransfer(const Transfer& transfer)
if (need_crc)
{
uavcan::TransferCRC payload_crc = transfer.data_type.getSignature().toTransferCRC();
payload_crc.add(reinterpret_cast<const uint8_t*>(transfer.payload.c_str()), transfer.payload.length());
payload_crc.add(reinterpret_cast<const uint8_t*>(transfer.payload.c_str()), uint16_t(transfer.payload.length()));
// Little endian
raw_payload.push_back(payload_crc.get() & 0xFF);
raw_payload.push_back((payload_crc.get() >> 8) & 0xFF);
raw_payload.push_back(uint8_t(payload_crc.get() & 0xFF));
raw_payload.push_back(uint8_t((payload_crc.get() >> 8) & 0xFF));
}
raw_payload.insert(raw_payload.end(), transfer.payload.begin(), transfer.payload.end());
std::vector<uavcan::RxFrame> output;
unsigned frame_index = 0;
uint8_t frame_index = 0;
unsigned offset = 0;
uavcan::MonotonicTime ts_monotonic = transfer.ts_monotonic;
uavcan::UtcTime ts_utc = transfer.ts_utc;
while (true)
{
const int bytes_left = raw_payload.size() - offset;
const int bytes_left = int(raw_payload.size()) - int(offset);
EXPECT_TRUE(bytes_left >= 0);
uavcan::Frame frm(transfer.data_type.getID(), transfer.transfer_type, transfer.src_node_id,
transfer.dst_node_id, frame_index, transfer.transfer_id);
const int spres = frm.setPayload(&*(raw_payload.begin() + offset), bytes_left);
const int spres = frm.setPayload(&*(raw_payload.begin() + offset), unsigned(bytes_left));
if (spres < 0)
{
std::cerr << ">_<" << std::endl;
@@ -217,7 +217,7 @@ std::vector<uavcan::RxFrame> serializeTransfer(const Transfer& transfer)
frm.makeLast();
}
offset += spres;
offset += unsigned(spres);
EXPECT_GE(uavcan::Frame::MaxIndex, frame_index);
frame_index++;
@@ -236,7 +236,7 @@ std::vector<uavcan::RxFrame> serializeTransfer(const Transfer& transfer)
inline uavcan::DataTypeDescriptor makeDataType(uavcan::DataTypeKind kind, uint16_t id, const char* name = "")
{
const uavcan::DataTypeSignature signature((uint64_t(kind) << 16) | (id << 8) | (id & 0xFF));
const uavcan::DataTypeSignature signature((uint64_t(kind) << 16) | uint16_t(id << 8) | uint16_t(id & 0xFF));
return uavcan::DataTypeDescriptor(kind, id, signature, name);
}