14
14
* See the License for the specific language governing permissions and
15
15
* limitations under the License.
16
16
*/
17
- #include < lib/support/UnitTestRegistration.h>
18
17
#include < transport/retransmit/Cache.h>
19
18
20
19
#include < bitset>
21
- #include < nlunit-test .h>
20
+ #include < gtest/gtest .h>
22
21
23
22
// Helpers for simple payload management
24
23
namespace {
@@ -45,18 +44,16 @@ class TestableCache : public chip::Retransmit::Cache<KeyType, PayloadType, N>
45
44
class IntPayloadTracker
46
45
{
47
46
public:
48
- void Init (nlTestSuite * suite) { mSuite = suite; }
49
-
50
47
void Acquire (int value)
51
48
{
52
- NL_TEST_ASSERT ( mSuite , (value > 0 ) && value < kMaxPayloadValue );
49
+ EXPECT_TRUE ( (value > 0 ) && value < kMaxPayloadValue );
53
50
mAcquired .set (static_cast <size_t >(value));
54
51
}
55
52
56
53
void Release (int value)
57
54
{
58
- NL_TEST_ASSERT ( mSuite , (value > 0 ) && value < kMaxPayloadValue );
59
- NL_TEST_ASSERT ( mSuite , mAcquired .test (static_cast <size_t >(value)));
55
+ EXPECT_TRUE ( (value > 0 ) && value < kMaxPayloadValue );
56
+ EXPECT_TRUE ( mAcquired .test (static_cast <size_t >(value)));
60
57
mAcquired .reset (static_cast <size_t >(value));
61
58
}
62
59
@@ -65,7 +62,6 @@ class IntPayloadTracker
65
62
bool IsAcquired (int value) const { return mAcquired .test (static_cast <size_t >(value)); }
66
63
67
64
private:
68
- nlTestSuite * mSuite ;
69
65
std::bitset<kMaxPayloadValue > mAcquired ;
70
66
};
71
67
@@ -104,176 +100,153 @@ void chip::Retransmit::Lifetime<int>::Release(int & value)
104
100
105
101
namespace {
106
102
107
- void TestNoOp (nlTestSuite * inSuite, void * inContext )
103
+ TEST (TestCache, TestNoOp )
108
104
{
109
105
// unused address cache should not do any Acquire/release at any time
110
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 0 );
106
+ EXPECT_EQ ( gPayloadTracker .Count (), 0u );
111
107
{
112
108
TestableCache<int , int , 20 > test;
113
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 0 );
109
+ EXPECT_EQ ( gPayloadTracker .Count (), 0u );
114
110
}
115
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 0 );
111
+ EXPECT_EQ ( gPayloadTracker .Count (), 0u );
116
112
}
117
113
118
- void TestDestructorFree (nlTestSuite * inSuite, void * inContext )
114
+ TEST (TestCache, TestDestructorFree )
119
115
{
120
116
{
121
117
TestableCache<int , int , 20 > test;
122
118
123
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 0 );
119
+ EXPECT_EQ ( gPayloadTracker .Count (), 0u );
124
120
125
- NL_TEST_ASSERT (inSuite, test.AddValue (1 , 1 ) == CHIP_NO_ERROR);
126
- NL_TEST_ASSERT (inSuite, test.AddValue (2 , 2 ) == CHIP_NO_ERROR);
121
+ EXPECT_EQ ( test.AddValue (1 , 1 ), CHIP_NO_ERROR);
122
+ EXPECT_EQ ( test.AddValue (2 , 2 ), CHIP_NO_ERROR);
127
123
128
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 2 );
124
+ EXPECT_EQ ( gPayloadTracker .Count (), 2u );
129
125
}
130
126
131
127
// destructor should release the items
132
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 0 );
128
+ EXPECT_EQ ( gPayloadTracker .Count (), 0u );
133
129
}
134
130
135
- void OutOfSpace (nlTestSuite * inSuite, void * inContext )
131
+ TEST (TestCache, OutOfSpace )
136
132
{
137
133
{
138
134
TestableCache<int , int , 4 > test;
139
135
140
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 0 );
136
+ EXPECT_EQ ( gPayloadTracker .Count (), 0u );
141
137
142
- NL_TEST_ASSERT (inSuite, test.AddValue (1 , 1 ) == CHIP_NO_ERROR);
143
- NL_TEST_ASSERT (inSuite, test.AddValue (2 , 2 ) == CHIP_NO_ERROR);
144
- NL_TEST_ASSERT (inSuite, test.AddValue (3 , 4 ) == CHIP_NO_ERROR);
145
- NL_TEST_ASSERT (inSuite, test.AddValue (4 , 6 ) == CHIP_NO_ERROR);
146
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 4 );
138
+ EXPECT_EQ ( test.AddValue (1 , 1 ), CHIP_NO_ERROR);
139
+ EXPECT_EQ ( test.AddValue (2 , 2 ), CHIP_NO_ERROR);
140
+ EXPECT_EQ ( test.AddValue (3 , 4 ), CHIP_NO_ERROR);
141
+ EXPECT_EQ ( test.AddValue (4 , 6 ), CHIP_NO_ERROR);
142
+ EXPECT_EQ ( gPayloadTracker .Count (), 4u );
147
143
148
- NL_TEST_ASSERT (inSuite, test.AddValue (5 , 8 ) == CHIP_ERROR_NO_MEMORY);
149
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 4 );
144
+ EXPECT_EQ ( test.AddValue (5 , 8 ), CHIP_ERROR_NO_MEMORY);
145
+ EXPECT_EQ ( gPayloadTracker .Count (), 4u );
150
146
151
- NL_TEST_ASSERT (inSuite, test.AddValue (6 , 10 ) == CHIP_ERROR_NO_MEMORY);
152
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 4 );
147
+ EXPECT_EQ ( test.AddValue (6 , 10 ), CHIP_ERROR_NO_MEMORY);
148
+ EXPECT_EQ ( gPayloadTracker .Count (), 4u );
153
149
}
154
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 0 );
150
+ EXPECT_EQ ( gPayloadTracker .Count (), 0u );
155
151
}
156
152
157
- void AddRemove (nlTestSuite * inSuite, void * inContext )
153
+ TEST (TestCache, AddRemove )
158
154
{
159
155
TestableCache<int , int , 3 > test;
160
156
161
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 0 );
157
+ EXPECT_EQ ( gPayloadTracker .Count (), 0u );
162
158
163
- NL_TEST_ASSERT (inSuite, test.AddValue (1 , 1 ) == CHIP_NO_ERROR);
164
- NL_TEST_ASSERT (inSuite, test.AddValue (2 , 2 ) == CHIP_NO_ERROR);
165
- NL_TEST_ASSERT (inSuite, test.AddValue (3 , 4 ) == CHIP_NO_ERROR);
166
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 3 );
159
+ EXPECT_EQ ( test.AddValue (1 , 1 ), CHIP_NO_ERROR);
160
+ EXPECT_EQ ( test.AddValue (2 , 2 ), CHIP_NO_ERROR);
161
+ EXPECT_EQ ( test.AddValue (3 , 4 ), CHIP_NO_ERROR);
162
+ EXPECT_EQ ( gPayloadTracker .Count (), 3u );
167
163
168
- NL_TEST_ASSERT (inSuite, test.AddValue (10 , 8 ) == CHIP_ERROR_NO_MEMORY);
169
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 3 );
164
+ EXPECT_EQ ( test.AddValue (10 , 8 ), CHIP_ERROR_NO_MEMORY);
165
+ EXPECT_EQ ( gPayloadTracker .Count (), 3u );
170
166
171
- NL_TEST_ASSERT (inSuite, test.Remove (2 ) == CHIP_NO_ERROR);
172
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 2 );
167
+ EXPECT_EQ ( test.Remove (2 ), CHIP_NO_ERROR);
168
+ EXPECT_EQ ( gPayloadTracker .Count (), 2u );
173
169
174
- NL_TEST_ASSERT (inSuite, test.AddValue (10 , 8 ) == CHIP_NO_ERROR);
175
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 3 );
170
+ EXPECT_EQ ( test.AddValue (10 , 8 ), CHIP_NO_ERROR);
171
+ EXPECT_EQ ( gPayloadTracker .Count (), 3u );
176
172
177
- NL_TEST_ASSERT (inSuite, test.Remove (14 ) == CHIP_ERROR_KEY_NOT_FOUND);
178
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 3 );
173
+ EXPECT_EQ ( test.Remove (14 ), CHIP_ERROR_KEY_NOT_FOUND);
174
+ EXPECT_EQ ( gPayloadTracker .Count (), 3u );
179
175
180
- NL_TEST_ASSERT (inSuite, test.Remove (1 ) == CHIP_NO_ERROR);
181
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 2 );
176
+ EXPECT_EQ ( test.Remove (1 ), CHIP_NO_ERROR);
177
+ EXPECT_EQ ( gPayloadTracker .Count (), 2u );
182
178
183
- NL_TEST_ASSERT (inSuite, test.Remove (3 ) == CHIP_NO_ERROR);
184
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 1 );
179
+ EXPECT_EQ ( test.Remove (3 ), CHIP_NO_ERROR);
180
+ EXPECT_EQ ( gPayloadTracker .Count (), 1u );
185
181
186
- NL_TEST_ASSERT (inSuite, test.Remove (3 ) == CHIP_ERROR_KEY_NOT_FOUND);
187
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 1 );
182
+ EXPECT_EQ ( test.Remove (3 ), CHIP_ERROR_KEY_NOT_FOUND);
183
+ EXPECT_EQ ( gPayloadTracker .Count (), 1u );
188
184
189
- NL_TEST_ASSERT (inSuite, test.Remove (10 ) == CHIP_NO_ERROR);
190
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 0 );
185
+ EXPECT_EQ ( test.Remove (10 ), CHIP_NO_ERROR);
186
+ EXPECT_EQ ( gPayloadTracker .Count (), 0u );
191
187
192
- NL_TEST_ASSERT (inSuite, test.Remove (10 ) == CHIP_ERROR_KEY_NOT_FOUND);
193
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 0 );
188
+ EXPECT_EQ ( test.Remove (10 ), CHIP_ERROR_KEY_NOT_FOUND);
189
+ EXPECT_EQ ( gPayloadTracker .Count (), 0u );
194
190
}
195
191
196
- void RemoveMatching (nlTestSuite * inSuite, void * inContext )
192
+ TEST (TestCache, RemoveMatching )
197
193
{
198
194
TestableCache<int , int , 4 > test;
199
195
200
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 0 );
196
+ EXPECT_EQ ( gPayloadTracker .Count (), 0u );
201
197
202
- NL_TEST_ASSERT (inSuite, test.AddValue (1 , 1 ) == CHIP_NO_ERROR);
203
- NL_TEST_ASSERT (inSuite, test.AddValue (2 , 2 ) == CHIP_NO_ERROR);
204
- NL_TEST_ASSERT (inSuite, test.AddValue (3 , 4 ) == CHIP_NO_ERROR);
205
- NL_TEST_ASSERT (inSuite, test.AddValue (4 , 8 ) == CHIP_NO_ERROR);
206
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 4 );
198
+ EXPECT_EQ ( test.AddValue (1 , 1 ), CHIP_NO_ERROR);
199
+ EXPECT_EQ ( test.AddValue (2 , 2 ), CHIP_NO_ERROR);
200
+ EXPECT_EQ ( test.AddValue (3 , 4 ), CHIP_NO_ERROR);
201
+ EXPECT_EQ ( test.AddValue (4 , 8 ), CHIP_NO_ERROR);
202
+ EXPECT_EQ ( gPayloadTracker .Count (), 4u );
207
203
208
204
test.RemoveMatching (DivisibleBy (2 ));
209
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 2 );
205
+ EXPECT_EQ ( gPayloadTracker .Count (), 2u );
210
206
211
207
// keys 1 and 3 remain
212
- NL_TEST_ASSERT (inSuite, gPayloadTracker .IsAcquired (1 ));
213
- NL_TEST_ASSERT (inSuite, gPayloadTracker .IsAcquired (4 ));
208
+ EXPECT_TRUE ( gPayloadTracker .IsAcquired (1 ));
209
+ EXPECT_TRUE ( gPayloadTracker .IsAcquired (4 ));
214
210
215
- NL_TEST_ASSERT (inSuite, test.Remove (3 ) == CHIP_NO_ERROR);
216
- NL_TEST_ASSERT (inSuite, gPayloadTracker .IsAcquired (1 ));
217
- NL_TEST_ASSERT (inSuite, ! gPayloadTracker .IsAcquired (4 ));
211
+ EXPECT_EQ ( test.Remove (3 ), CHIP_NO_ERROR);
212
+ EXPECT_TRUE ( gPayloadTracker .IsAcquired (1 ));
213
+ EXPECT_FALSE ( gPayloadTracker .IsAcquired (4 ));
218
214
}
219
215
220
- void FindMatching (nlTestSuite * inSuite, void * inContext )
216
+ TEST (TestCache, FindMatching )
221
217
{
222
218
TestableCache<int , int , 4 > test;
223
219
224
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 0 );
220
+ EXPECT_EQ ( gPayloadTracker .Count (), 0u );
225
221
226
- NL_TEST_ASSERT (inSuite, test.AddValue (1 , 1 ) == CHIP_NO_ERROR);
227
- NL_TEST_ASSERT (inSuite, test.AddValue (2 , 2 ) == CHIP_NO_ERROR);
228
- NL_TEST_ASSERT (inSuite, test.AddValue (3 , 4 ) == CHIP_NO_ERROR);
229
- NL_TEST_ASSERT (inSuite, test.AddValue (4 , 8 ) == CHIP_NO_ERROR);
230
- NL_TEST_ASSERT (inSuite, gPayloadTracker .Count () == 4 );
222
+ EXPECT_EQ ( test.AddValue (1 , 1 ), CHIP_NO_ERROR);
223
+ EXPECT_EQ ( test.AddValue (2 , 2 ), CHIP_NO_ERROR);
224
+ EXPECT_EQ ( test.AddValue (3 , 4 ), CHIP_NO_ERROR);
225
+ EXPECT_EQ ( test.AddValue (4 , 8 ), CHIP_NO_ERROR);
226
+ EXPECT_EQ ( gPayloadTracker .Count (), 4u );
231
227
232
228
const int * key;
233
229
const int * value;
234
230
235
- NL_TEST_ASSERT (inSuite, test.Find (DivisibleBy (20 ), &key, &value) == false );
236
- NL_TEST_ASSERT (inSuite, key == nullptr );
237
- NL_TEST_ASSERT (inSuite, value == nullptr );
231
+ EXPECT_FALSE ( test.Find (DivisibleBy (20 ), &key, &value));
232
+ EXPECT_EQ ( key, nullptr );
233
+ EXPECT_EQ ( value, nullptr );
238
234
239
235
// This relies on linear add. May need changing if implementation changes
240
- NL_TEST_ASSERT (inSuite, test.Find (DivisibleBy (2 ), &key, &value) == true );
241
- NL_TEST_ASSERT (inSuite, *key == 2 );
242
- NL_TEST_ASSERT (inSuite, *value == 2 );
236
+ EXPECT_TRUE ( test.Find (DivisibleBy (2 ), &key, &value));
237
+ EXPECT_EQ ( *key, 2 );
238
+ EXPECT_EQ ( *value, 2 );
243
239
244
- NL_TEST_ASSERT (inSuite, test.Remove (*key) == CHIP_NO_ERROR);
240
+ EXPECT_EQ ( test.Remove (*key), CHIP_NO_ERROR);
245
241
246
- NL_TEST_ASSERT (inSuite, test.Find (DivisibleBy (2 ), &key, &value) == true );
247
- NL_TEST_ASSERT (inSuite, *key == 4 );
248
- NL_TEST_ASSERT (inSuite, *value == 8 );
242
+ EXPECT_TRUE ( test.Find (DivisibleBy (2 ), &key, &value));
243
+ EXPECT_EQ ( *key, 4 );
244
+ EXPECT_EQ ( *value, 8 );
249
245
250
- NL_TEST_ASSERT (inSuite, test.Remove (*key) == CHIP_NO_ERROR);
251
- NL_TEST_ASSERT (inSuite, test.Find (DivisibleBy (2 ), &key, &value) == false );
252
- NL_TEST_ASSERT (inSuite, key == nullptr );
253
- NL_TEST_ASSERT (inSuite, value == nullptr );
246
+ EXPECT_EQ ( test.Remove (*key), CHIP_NO_ERROR);
247
+ EXPECT_FALSE ( test.Find (DivisibleBy (2 ), &key, &value));
248
+ EXPECT_EQ ( key, nullptr );
249
+ EXPECT_EQ ( value, nullptr );
254
250
}
255
251
256
252
} // namespace
257
-
258
- // clang-format off
259
- static const nlTest sTests [] =
260
- {
261
- NL_TEST_DEF (" NoOp" , TestNoOp),
262
- NL_TEST_DEF (" DestructorFree" , TestDestructorFree),
263
- NL_TEST_DEF (" OutOfSpace" , OutOfSpace),
264
- NL_TEST_DEF (" AddRemove" , AddRemove),
265
- NL_TEST_DEF (" RemoveMatching" , RemoveMatching),
266
- NL_TEST_DEF (" FindMatching" , FindMatching),
267
- NL_TEST_SENTINEL ()
268
- };
269
- // clang-format on
270
-
271
- int TestCache ()
272
- {
273
- nlTestSuite theSuite = { " Retransmit-Cache" , &sTests [0 ], nullptr , nullptr };
274
- gPayloadTracker .Init (&theSuite);
275
- nlTestRunner (&theSuite, nullptr );
276
- return nlTestRunnerStats (&theSuite);
277
- }
278
-
279
- CHIP_REGISTER_TEST_SUITE (TestCache)
0 commit comments