Skip to content

Commit 3f3e0cc

Browse files
committed
Fix other tests
1 parent 4dc5ff0 commit 3f3e0cc

File tree

3 files changed

+73
-7
lines changed

3 files changed

+73
-7
lines changed

tests/unit/cluster/BackendTests.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ TEST_F(ClusterBackendTest, FetchClioNodesDataReturnsDataWithOtherNodes)
160160

161161
auto const otherUuid = boost::uuids::random_generator{}();
162162
auto const otherNodeJson = R"({
163-
"db_role": 2,
163+
"db_role": 3,
164164
"update_time": "2025-01-15T10:30:00Z"
165165
})";
166166

@@ -176,6 +176,7 @@ TEST_F(ClusterBackendTest, FetchClioNodesDataReturnsDataWithOtherNodes)
176176
EXPECT_CALL(*backend_, writeNodeMessage).Times(testing::AtLeast(1));
177177
EXPECT_CALL(writerStateRef, isReadOnly).Times(testing::AtLeast(1)).WillRepeatedly(testing::Return(false));
178178
EXPECT_CALL(writerStateRef, isFallback).Times(testing::AtLeast(1)).WillRepeatedly(testing::Return(false));
179+
EXPECT_CALL(writerStateRef, isLoadingCache).Times(testing::AtLeast(1)).WillRepeatedly(testing::Return(false));
179180
EXPECT_CALL(writerStateRef, isWriting).Times(testing::AtLeast(1)).WillRepeatedly(testing::Return(false));
180181
EXPECT_CALL(callbackMock, Call)
181182
.Times(testing::AtLeast(1))
@@ -255,6 +256,7 @@ TEST_F(ClusterBackendTest, WriteNodeMessageWritesSelfDataWithRecentTimestampAndD
255256
.WillRepeatedly(testing::Return(BackendInterface::ClioNodesDataFetchResult{}));
256257
EXPECT_CALL(writerStateRef, isReadOnly).Times(testing::AtLeast(1)).WillRepeatedly(testing::Return(false));
257258
EXPECT_CALL(writerStateRef, isFallback).Times(testing::AtLeast(1)).WillRepeatedly(testing::Return(false));
259+
EXPECT_CALL(writerStateRef, isLoadingCache).Times(testing::AtLeast(1)).WillRepeatedly(testing::Return(false));
258260
EXPECT_CALL(writerStateRef, isWriting).Times(testing::AtLeast(1)).WillRepeatedly(testing::Return(false));
259261
EXPECT_CALL(*backend_, writeNodeMessage)
260262
.Times(testing::AtLeast(1))
@@ -274,3 +276,4 @@ TEST_F(ClusterBackendTest, WriteNodeMessageWritesSelfDataWithRecentTimestampAndD
274276
clusterBackend.run();
275277
semaphore.acquire();
276278
}
279+

tests/unit/cluster/ClioNodeTests.cpp

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ TEST_F(ClioNodeTest, Deserialization)
8080
EXPECT_NE(node.uuid, nullptr);
8181
EXPECT_EQ(*node.uuid, boost::uuids::uuid{});
8282
EXPECT_EQ(node.updateTime, updateTime);
83-
EXPECT_EQ(node.dbRole, ClioNode::DbRole::NotWriter);
83+
EXPECT_EQ(node.dbRole, ClioNode::DbRole::LoadingCache);
8484
}
8585

