17
17
*/
18
18
19
19
#include < lib/dnssd/minimal_mdns/core/QName.h>
20
- #include < gtest/gtest.h>
20
+ #include < lib/support/UnitTestRegistration.h>
21
+
22
+ #include < nlunit-test.h>
21
23
22
24
namespace {
23
25
@@ -38,263 +40,299 @@ static SerializedQNameIterator AsSerializedQName(const uint8_t (&v)[N])
38
40
return SerializedQNameIterator (BytesRange (v, v + N - 1 ), v);
39
41
}
40
42
41
-
42
- TEST (TestQName, IteratorTest)
43
+ void IteratorTest (nlTestSuite * inSuite, void * inContext)
43
44
{
44
45
{
45
46
static const uint8_t kOneItem [] = " \04 test\00 " ;
46
47
SerializedQNameIterator it = AsSerializedQName (kOneItem );
47
48
48
- EXPECT_TRUE ( it.Next ());
49
- EXPECT_FALSE ( strcmp (it.Value (), " test" ));
50
- EXPECT_FALSE ( it.Next ());
51
- EXPECT_TRUE ( it.IsValid ());
49
+ NL_TEST_ASSERT (inSuite, it.Next ());
50
+ NL_TEST_ASSERT (inSuite, strcmp (it.Value (), " test" ) == 0 );
51
+ NL_TEST_ASSERT (inSuite, ! it.Next ());
52
+ NL_TEST_ASSERT (inSuite, it.IsValid ());
52
53
}
53
54
54
55
{
55
56
static const uint8_t kManyItems [] = " \04 this\02 is\01 a\04 test\00 " ;
56
57
SerializedQNameIterator it = AsSerializedQName (kManyItems );
57
58
58
- EXPECT_TRUE ( it.Next ());
59
- EXPECT_FALSE ( strcmp (it.Value (), " this" ));
59
+ NL_TEST_ASSERT (inSuite, it.Next ());
60
+ NL_TEST_ASSERT (inSuite, strcmp (it.Value (), " this" ) == 0 );
60
61
61
- EXPECT_TRUE ( it.Next ());
62
- EXPECT_FALSE ( strcmp (it.Value (), " is" ));
62
+ NL_TEST_ASSERT (inSuite, it.Next ());
63
+ NL_TEST_ASSERT (inSuite, strcmp (it.Value (), " is" ) == 0 );
63
64
64
- EXPECT_TRUE ( it.Next ());
65
- EXPECT_FALSE ( strcmp (it.Value (), " a" ));
65
+ NL_TEST_ASSERT (inSuite, it.Next ());
66
+ NL_TEST_ASSERT (inSuite, strcmp (it.Value (), " a" ) == 0 );
66
67
67
- EXPECT_TRUE ( it.Next ());
68
- EXPECT_FALSE ( strcmp (it.Value (), " test" ));
68
+ NL_TEST_ASSERT (inSuite, it.Next ());
69
+ NL_TEST_ASSERT (inSuite, strcmp (it.Value (), " test" ) == 0 );
69
70
70
- EXPECT_FALSE ( it.Next ());
71
- EXPECT_TRUE ( it.IsValid ());
71
+ NL_TEST_ASSERT (inSuite, ! it.Next ());
72
+ NL_TEST_ASSERT (inSuite, it.IsValid ());
72
73
}
73
74
{
74
75
static const uint8_t kPtrItems [] = " abc\02 is\01 a\04 test\00\04 this\xc0\03 " ;
75
76
SerializedQNameIterator it (BytesRange (kPtrItems , kPtrItems + sizeof (kPtrItems )), kPtrItems + 14 );
76
77
77
- EXPECT_TRUE ( it.Next ());
78
- EXPECT_FALSE ( strcmp (it.Value (), " this" ));
78
+ NL_TEST_ASSERT (inSuite, it.Next ());
79
+ NL_TEST_ASSERT (inSuite, strcmp (it.Value (), " this" ) == 0 );
79
80
80
- EXPECT_TRUE ( it.Next ());
81
- EXPECT_FALSE ( strcmp (it.Value (), " is" ));
81
+ NL_TEST_ASSERT (inSuite, it.Next ());
82
+ NL_TEST_ASSERT (inSuite, strcmp (it.Value (), " is" ) == 0 );
82
83
83
- EXPECT_TRUE ( it.Next ());
84
- EXPECT_FALSE ( strcmp (it.Value (), " a" ));
84
+ NL_TEST_ASSERT (inSuite, it.Next ());
85
+ NL_TEST_ASSERT (inSuite, strcmp (it.Value (), " a" ) == 0 );
85
86
86
- EXPECT_TRUE ( it.Next ());
87
- EXPECT_FALSE ( strcmp (it.Value (), " test" ));
87
+ NL_TEST_ASSERT (inSuite, it.Next ());
88
+ NL_TEST_ASSERT (inSuite, strcmp (it.Value (), " test" ) == 0 );
88
89
89
- EXPECT_FALSE ( it.Next ());
90
- EXPECT_TRUE ( it.IsValid ());
90
+ NL_TEST_ASSERT (inSuite, ! it.Next ());
91
+ NL_TEST_ASSERT (inSuite, it.IsValid ());
91
92
}
92
93
}
93
94
94
-
95
- TEST (TestQName, ErrorTest)
95
+ void ErrorTest (nlTestSuite * inSuite, void * inContext)
96
96
{
97
97
{
98
98
// Truncated before the end
99
99
static const uint8_t kData [] = " \04 test" ;
100
100
SerializedQNameIterator it = AsSerializedQName (kData );
101
101
102
- EXPECT_FALSE ( it.Next ());
103
- EXPECT_FALSE ( it.IsValid ());
102
+ NL_TEST_ASSERT (inSuite, ! it.Next ());
103
+ NL_TEST_ASSERT (inSuite, ! it.IsValid ());
104
104
}
105
105
106
106
{
107
107
// Truncated before the end
108
108
static const uint8_t kData [] = " \02 " ;
109
109
SerializedQNameIterator it = AsSerializedQName (kData );
110
110
111
- EXPECT_FALSE ( it.Next ());
112
- EXPECT_FALSE ( it.IsValid ());
111
+ NL_TEST_ASSERT (inSuite, ! it.Next ());
112
+ NL_TEST_ASSERT (inSuite, ! it.IsValid ());
113
113
}
114
114
115
115
{
116
116
// Truncated before the end
117
117
static const uint8_t kData [] = " \xc0 " ;
118
118
SerializedQNameIterator it = AsSerializedQName (kData );
119
119
120
- EXPECT_FALSE ( it.Next ());
121
- EXPECT_FALSE ( it.IsValid ());
120
+ NL_TEST_ASSERT (inSuite, ! it.Next ());
121
+ NL_TEST_ASSERT (inSuite, ! it.IsValid ());
122
122
}
123
123
}
124
124
125
-
126
- TEST (TestQName, InvalidReferencing)
125
+ void InvalidReferencing (nlTestSuite * inSuite, void * inContext)
127
126
{
128
127
{
129
128
// Truncated before the end (but seemingly valid in case of error)
130
129
// does NOT use AsSerializedQName (because out of range)
131
130
static const uint8_t kData [] = " \00\xc0\x00 " ;
132
131
SerializedQNameIterator it (BytesRange (kData , kData + 2 ), kData + 1 );
133
132
134
- EXPECT_FALSE ( it.Next ());
135
- EXPECT_FALSE ( it.IsValid ());
133
+ NL_TEST_ASSERT (inSuite, ! it.Next ());
134
+ NL_TEST_ASSERT (inSuite, ! it.IsValid ());
136
135
}
137
136
138
137
{
139
138
// Infinite recursion
140
139
static const uint8_t kData [] = " \03 test\xc0\x00 " ;
141
140
SerializedQNameIterator it = AsSerializedQName (kData );
142
141
143
- EXPECT_TRUE ( it.Next ());
144
- EXPECT_FALSE ( it.Next ());
145
- EXPECT_FALSE ( it.IsValid ());
142
+ NL_TEST_ASSERT (inSuite, it.Next ());
143
+ NL_TEST_ASSERT (inSuite, ! it.Next ());
144
+ NL_TEST_ASSERT (inSuite, ! it.IsValid ());
146
145
}
147
146
148
147
{
149
148
// Infinite recursion by referencing own element (inside the stream)
150
149
static const uint8_t kData [] = " \03 test\xc0\x05 " ;
151
150
SerializedQNameIterator it = AsSerializedQName (kData );
152
151
153
- EXPECT_TRUE ( it.Next ());
154
- EXPECT_FALSE ( it.Next ());
155
- EXPECT_FALSE ( it.IsValid ());
152
+ NL_TEST_ASSERT (inSuite, it.Next ());
153
+ NL_TEST_ASSERT (inSuite, ! it.Next ());
154
+ NL_TEST_ASSERT (inSuite, ! it.IsValid ());
156
155
}
157
156
158
157
{
159
158
// Infinite recursion by referencing own element at the start
160
159
static const uint8_t kData [] = " \xc0\x00 " ;
161
160
SerializedQNameIterator it = AsSerializedQName (kData );
162
161
163
- EXPECT_FALSE ( it.Next ());
164
- EXPECT_FALSE ( it.IsValid ());
162
+ NL_TEST_ASSERT (inSuite, ! it.Next ());
163
+ NL_TEST_ASSERT (inSuite, ! it.IsValid ());
165
164
}
166
165
167
166
{
168
167
// Reference that goes forwad instead of backward
169
168
static const uint8_t kData [] = " \03 test\xc0\x07 " ;
170
169
SerializedQNameIterator it = AsSerializedQName (kData );
171
170
172
- EXPECT_TRUE ( it.Next ());
173
- EXPECT_FALSE ( it.Next ());
174
- EXPECT_FALSE ( it.IsValid ());
171
+ NL_TEST_ASSERT (inSuite, it.Next ());
172
+ NL_TEST_ASSERT (inSuite, ! it.Next ());
173
+ NL_TEST_ASSERT (inSuite, ! it.IsValid ());
175
174
}
176
175
}
177
176
178
-
179
- TEST (TestQName, Comparison)
177
+ void Comparison (nlTestSuite * inSuite, void * inContext)
180
178
{
181
179
static const uint8_t kManyItems [] = " \04 this\02 is\01 a\04 test\00 " ;
182
180
183
181
{
184
182
const QNamePart kTestName [] = { " this" };
185
- EXPECT_NE ( AsSerializedQName (kManyItems ), FullQName (kTestName ));
183
+ NL_TEST_ASSERT (inSuite, AsSerializedQName (kManyItems ) != FullQName (kTestName ));
186
184
}
187
185
188
186
{
189
187
const QNamePart kTestName [] = { " this" , " is" };
190
- EXPECT_NE ( AsSerializedQName (kManyItems ), FullQName (kTestName ));
188
+ NL_TEST_ASSERT (inSuite, AsSerializedQName (kManyItems ) != FullQName (kTestName ));
191
189
}
192
190
193
191
{
194
192
const QNamePart kTestName [] = { " is" , " a" , " test" };
195
- EXPECT_NE ( AsSerializedQName (kManyItems ), FullQName (kTestName ));
193
+ NL_TEST_ASSERT (inSuite, AsSerializedQName (kManyItems ) != FullQName (kTestName ));
196
194
}
197
195
198
196
{
199
197
const QNamePart kTestName [] = { " this" , " is" , " a" , " test" };
200
- EXPECT_EQ ( AsSerializedQName (kManyItems ), FullQName (kTestName ));
198
+ NL_TEST_ASSERT (inSuite, AsSerializedQName (kManyItems ) == FullQName (kTestName ));
201
199
}
202
200
203
201
{
204
202
const QNamePart kTestName [] = { " this" , " is" , " a" , " test" , " suffix" };
205
- EXPECT_NE ( AsSerializedQName (kManyItems ), FullQName (kTestName ));
203
+ NL_TEST_ASSERT (inSuite, AsSerializedQName (kManyItems ) != FullQName (kTestName ));
206
204
}
207
205
208
206
{
209
207
const QNamePart kTestName [] = { " prefix" , " this" , " is" , " a" , " test" };
210
- EXPECT_NE ( AsSerializedQName (kManyItems ), FullQName (kTestName ));
208
+ NL_TEST_ASSERT (inSuite, AsSerializedQName (kManyItems ) != FullQName (kTestName ));
211
209
}
212
210
}
213
211
214
- TEST (TestQName, CaseInsensitiveSerializedCompare )
212
+ void CaseInsensitiveSerializedCompare (nlTestSuite * inSuite, void * inContext )
215
213
{
216
214
static const uint8_t kManyItems [] = " \04 thIs\02 iS\01 a\04 tEst\00 " ;
217
215
218
216
{
219
217
const QNamePart kTestName [] = { " this" , " is" , " a" , " test" };
220
- EXPECT_EQ (SerializedQNameIterator (BytesRange (kManyItems , kManyItems + sizeof (kManyItems )), kManyItems ), FullQName (kTestName ));
218
+ NL_TEST_ASSERT (inSuite,
219
+ SerializedQNameIterator (BytesRange (kManyItems , kManyItems + sizeof (kManyItems )), kManyItems ) ==
220
+ FullQName (kTestName ));
221
221
}
222
222
223
223
{
224
224
const QNamePart kTestName [] = { " THIS" , " IS" , " A" , " test" };
225
- EXPECT_EQ (SerializedQNameIterator (BytesRange (kManyItems , kManyItems + sizeof (kManyItems )), kManyItems ), FullQName (kTestName ));
225
+ NL_TEST_ASSERT (inSuite,
226
+ SerializedQNameIterator (BytesRange (kManyItems , kManyItems + sizeof (kManyItems )), kManyItems ) ==
227
+ FullQName (kTestName ));
226
228
}
227
229
228
230
{
229
231
const QNamePart kTestName [] = { " THIS" , " IS" , " A" , " TEST" };
230
- EXPECT_EQ (SerializedQNameIterator (BytesRange (kManyItems , kManyItems + sizeof (kManyItems )), kManyItems ), FullQName (kTestName ));
232
+ NL_TEST_ASSERT (inSuite,
233
+ SerializedQNameIterator (BytesRange (kManyItems , kManyItems + sizeof (kManyItems )), kManyItems ) ==
234
+ FullQName (kTestName ));
231
235
}
232
236
}
233
237
234
- TEST (TestQName, CaseInsensitiveFullQNameCompare )
238
+ void CaseInsensitiveFullQNameCompare (nlTestSuite * inSuite, void * inContext )
235
239
{
236
240
{
237
241
const QNamePart kName1 [] = { " this" , " is" , " a" , " test" };
238
242
const QNamePart kName2 [] = { " this" , " IS" , " a" , " TEST" };
239
- EXPECT_EQ ( FullQName (kName1 ), FullQName (kName2 ));
243
+ NL_TEST_ASSERT (inSuite, FullQName (kName1 ) == FullQName (kName2 ));
240
244
}
241
245
242
246
{
243
247
const QNamePart kName1 [] = { " THIS" , " IS" , " a" , " tesT" };
244
248
const QNamePart kName2 [] = { " this" , " IS" , " A" , " TEst" };
245
- EXPECT_EQ ( FullQName (kName1 ), FullQName (kName2 ));
249
+ NL_TEST_ASSERT (inSuite, FullQName (kName1 ) == FullQName (kName2 ));
246
250
}
247
251
248
252
{
249
253
const QNamePart kName1 [] = { " THIS" , " IS" , " a" , " test" };
250
254
const QNamePart kName2 [] = { " this" , " IS" , " A" , " NEST" };
251
- EXPECT_NE ( FullQName (kName1 ), FullQName (kName2 ));
255
+ NL_TEST_ASSERT (inSuite, FullQName (kName1 ) != FullQName (kName2 ));
252
256
}
253
257
254
258
{
255
259
const QNamePart kName1 [] = { " THIS" , " IS" , " a" };
256
260
const QNamePart kName2 [] = { " this" , " IS" , " A" , " NEST" };
257
- EXPECT_NE ( FullQName (kName1 ), FullQName (kName2 ));
261
+ NL_TEST_ASSERT (inSuite, FullQName (kName1 ) != FullQName (kName2 ));
258
262
}
259
263
260
264
{
261
265
const QNamePart kName1 [] = { " THIS" , " IS" , " a" };
262
266
const QNamePart kName2 [] = { " this" , " IS" };
263
- EXPECT_NE ( FullQName (kName1 ), FullQName (kName2 ));
267
+ NL_TEST_ASSERT (inSuite, FullQName (kName1 ) != FullQName (kName2 ));
264
268
}
265
269
266
270
{
267
271
const QNamePart kName [] = { " this" };
268
- EXPECT_NE ( FullQName (), FullQName (kName ));
269
- EXPECT_NE ( FullQName (kName ), FullQName ());
272
+ NL_TEST_ASSERT (inSuite, FullQName () != FullQName (kName ));
273
+ NL_TEST_ASSERT (inSuite, FullQName (kName ) != FullQName ());
270
274
}
271
275
}
272
276
273
- TEST (TestQName, SerializedCompare )
277
+ void SerializedCompare (nlTestSuite * inSuite, void * inContext )
274
278
{
275
279
static const uint8_t kThisIsATest1 [] = " \04 this\02 is\01 a\04 test\00 " ;
276
280
static const uint8_t kThisIsATest2 [] = " \04 ThIs\02 is\01 A\04 tESt\00 " ;
277
281
static const uint8_t kThisIsDifferent [] = " \04 this\02 is\0 9different\00 " ;
278
282
static const uint8_t kThisIs [] = " \04 this\02 is" ;
279
283
280
- EXPECT_EQ ( AsSerializedQName (kThisIsATest1 ), AsSerializedQName (kThisIsATest1 ));
281
- EXPECT_EQ ( AsSerializedQName (kThisIsATest2 ), AsSerializedQName (kThisIsATest2 ));
282
- EXPECT_EQ ( AsSerializedQName (kThisIsATest1 ), AsSerializedQName (kThisIsATest2 ));
283
- EXPECT_NE ( AsSerializedQName (kThisIsATest1 ), AsSerializedQName (kThisIsDifferent ));
284
- EXPECT_NE ( AsSerializedQName (kThisIsDifferent ), AsSerializedQName (kThisIsATest1 ));
285
- EXPECT_NE ( AsSerializedQName (kThisIsDifferent ), AsSerializedQName (kThisIs ));
286
- EXPECT_NE ( AsSerializedQName (kThisIs ), AsSerializedQName (kThisIsDifferent ));
284
+ NL_TEST_ASSERT (inSuite, AsSerializedQName (kThisIsATest1 ) == AsSerializedQName (kThisIsATest1 ));
285
+ NL_TEST_ASSERT (inSuite, AsSerializedQName (kThisIsATest2 ) == AsSerializedQName (kThisIsATest2 ));
286
+ NL_TEST_ASSERT (inSuite, AsSerializedQName (kThisIsATest1 ) == AsSerializedQName (kThisIsATest2 ));
287
+ NL_TEST_ASSERT (inSuite, AsSerializedQName (kThisIsATest1 ) != AsSerializedQName (kThisIsDifferent ));
288
+ NL_TEST_ASSERT (inSuite, AsSerializedQName (kThisIsDifferent ) != AsSerializedQName (kThisIsATest1 ));
289
+ NL_TEST_ASSERT (inSuite, AsSerializedQName (kThisIsDifferent ) != AsSerializedQName (kThisIs ));
290
+ NL_TEST_ASSERT (inSuite, AsSerializedQName (kThisIs ) != AsSerializedQName (kThisIsDifferent ));
287
291
288
292
// These items have back references and are "this.is.a.test"
289
293
static const uint8_t kPtrItems [] = " \03 abc\02 is\01 a\04 test\00\04 this\xc0\04 " ;
290
294
SerializedQNameIterator thisIsATestPtr (BytesRange (kPtrItems , kPtrItems + sizeof (kPtrItems )), kPtrItems + 15 );
291
295
292
- EXPECT_EQ (thisIsATestPtr, AsSerializedQName (kThisIsATest1 ));
293
- EXPECT_EQ (thisIsATestPtr, AsSerializedQName (kThisIsATest2 ));
294
- EXPECT_EQ ( AsSerializedQName (kThisIsATest1 ), thisIsATestPtr);
295
- EXPECT_EQ ( AsSerializedQName (kThisIsATest2 ), thisIsATestPtr);
296
- EXPECT_NE (thisIsATestPtr, AsSerializedQName (kThisIs ));
297
- EXPECT_NE ( AsSerializedQName (kThisIs ), thisIsATestPtr);
296
+ NL_TEST_ASSERT (inSuite, thisIsATestPtr == AsSerializedQName (kThisIsATest1 ));
297
+ NL_TEST_ASSERT (inSuite, thisIsATestPtr == AsSerializedQName (kThisIsATest2 ));
298
+ NL_TEST_ASSERT (inSuite, AsSerializedQName (kThisIsATest1 ) == thisIsATestPtr);
299
+ NL_TEST_ASSERT (inSuite, AsSerializedQName (kThisIsATest2 ) == thisIsATestPtr);
300
+ NL_TEST_ASSERT (inSuite, thisIsATestPtr != AsSerializedQName (kThisIs ));
301
+ NL_TEST_ASSERT (inSuite, AsSerializedQName (kThisIs ) != thisIsATestPtr);
298
302
}
299
303
300
304
} // namespace
305
+
306
+ // clang-format off
307
+ static const nlTest sTests [] =
308
+ {
309
+ NL_TEST_DEF (" IteratorTest" , IteratorTest),
310
+ NL_TEST_DEF (" ErrorTest" , ErrorTest),
311
+ NL_TEST_DEF (" Comparison" , Comparison),
312
+ NL_TEST_DEF (" CaseInsensitiveSerializedCompare" , CaseInsensitiveSerializedCompare),
313
+ NL_TEST_DEF (" CaseInsensitiveFullQNameCompare" , CaseInsensitiveFullQNameCompare),
314
+ NL_TEST_DEF (" SerializedCompare" , SerializedCompare),
315
+ NL_TEST_DEF (" InvalidReferencing" , InvalidReferencing),
316
+
317
+ NL_TEST_SENTINEL ()
318
+ };
319
+ // clang-format on
320
+
321
+ int TestQName ()
322
+ {
323
+ // clang-format off
324
+ nlTestSuite theSuite =
325
+ {
326
+ " QName" ,
327
+ &sTests [0 ],
328
+ nullptr ,
329
+ nullptr
330
+ };
331
+ // clang-format on
332
+
333
+ nlTestRunner (&theSuite, nullptr );
334
+
335
+ return (nlTestRunnerStats (&theSuite));
336
+ }
337
+
338
+ CHIP_REGISTER_TEST_SUITE (TestQName)
0 commit comments