@@ -207,63 +207,52 @@ TEST_F(TestMetadataList, ListBuilderConvertersWorks)
207
207
208
208
TEST_F (TestMetadataList, BufferMoveOperationsWork)
209
209
{
210
-
211
210
{
212
- ListBuilder<int > list ;
211
+ using LIST = ListBuilder<int >;
213
212
214
- ASSERT_EQ (list. EnsureAppendCapacity ( 3 ), CHIP_NO_ERROR) ;
213
+ LIST movedFromList{} ;
215
214
216
- list.Append (10 );
217
- list.Append (11 );
218
- list.Append (12 );
215
+ ASSERT_EQ (movedFromList.EnsureAppendCapacity (3 ), CHIP_NO_ERROR);
219
216
220
- // Get a ListBuilder base class object
221
- GenericAppendOnlyBuffer originalBuffer{ static_cast <GenericAppendOnlyBuffer &&>(std::move (list)) };
217
+ movedFromList.Append (10 );
218
+ movedFromList.Append (11 );
219
+ movedFromList.Append (12 );
222
220
223
- ASSERT_EQ (originalBuffer.Size (), size_t { 3 });
224
- ASSERT_FALSE (originalBuffer.IsEmpty ());
221
+ LIST movedToList{std::move (movedFromList)};
225
222
226
- // / move constructor called for the second time here
227
- GenericAppendOnlyBuffer newBuffer{ std::move (originalBuffer) };
223
+ ASSERT_EQ (movedFromList. Size (), size_t { 0 }); // NOLINT(bugprone-use-after-move)
224
+ ASSERT_TRUE (movedFromList. IsEmpty ()); // NOLINT(bugprone-use-after-move)
228
225
229
- ASSERT_EQ (originalBuffer .Size (), size_t { 0 }); // NOLINT(bugprone-use-after-move)
230
- ASSERT_TRUE (originalBuffer .IsEmpty ()); // NOLINT(bugprone-use-after-move)
226
+ ASSERT_EQ (movedToList .Size (), size_t { 3 });
227
+ ASSERT_FALSE (movedToList .IsEmpty ());
231
228
232
- ASSERT_EQ (newBuffer.Size (), size_t { 3 });
233
- ASSERT_FALSE (newBuffer.IsEmpty ());
229
+ auto movedToListSpan = movedToList.TakeBuffer ();
230
+
231
+ EXPECT_EQ (movedToListSpan[0 ], 10 );
232
+ EXPECT_EQ (movedToListSpan[1 ], 11 );
233
+ EXPECT_EQ (movedToListSpan[2 ], 12 );
234
234
}
235
235
236
236
{
237
- ListBuilder<int > list1;
238
-
239
- ASSERT_EQ (list1.EnsureAppendCapacity (3 ), CHIP_NO_ERROR);
240
-
241
- list1.Append (10 );
242
- list1.Append (11 );
243
- list1.Append (12 );
244
-
245
- ListBuilder<int > list2;
246
-
247
- ASSERT_EQ (list2.EnsureAppendCapacity (2 ), CHIP_NO_ERROR);
237
+ using LIST = ListBuilder<int >;
248
238
249
- list2. Append ( 20 ) ;
250
- list2. Append ( 21 ) ;
239
+ LIST movedFromList{} ;
240
+ LIST movedToList{} ;
251
241
252
- // Get a ListBuilder base class object
253
- GenericAppendOnlyBuffer originalBuffer{ static_cast <GenericAppendOnlyBuffer &&>( std::move (list1)) } ;
242
+ ASSERT_EQ (movedFromList. EnsureAppendCapacity ( 3 ), CHIP_NO_ERROR);
243
+ ASSERT_EQ (movedToList. EnsureAppendCapacity ( 3 ), CHIP_NO_ERROR) ;
254
244
255
- // Get another ListBuilder base class object
256
- GenericAppendOnlyBuffer anotherBuffer{ static_cast <GenericAppendOnlyBuffer &&>(std::move (list2)) };
245
+ movedFromList.Append (10 );
246
+ movedFromList.Append (11 );
247
+ movedFromList.Append (12 );
257
248
258
- ASSERT_EQ (originalBuffer.Size (), size_t { 3 });
259
- ASSERT_EQ (anotherBuffer.Size (), size_t { 2 });
249
+ movedToList = std::move (movedFromList);
260
250
261
- // move assignemnt operator called here
262
- originalBuffer = std::move (anotherBuffer);
251
+ ASSERT_EQ (movedFromList. Size (), size_t { 0 }); // NOLINT(bugprone-use-after-move)
252
+ ASSERT_TRUE (movedFromList. IsEmpty ()); // NOLINT(bugprone-use-after-move)
263
253
264
- ASSERT_EQ (originalBuffer.Size (), size_t { 2 });
265
- ASSERT_EQ (anotherBuffer.Size (), size_t { 0 }); // NOLINT(bugprone-use-after-move)
266
- ASSERT_TRUE (anotherBuffer.IsEmpty ()); // NOLINT(bugprone-use-after-move)
254
+ ASSERT_EQ (movedToList.Size (), size_t { 3 });
255
+ ASSERT_FALSE (movedToList.IsEmpty ());
267
256
}
268
257
}
269
258
} // namespace
0 commit comments