Skip to content

Commit db7c410

Browse files
committed
adding more tests
1 parent af22724 commit db7c410

4 files changed

+134
-216
lines changed

src/app/tests/BUILD.gn

+7-7
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,8 @@ chip_test_suite("tests") {
143143
"TestBuilderParser.cpp",
144144
"TestMessageDef.cpp",
145145
"TestNullable.cpp",
146+
"TestPendingNotificationMap.cpp",
147+
"TestPendingResponseTrackerImpl.cpp",
146148
"TestStatusIB.cpp",
147149
"TestStatusResponseMessage.cpp",
148150
]
@@ -168,6 +170,11 @@ chip_test_suite("tests") {
168170
"${chip_root}/src/lib/support:test_utils",
169171
"${chip_root}/src/lib/support:testing",
170172
]
173+
174+
# DefaultICDClientStorage assumes that raw AES key is used by the application
175+
if (chip_crypto != "psa") {
176+
test_sources += [ "TestDefaultICDClientStorage.cpp" ]
177+
}
171178
}
172179

173180
chip_test_suite_using_nltest("tests_nltest") {
@@ -195,8 +202,6 @@ chip_test_suite_using_nltest("tests_nltest") {
195202
"TestInteractionModelEngine.cpp",
196203
"TestNumericAttributeTraits.cpp",
197204
"TestOperationalStateClusterObjects.cpp",
198-
"TestPendingNotificationMap.cpp",
199-
"TestPendingResponseTrackerImpl.cpp",
200205
"TestPowerSourceCluster.cpp",
201206
"TestReadInteraction.cpp",
202207
"TestReportingEngine.cpp",
@@ -206,11 +211,6 @@ chip_test_suite_using_nltest("tests_nltest") {
206211
"TestWriteInteraction.cpp",
207212
]
208213

209-
# DefaultICDClientStorage assumes that raw AES key is used by the application
210-
if (chip_crypto != "psa") {
211-
test_sources += [ "TestDefaultICDClientStorage.cpp" ]
212-
}
213-
214214
#
215215
# On NRF platforms, the allocation of a large number of pbufs in this test
216216
# to exercise chunking causes it to run out of memory. For now, disable it there.

src/app/tests/TestDefaultICDClientStorage.cpp

+56-106
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
#include <lib/support/Span.h>
1919
#include <lib/support/UnitTestRegistration.h>
20-
#include <nlunit-test.h>
20+
#include <pw_unit_test/framework.h>
2121
#include <system/SystemPacketBuffer.h>
2222

2323
#include <app/icd/client/DefaultICDClientStorage.h>
@@ -55,7 +55,14 @@ struct TestClientInfo : public ICDClientInfo
5555
}
5656
};
5757

