Go to the documentation of this file.
5 #include <gtest/gtest.h>
7 #include "../event_tracer.hpp"
8 #include "../memory_storage_backend.hpp"
11 TEST(dynamic_node_id_server_PersistentState, Initialization)
24 ASSERT_LE(0, pers.
init());
27 ASSERT_EQ(
"0", storage.
get(
"log_last_index"));
28 ASSERT_EQ(
"0", storage.
get(
"current_term"));
29 ASSERT_EQ(
"0", storage.
get(
"voted_for"));
39 Log log(storage, tracer);
40 ASSERT_LE(0, log.
init());
46 ASSERT_LE(0, pers.
init());
49 ASSERT_EQ(
"0", storage.
get(
"log_last_index"));
50 ASSERT_EQ(
"0", storage.
get(
"current_term"));
51 ASSERT_EQ(
"0", storage.
get(
"voted_for"));
61 Log log(storage, tracer);
62 ASSERT_LE(0, log.
init());
66 storage.
set(
"current_term",
"1");
70 ASSERT_GT(0, pers.
init());
72 storage.
set(
"current_term",
"0");
74 ASSERT_LE(0, pers.
init());
77 ASSERT_EQ(
"0", storage.
get(
"log_last_index"));
78 ASSERT_EQ(
"0", storage.
get(
"current_term"));
79 ASSERT_EQ(
"0", storage.
get(
"voted_for"));
89 Log log(storage, tracer);
90 ASSERT_LE(0, log.
init());
92 uavcan::protocol::dynamic_node_id::server::Entry entry;
95 entry.unique_id[0] = 1;
96 ASSERT_LE(0, log.
append(entry));
102 ASSERT_GT(0, pers.
init());
104 storage.
set(
"current_term",
"0");
105 storage.
set(
"voted_for",
"0");
106 ASSERT_GT(0, pers.
init());
108 storage.
set(
"current_term",
"1");
109 storage.
set(
"voted_for",
"128");
110 ASSERT_GT(0, pers.
init());
112 storage.
set(
"voted_for",
"0");
113 ASSERT_LE(0, pers.
init());
116 ASSERT_EQ(
"1", storage.
get(
"log_last_index"));
117 ASSERT_EQ(
"1", storage.
get(
"current_term"));
118 ASSERT_EQ(
"0", storage.
get(
"voted_for"));
123 TEST(dynamic_node_id_server_PersistentState, Basic)
134 ASSERT_LE(0, pers.
init());
136 ASSERT_EQ(
"0", storage.
get(
"log_last_index"));
137 ASSERT_EQ(
"0", storage.
get(
"current_term"));
138 ASSERT_EQ(
"0", storage.
get(
"voted_for"));
143 uavcan::protocol::dynamic_node_id::server::Entry entry;
146 entry.unique_id[0] = 1;
149 ASSERT_EQ(
"1", storage.
get(
"log_last_index"));
150 ASSERT_EQ(
"0", storage.
get(
"current_term"));
151 ASSERT_EQ(
"0", storage.
get(
"voted_for"));
160 ASSERT_EQ(
"1", storage.
get(
"log_last_index"));
161 ASSERT_EQ(
"2", storage.
get(
"current_term"));
162 ASSERT_EQ(
"0", storage.
get(
"voted_for"));
175 ASSERT_EQ(
"1", storage.
get(
"log_last_index"));
176 ASSERT_EQ(
"2", storage.
get(
"current_term"));
177 ASSERT_EQ(
"45", storage.
get(
"voted_for"));
182 ASSERT_EQ(
"0", storage.
get(
"voted_for"));
186 ASSERT_EQ(
"45", storage.
get(
"voted_for"));
201 ASSERT_EQ(
"1", storage.
get(
"log_last_index"));
202 ASSERT_EQ(
"2", storage.
get(
"current_term"));
203 ASSERT_EQ(
"45", storage.
get(
"voted_for"));
bool isVotedForSet() const
TEST(dynamic_node_id_server_PersistentState, Initialization)
int setVotedFor(NodeID node_id)
int append(const Entry &entry)
int setCurrentTerm(Term term)
virtual void set(const String &key, const String &value)
virtual String get(const String &key) const
Term getCurrentTerm() const
unsigned getNumKeys() const
NodeID getVotedFor() const
void failOnSetCalls(bool really)