6 # pragma GCC diagnostic ignored "-Wzero-as-null-pointer-constant"
9 #include <gtest/gtest.h>
13 #include "../event_tracer.hpp"
14 #include "../../helpers.hpp"
15 #include "../memory_storage_backend.hpp"
22 const std::string
id_;
26 std::cout <<
"ENTRY COMMITTED [" <<
id_ <<
"]\n" << entry << std::endl;
31 std::cout <<
"I AM LEADER [" <<
id_ <<
"]: " << (local_node_is_leader ?
"YES" :
"NOT ANYMORE") << std::endl;
39 TEST(dynamic_node_id_server_RaftCore, Basic)
42 using namespace uavcan::protocol::dynamic_node_id::server;
49 EventTracer tracer_a(
"a");
50 EventTracer tracer_b(
"b");
58 std::unique_ptr<RaftCore> raft_a(
new RaftCore(nodes.
a, storage_a, tracer_a, commit_handler_a));
59 std::unique_ptr<RaftCore> raft_b(
new RaftCore(nodes.
b, storage_b, tracer_b, commit_handler_b));
73 ASSERT_TRUE(raft_a->isLeader() || raft_b->isLeader());
75 ASSERT_EQ(0, raft_a->getCommitIndex());
76 ASSERT_EQ(0, raft_b->getCommitIndex());
81 Entry::FieldTypes::unique_id unique_id;
84 (raft_a->isLeader() ? raft_a : raft_b)->appendLog(unique_id,
uavcan::NodeID(1));
88 ASSERT_EQ(1, raft_a->getCommitIndex());
89 ASSERT_EQ(1, raft_b->getCommitIndex());
103 raft_a.reset(
new RaftCore(nodes.
a, storage_a, tracer_a, commit_handler_a));
105 ASSERT_EQ(0, raft_a->getCommitIndex());
109 ASSERT_FALSE(raft_a->isLeader());
110 ASSERT_TRUE(raft_b->isLeader());
112 ASSERT_EQ(1, raft_a->getCommitIndex());
113 ASSERT_EQ(1, raft_b->getCommitIndex());
117 TEST(dynamic_node_id_server_Server, Basic)
120 using namespace uavcan::protocol::dynamic_node_id;
121 using namespace uavcan::protocol::dynamic_node_id::server;
138 own_unique_id[0] = 0xAA;
139 own_unique_id[3] = 0xCC;
140 own_unique_id[7] = 0xEE;
141 own_unique_id[9] = 0xBB;
148 ASSERT_LE(0, server.
init(own_unique_id, 1));
156 uavcan::protocol::HardwareVersion::FieldTypes::unique_id unique_id;
162 ASSERT_LE(0, client.
start(unique_id, PreferredNodeID));
176 TEST(dynamic_node_id_server, ObjectSizes)
179 using namespace uavcan::protocol::dynamic_node_id::server;