58-
void TestClientInfoCount(nlTestSuite * apSuite, void * apContext)
58+
class TestDefaultICDClientStorage : public ::testing::Test
59+
{
60+
public:
61+
static void SetUpTestSuite() { ASSERT_EQ(chip::Platform::MemoryInit(), CHIP_NO_ERROR); }
62+
static void TearDownTestSuite() { chip::Platform::MemoryShutdown(); }
63+
};
64+
65+
TEST_F(TestDefaultICDClientStorage, TestClientInfoCount)
5966
{
6067
CHIP_ERROR err = CHIP_NO_ERROR;
6168
FabricIndex fabricId = 1;
@@ -67,9 +74,9 @@ void TestClientInfoCount(nlTestSuite * apSuite, void * apContext)
6774
{
6875
DefaultICDClientStorage manager;
6976
err = manager.Init(&clientInfoStorage, &keystore);
70-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
77+
EXPECT_EQ(err, CHIP_NO_ERROR);
7178
err = manager.UpdateFabricList(fabricId);
72-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
79+
EXPECT_EQ(err, CHIP_NO_ERROR);
7380
// Write some ClientInfos and see the counts are correct
7481
ICDClientInfo clientInfo1;
7582
clientInfo1.peer_node = ScopedNodeId(nodeId1, fabricId);
@@ -78,38 +85,38 @@ void TestClientInfoCount(nlTestSuite * apSuite, void * apContext)
7885
ICDClientInfo clientInfo3;
7986
clientInfo3.peer_node = ScopedNodeId(nodeId1, fabricId);
8087
err = manager.SetKey(clientInfo1, ByteSpan(kKeyBuffer1));
81-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
88+
EXPECT_EQ(err, CHIP_NO_ERROR);
8289
err = manager.StoreEntry(clientInfo1);
83-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
90+
EXPECT_EQ(err, CHIP_NO_ERROR);
8491

8592
err = manager.SetKey(clientInfo2, ByteSpan(kKeyBuffer2));
86-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
93+
EXPECT_EQ(err, CHIP_NO_ERROR);
8794
err = manager.StoreEntry(clientInfo2);
88-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
95+
EXPECT_EQ(err, CHIP_NO_ERROR);
8996

9097
err = manager.SetKey(clientInfo3, ByteSpan(kKeyBuffer3));
91-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
98+
EXPECT_EQ(err, CHIP_NO_ERROR);
9299
err = manager.StoreEntry(clientInfo3);
93-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
100+
EXPECT_EQ(err, CHIP_NO_ERROR);
94101

95102
ICDClientInfo clientInfo;
96103
// Make sure iterator counts correctly
97104
auto * iterator = manager.IterateICDClientInfo();
98105
// same nodeId for clientInfo2 and clientInfo3, so the new one replace old one
99-
NL_TEST_ASSERT(apSuite, iterator->Count() == 2);
106+
EXPECT_EQ(iterator->Count(), 2u);
100107

101-
NL_TEST_ASSERT(apSuite, iterator->Next(clientInfo));
102-
NL_TEST_ASSERT(apSuite, clientInfo.peer_node.GetNodeId() == nodeId2);
103-
NL_TEST_ASSERT(apSuite, iterator->Next(clientInfo));
104-
NL_TEST_ASSERT(apSuite, clientInfo.peer_node.GetNodeId() == nodeId1);
108+
EXPECT_TRUE(iterator->Next(clientInfo));
109+
EXPECT_EQ(clientInfo.peer_node.GetNodeId(), nodeId2);
110+
EXPECT_TRUE(iterator->Next(clientInfo));
111+
EXPECT_EQ(clientInfo.peer_node.GetNodeId(), nodeId1);
105112

106113
iterator->Release();
107114

108115
// Delete all and verify iterator counts 0
109116
err = manager.DeleteAllEntries(fabricId);
110-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
117+
EXPECT_EQ(err, CHIP_NO_ERROR);
111118
iterator = manager.IterateICDClientInfo();
112-
NL_TEST_ASSERT(apSuite, iterator->Count() == 0);
119+
EXPECT_EQ(iterator->Count(), 0u);
113120

114121
// Verify ClientInfos manually count correctly
115122
size_t count = 0;
@@ -118,19 +125,19 @@ void TestClientInfoCount(nlTestSuite * apSuite, void * apContext)
118125
count++;
119126
}
120127
iterator->Release();
121-
NL_TEST_ASSERT(apSuite, count == 0);
128+
EXPECT_EQ(count, 0u);
122129
}
123130

124131
{
125132
DefaultICDClientStorage manager;
126133
err = manager.Init(&clientInfoStorage, &keystore);
127-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
134+
EXPECT_EQ(err, CHIP_NO_ERROR);
128135
err = manager.UpdateFabricList(fabricId);
129-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
136+
EXPECT_EQ(err, CHIP_NO_ERROR);
130137
}
131138
}
132139