8686
TEST_F(ClioNodeTest, DeserializationInvalidTime)
@@ -110,6 +110,7 @@ INSTANTIATE_TEST_SUITE_P(
110110
ClioNodeDbRoleTest,
111111
testing::Values(
112112
ClioNodeDbRoleTestBundle{.testName = "ReadOnly", .role = ClioNode::DbRole::ReadOnly},
113+
ClioNodeDbRoleTestBundle{.testName = "LoadingCache", .role = ClioNode::DbRole::LoadingCache},
113114
ClioNodeDbRoleTestBundle{.testName = "NotWriter", .role = ClioNode::DbRole::NotWriter},
114115
ClioNodeDbRoleTestBundle{.testName = "Writer", .role = ClioNode::DbRole::Writer},
115116
ClioNodeDbRoleTestBundle{.testName = "Fallback", .role = ClioNode::DbRole::Fallback}
@@ -155,6 +156,7 @@ struct ClioNodeFromTestBundle {
155156
std::string testName;
156157
bool readOnly;
157158
bool fallback;
159+
bool loadingCache;
158160
bool writing;
159161
ClioNode::DbRole expectedRole;
160162
};
@@ -173,27 +175,39 @@ INSTANTIATE_TEST_SUITE_P(
173175
.testName = "ReadOnly",
174176
.readOnly = true,
175177
.fallback = false,
178+
.loadingCache = false,
176179
.writing = false,
177180
.expectedRole = ClioNode::DbRole::ReadOnly
178181
},
179182
ClioNodeFromTestBundle{
180183
.testName = "Fallback",
181184
.readOnly = false,
182185
.fallback = true,
186+
.loadingCache = false,
183187
.writing = false,
184188
.expectedRole = ClioNode::DbRole::Fallback
185189
},
190+
ClioNodeFromTestBundle{
191+
.testName = "LoadingCache",
192+
.readOnly = false,
193+
.fallback = false,
194+
.loadingCache = true,
195+
.writing = false,
196+
.expectedRole = ClioNode::DbRole::LoadingCache
197+
},
186198
ClioNodeFromTestBundle{
187199
.testName = "NotWriterNotReadOnly",
188200
.readOnly = false,
189201
.fallback = false,
202+
.loadingCache = false,
190203
.writing = false,
191204
.expectedRole = ClioNode::DbRole::NotWriter
192205
},
193206
ClioNodeFromTestBundle{
194207
.testName = "Writer",
195208
.readOnly = false,
196209
.fallback = false,
210+
.loadingCache = false,
197211
.writing = true,
198212
.expectedRole = ClioNode::DbRole::Writer
199213
}
@@ -209,7 +223,10 @@ TEST_P(ClioNodeFromTest, FromWriterState)
209223
if (not param.readOnly) {
210224
EXPECT_CALL(writerState, isFallback()).WillOnce(testing::Return(param.fallback));
211225
if (not param.fallback) {
212-
EXPECT_CALL(writerState, isWriting()).WillOnce(testing::Return(param.writing));
226+
EXPECT_CALL(writerState, isLoadingCache()).WillOnce(testing::Return(param.loadingCache));
227+
if (not param.loadingCache) {
228+
EXPECT_CALL(writerState, isWriting()).WillOnce(testing::Return(param.writing));
229+
}
213230
}
214231
}
215232

@@ -222,3 +239,8 @@ TEST_P(ClioNodeFromTest, FromWriterState)
222239
EXPECT_GE(node.updateTime, beforeTime);
223240
EXPECT_LE(node.updateTime, afterTime);
224241
}
242+
243+
244+
245+
246+

tests/unit/cluster/WriterDeciderTests.cpp

Lines changed: 45 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -176,10 +176,10 @@ INSTANTIATE_TEST_SUITE_P(
176176
.expectedAction = ExpectedAction::StartWriting
177177
},
178178
WriterDeciderTestParams{
179-
.testName = "AllNodesReadOnlyNoActionTaken",
179+
.testName = "AllNodesReadOnlyGiveUpWriting",
180180
.selfUuidValue = 0x01,
181181
.nodes = {{0x01, ClioNode::DbRole::ReadOnly}, {0x02, ClioNode::DbRole::ReadOnly}},
182-
.expectedAction = ExpectedAction::NoAction
182+
.expectedAction = ExpectedAction::GiveUpWriting
183183
},
184184
WriterDeciderTestParams{
185185
.testName = "EmptyClusterDataNoActionTaken",
@@ -244,10 +244,10 @@ INSTANTIATE_TEST_SUITE_P(
244244
.expectedAction = ExpectedAction::SetFallback
245245
},
246246
WriterDeciderTestParams{
247-
.testName = "SelfIsReadOnlyOthersAreFallbackNoActionTaken",
247+
.testName = "SelfIsReadOnlyOthersAreFallbackGiveUpWriting",
248248
.selfUuidValue = 0x01,
249249
.nodes = {{0x01, ClioNode::DbRole::ReadOnly}, {0x02, ClioNode::DbRole::Fallback}},
250-
.expectedAction = ExpectedAction::NoAction
250+
.expectedAction = ExpectedAction::GiveUpWriting
251251
},
252252
WriterDeciderTestParams{
253253
.testName = "MultipleFallbackNodesSelfNotFallbackSetsFallback",
@@ -267,6 +267,47 @@ INSTANTIATE_TEST_SUITE_P(
267267
{0x03, ClioNode::DbRole::Fallback},
268268
{0x04, ClioNode::DbRole::Writer}},
269269
.expectedAction = ExpectedAction::SetFallback
270+
},
271+
WriterDeciderTestParams{
272+
.testName = "SelfIsLoadingCacheOtherIsWriter",
273+
.selfUuidValue = 0x01,
274+
.nodes = {{0x01, ClioNode::DbRole::LoadingCache}, {0x02, ClioNode::DbRole::Writer}},
275+
.expectedAction = ExpectedAction::GiveUpWriting
276+
},
277+
WriterDeciderTestParams{
278+
.testName = "OtherNodeIsLoadingCacheSkipToNextWriter",
279+
.selfUuidValue = 0x02,
280+
.nodes =
281+
{{0x01, ClioNode::DbRole::LoadingCache},
282+
{0x02, ClioNode::DbRole::Writer},
283+
{0x03, ClioNode::DbRole::NotWriter}},
284+
.expectedAction = ExpectedAction::StartWriting
285+
},
286+
WriterDeciderTestParams{
287+
.testName = "AllNodesLoadingCacheNoActionTaken",
288+
.selfUuidValue = 0x01,
289+
.nodes = {{0x01, ClioNode::DbRole::LoadingCache}, {0x02, ClioNode::DbRole::LoadingCache}},
290+
.expectedAction = ExpectedAction::NoAction
291+
},
292+
WriterDeciderTestParams{
293+
.testName = "MixedWithLoadingCacheReadOnlyFirstNonReadOnlyNonLoadingCacheSelected",
294+
.selfUuidValue = 0x03,
295+
.nodes =
296+
{{0x01, ClioNode::DbRole::ReadOnly},
297+
{0x02, ClioNode::DbRole::LoadingCache},
298+
{0x03, ClioNode::DbRole::Writer},
299+
{0x04, ClioNode::DbRole::NotWriter}},
300+
.expectedAction = ExpectedAction::StartWriting
301+
},
302+
WriterDeciderTestParams{
303+
.testName = "LoadingCacheBeforeWriterSkipsLoadingCache",
304+
.selfUuidValue = 0x04,
305+
.nodes =
306+
{{0x01, ClioNode::DbRole::LoadingCache},
307+
{0x02, ClioNode::DbRole::LoadingCache},
308+
{0x03, ClioNode::DbRole::Writer},
309+
{0x04, ClioNode::DbRole::NotWriter}},
310+
.expectedAction = ExpectedAction::GiveUpWriting
270311
}
271312
),
272313
[](testing::TestParamInfo<WriterDeciderTestParams> const& info) { return info.param.testName; }

0 commit comments

Comments
 (0)