All unit tests compile, but crash. This is the most horrifying commit I've ever made.

This commit is contained in:
Pavel Kirienko
2015-07-01 14:55:24 +03:00
parent feb7600f17
commit 8a2e22046e
42 changed files with 421 additions and 587 deletions
@@ -62,6 +62,8 @@ static bool validateDataTypeInfoResponse(const std::auto_ptr<ServiceCallResultCo
return true;
}
// TODO FIXME NEW IMPLEMENTATION
#if 0
TEST(DataTypeInfoProvider, Basic)
{
@@ -225,3 +227,5 @@ TEST(DataTypeInfoProvider, Basic)
ASSERT_EQ(0, cats_cln.collector.result->getResponse().aggregate_signature);
ASSERT_FALSE(cats_cln.collector.result->getResponse().mutually_known_ids.any());
}
#endif
@@ -95,7 +95,7 @@ TEST(dynamic_node_id_server_AllocationRequestManager, Basic)
AllocationRequestManager manager(nodes.a, tracer, handler);
ASSERT_LE(0, manager.init());
ASSERT_LE(0, manager.init(uavcan::TransferPriority::OneHigherThanLowest));
/*
* Allocation
@@ -8,7 +8,6 @@
#include "../../helpers.hpp"
#include "../memory_storage_backend.hpp"
TEST(dynamic_node_id_server_ClusterManager, Initialization)
{
using namespace uavcan::dynamic_node_id_server::distributed;
@@ -32,11 +31,11 @@ TEST(dynamic_node_id_server_ClusterManager, Initialization)
ClusterManager mgr(nodes.a, storage, log, tracer);
// Too big
ASSERT_GT(0, mgr.init(MaxClusterSize + 1));
ASSERT_GT(0, mgr.init(MaxClusterSize + 1, uavcan::TransferPriority::OneHigherThanLowest));
ASSERT_EQ(0, storage.getNumKeys());
// OK
ASSERT_LE(0, mgr.init(5));
ASSERT_LE(0, mgr.init(5, uavcan::TransferPriority::OneHigherThanLowest));
ASSERT_EQ(1, storage.getNumKeys());
ASSERT_EQ("5", storage.get("cluster_size"));
@@ -57,12 +56,12 @@ TEST(dynamic_node_id_server_ClusterManager, Initialization)
ClusterManager mgr(nodes.a, storage, log, tracer);
// Not configured
ASSERT_GT(0, mgr.init());
ASSERT_GT(0, mgr.init(0, uavcan::TransferPriority::OneHigherThanLowest));
ASSERT_EQ(0, storage.getNumKeys());
// OK
storage.set("cluster_size", "5");
ASSERT_LE(0, mgr.init());
ASSERT_LE(0, mgr.init(0, uavcan::TransferPriority::OneHigherThanLowest));
ASSERT_EQ(1, storage.getNumKeys());
}
}
@@ -94,7 +93,7 @@ TEST(dynamic_node_id_server_ClusterManager, OneServer)
/*
* Starting
*/
ASSERT_LE(0, mgr.init(1));
ASSERT_LE(0, mgr.init(1, uavcan::TransferPriority::OneHigherThanLowest));
ASSERT_EQ(0, mgr.getNumKnownServers());
ASSERT_TRUE(mgr.isClusterDiscovered());
@@ -171,7 +170,7 @@ TEST(dynamic_node_id_server_ClusterManager, ThreeServers)
/*
* Starting
*/
ASSERT_LE(0, mgr.init(3));
ASSERT_LE(0, mgr.init(3, uavcan::TransferPriority::OneHigherThanLowest));
ASSERT_EQ(0, mgr.getNumKnownServers());
ASSERT_FALSE(mgr.isClusterDiscovered());
@@ -62,8 +62,8 @@ TEST(dynamic_node_id_server_RaftCore, Basic)
/*
* Initialization
*/
ASSERT_LE(0, raft_a->init(2));
ASSERT_LE(0, raft_b->init(2));
ASSERT_LE(0, raft_a->init(2, uavcan::TransferPriority::OneHigherThanLowest));
ASSERT_LE(0, raft_b->init(2, uavcan::TransferPriority::OneHigherThanLowest));
/*
* Running and trying not to fall
@@ -102,7 +102,7 @@ TEST(dynamic_node_id_server_RaftCore, Basic)
storage_a.reset();
raft_a.reset(new RaftCore(nodes.a, storage_a, tracer_a, commit_handler_a));
ASSERT_LE(0, raft_a->init(2));
ASSERT_LE(0, raft_a->init(2, uavcan::TransferPriority::OneHigherThanLowest));
ASSERT_EQ(0, raft_a->getCommitIndex());
nodes.spinBoth(uavcan::MonotonicDuration::fromMSec(9000));
@@ -104,7 +104,7 @@ TEST(dynamic_node_id_server_NodeDiscoverer, Basic)
/*
* Initialization
*/
ASSERT_LE(0, disc.init());
ASSERT_LE(0, disc.init(uavcan::TransferPriority::OneHigherThanLowest));
ASSERT_FALSE(disc.hasUnknownNodes());
@@ -208,7 +208,7 @@ TEST(dynamic_node_id_server_NodeDiscoverer, RestartAndMaxAttempts)
/*
* Initialization
*/
ASSERT_LE(0, disc.init());
ASSERT_LE(0, disc.init(uavcan::TransferPriority::OneHigherThanLowest));
ASSERT_FALSE(disc.hasUnknownNodes());
@@ -172,7 +172,9 @@ TEST(GlobalTimeSyncSlave, Basic)
static uavcan::Frame makeSyncMsg(uavcan::uint64_t usec, uavcan::NodeID snid, uavcan::TransferID tid)
{
uavcan::Frame frame(uavcan::protocol::GlobalTimeSync::DefaultDataTypeID, uavcan::TransferTypeMessageBroadcast,
snid, uavcan::NodeID::Broadcast, 0, tid, true);
snid, uavcan::NodeID::Broadcast, tid);
frame.setStartOfTransfer(true);
frame.setEndOfTransfer(true);
EXPECT_EQ(8, frame.setPayload(reinterpret_cast<uint8_t*>(&usec), 8)); // Assuming little endian
return frame;
}
+3 -1
View File
@@ -148,7 +148,9 @@ static inline void emulateSingleFrameBroadcastTransfer(CanDriver& can, uavcan::N
// DataTypeID data_type_id, TransferType transfer_type, NodeID src_node_id, NodeID dst_node_id,
// uint_fast8_t frame_index, TransferID transfer_id, bool last_frame
uavcan::Frame frame(MessageType::DefaultDataTypeID, uavcan::TransferTypeMessageBroadcast,
node_id, uavcan::NodeID::Broadcast, 0, tid, true);
node_id, uavcan::NodeID::Broadcast, tid);
frame.setStartOfTransfer(true);
frame.setEndOfTransfer(true);
ASSERT_EQ(buffer.getMaxWritePos(), frame.setPayload(buffer.getRawPtr(), buffer.getMaxWritePos()));
@@ -55,7 +55,9 @@ TEST(TransportStatsProvider, Basic)
* Sending a malformed frame, it must be registered as tranfer error
*/
uavcan::Frame frame(uavcan::protocol::GetTransportStats::DefaultDataTypeID, uavcan::TransferTypeServiceRequest,
2, 1, 0, 0, true);
2, 1, 0);
frame.setStartOfTransfer(true);
frame.setEndOfTransfer(true);
uavcan::CanFrame can_frame;
ASSERT_TRUE(frame.compile(can_frame));
nodes.can_a.read_queue.push(can_frame);