133-
void TestClientInfoCountMultipleFabric(nlTestSuite * apSuite, void * apContext)
140+
TEST_F(TestDefaultICDClientStorage, TestClientInfoCountMultipleFabric)
134141
{
135142
CHIP_ERROR err = CHIP_NO_ERROR;
136143
FabricIndex fabricId1 = 1;
@@ -142,11 +149,11 @@ void TestClientInfoCountMultipleFabric(nlTestSuite * apSuite, void * apContext)
142149
TestPersistentStorageDelegate clientInfoStorage;
143150
TestSessionKeystoreImpl keystore;
144151
err = manager.Init(&clientInfoStorage, &keystore);
145-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
152+
EXPECT_EQ(err, CHIP_NO_ERROR);
146153
err = manager.UpdateFabricList(fabricId1);
147-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
154+
EXPECT_EQ(err, CHIP_NO_ERROR);
148155
err = manager.UpdateFabricList(fabricId2);
149-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
156+
EXPECT_EQ(err, CHIP_NO_ERROR);
150157

151158
// Write some ClientInfos and see the counts are correct
152159
ICDClientInfo clientInfo1;
@@ -157,39 +164,39 @@ void TestClientInfoCountMultipleFabric(nlTestSuite * apSuite, void * apContext)
157164
clientInfo3.peer_node = ScopedNodeId(nodeId3, fabricId2);
158165

159166
err = manager.SetKey(clientInfo1, ByteSpan(kKeyBuffer1));
160-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
167+
EXPECT_EQ(err, CHIP_NO_ERROR);
161168
err = manager.StoreEntry(clientInfo1);
162-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
169+
EXPECT_EQ(err, CHIP_NO_ERROR);
163170

164171
err = manager.SetKey(clientInfo2, ByteSpan(kKeyBuffer2));
165-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
172+
EXPECT_EQ(err, CHIP_NO_ERROR);
166173
err = manager.StoreEntry(clientInfo2);
167-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
174+
EXPECT_EQ(err, CHIP_NO_ERROR);
168175

169176
err = manager.SetKey(clientInfo3, ByteSpan(kKeyBuffer3));
170-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
177+
EXPECT_EQ(err, CHIP_NO_ERROR);
171178
err = manager.StoreEntry(clientInfo3);
172-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
179+
EXPECT_EQ(err, CHIP_NO_ERROR);
173180
// Make sure iterator counts correctly
174181
auto * iterator = manager.IterateICDClientInfo();
175-
NL_TEST_ASSERT(apSuite, iterator->Count() == 3);
182+
EXPECT_EQ(iterator->Count(), 3u);
176183
iterator->Release();
177184

178185
// Delete all and verify iterator counts 0
179186
err = manager.DeleteEntry(ScopedNodeId(nodeId1, fabricId1));
180-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
187+
EXPECT_EQ(err, CHIP_NO_ERROR);
181188
iterator = manager.IterateICDClientInfo();
182-
NL_TEST_ASSERT(apSuite, iterator != nullptr);
189+
ASSERT_NE(iterator, nullptr);
183190
DefaultICDClientStorage::ICDClientInfoIteratorWrapper clientInfoIteratorWrapper(iterator);
184-
NL_TEST_ASSERT(apSuite, iterator->Count() == 2);
191+
EXPECT_EQ(iterator->Count(), 2u);
185192

186193
err = manager.DeleteEntry(ScopedNodeId(nodeId2, fabricId1));
187-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
188-
NL_TEST_ASSERT(apSuite, iterator->Count() == 1);
194+
EXPECT_EQ(err, CHIP_NO_ERROR);
195+
EXPECT_EQ(iterator->Count(), 1u);
189196

190197
err = manager.DeleteEntry(ScopedNodeId(nodeId3, fabricId2));
191-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
192-
NL_TEST_ASSERT(apSuite, iterator->Count() == 0);
198+
EXPECT_EQ(err, CHIP_NO_ERROR);
199+
EXPECT_EQ(iterator->Count(), 0u);
193200

194201
// Verify ClientInfos manually count correctly
195202
size_t count = 0;
@@ -199,10 +206,10 @@ void TestClientInfoCountMultipleFabric(nlTestSuite * apSuite, void * apContext)
199206
count++;
200207
}
201208

202-
NL_TEST_ASSERT(apSuite, count == 0);
209+
EXPECT_FALSE(count);
203210
}
204211

205-
void TestProcessCheckInPayload(nlTestSuite * apSuite, void * apContext)
212+
TEST_F(TestDefaultICDClientStorage, TestProcessCheckInPayload)
206213
{
207214
CHIP_ERROR err = CHIP_NO_ERROR;
208215
FabricIndex fabricId = 1;
@@ -212,98 +219,41 @@ void TestProcessCheckInPayload(nlTestSuite * apSuite, void * apContext)
212219

213220
DefaultICDClientStorage manager;
214221
err = manager.Init(&clientInfoStorage, &keystore);
215-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
222+
EXPECT_EQ(err, CHIP_NO_ERROR);
216223
err = manager.UpdateFabricList(fabricId);
217-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
224+
EXPECT_EQ(err, CHIP_NO_ERROR);
218225
// Populate clientInfo
219226
ICDClientInfo clientInfo;
220227
clientInfo.peer_node = ScopedNodeId(nodeId, fabricId);
221228

222229
err = manager.SetKey(clientInfo, ByteSpan(kKeyBuffer1));
223-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
230+
EXPECT_EQ(err, CHIP_NO_ERROR);
224231
err = manager.StoreEntry(clientInfo);
225-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
232+
EXPECT_EQ(err, CHIP_NO_ERROR);
226233

227234
uint32_t counter = 1;
228235
System::PacketBufferHandle buffer = MessagePacketBuffer::New(chip::Protocols::SecureChannel::CheckinMessage::kMinPayloadSize);
229236
MutableByteSpan output{ buffer->Start(), buffer->MaxDataLength() };
230237
err = chip::Protocols::SecureChannel::CheckinMessage::GenerateCheckinMessagePayload(
231238
clientInfo.aes_key_handle, clientInfo.hmac_key_handle, counter, ByteSpan(), output);
232-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
239+
EXPECT_EQ(err, CHIP_NO_ERROR);
233240

234241
buffer->SetDataLength(static_cast<uint16_t>(output.size()));
235242
ICDClientInfo decodeClientInfo;
236243
uint32_t checkInCounter = 0;
237244
ByteSpan payload{ buffer->Start(), buffer->DataLength() };
238245
err = manager.ProcessCheckInPayload(payload, decodeClientInfo, checkInCounter);
239-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
246+
EXPECT_EQ(err, CHIP_NO_ERROR);
240247

241248
// 2. Use a key not available in the storage for encoding
242249
err = manager.SetKey(clientInfo, ByteSpan(kKeyBuffer2));
243-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
250+
EXPECT_EQ(err, CHIP_NO_ERROR);
244251
err = chip::Protocols::SecureChannel::CheckinMessage::GenerateCheckinMessagePayload(
245252
clientInfo.aes_key_handle, clientInfo.hmac_key_handle, counter, ByteSpan(), output);
246-
NL_TEST_ASSERT(apSuite, err == CHIP_NO_ERROR);
253+
EXPECT_EQ(err, CHIP_NO_ERROR);
247254

248255
buffer->SetDataLength(static_cast<uint16_t>(output.size()));
249256
ByteSpan payload1{ buffer->Start(), buffer->DataLength() };
250257
err = manager.ProcessCheckInPayload(payload1, decodeClientInfo, checkInCounter);
251-
NL_TEST_ASSERT(apSuite, err == CHIP_ERROR_NOT_FOUND);
252-
}
253-
254-
/**
255-
* Set up the test suite.
256-
*/
257-
int TestClientInfo_Setup(void * apContext)
258-
{
259-
VerifyOrReturnError(CHIP_NO_ERROR == Platform::MemoryInit(), FAILURE);
260-
261-
return SUCCESS;
258+
EXPECT_EQ(err, CHIP_ERROR_NOT_FOUND);
262259
}
263-
264-
/**
265-
* Tear down the test suite.
266-
*/
267-
int TestClientInfo_Teardown(void * apContext)
268-
{
269-
Platform::MemoryShutdown();
270-
return SUCCESS;
271-
}
272-
273-
// Test Suite
274-
275-
/**
276-
* Test Suite that lists all the test functions.
277-
*/
278-
// clang-format off
279-
static const nlTest sTests[] =
280-
{
281-
NL_TEST_DEF("TestClientInfoCount", TestClientInfoCount),
282-
NL_TEST_DEF("TestClientInfoCountMultipleFabric", TestClientInfoCountMultipleFabric),
283-
NL_TEST_DEF("TestProcessCheckInPayload", TestProcessCheckInPayload),
284-
285-
NL_TEST_SENTINEL()
286-
};
287-
// clang-format on
288-
289-
// clang-format off
290-
static nlTestSuite sSuite =
291-
{
292-
"TestDefaultICDClientStorage",
293-
&sTests[0],
294-
&TestClientInfo_Setup, &TestClientInfo_Teardown
295-
};
296-
// clang-format on
297-
298-
/**
299-
* Main
300-
*/
301-
int TestDefaultICDClientStorage()
302-
{
303-
// Run test suit against one context
304-
nlTestRunner(&sSuite, nullptr);
305-
306-
return (nlTestRunnerStats(&sSuite));
307-
}
308-
309-
CHIP_REGISTER_TEST_SUITE(TestDefaultICDClientStorage)

0 commit comments

Comments
 (0)