xref: /btstack/test/linked_list/btstack_linked_list_test.cpp (revision bd2a4008643d9dded6bd1b4a5cc04685cb96516e)
11d3bd1e5SMatthias Ringwald #include "CppUTest/TestHarness.h"
21d3bd1e5SMatthias Ringwald #include "CppUTest/CommandLineTestRunner.h"
31d3bd1e5SMatthias Ringwald #include "btstack_linked_list.h"
41d3bd1e5SMatthias Ringwald 
51d3bd1e5SMatthias Ringwald btstack_linked_list_t testList;
61d3bd1e5SMatthias Ringwald btstack_linked_item_t itemA;
71d3bd1e5SMatthias Ringwald btstack_linked_item_t itemB;
81d3bd1e5SMatthias Ringwald btstack_linked_item_t itemC;
91d3bd1e5SMatthias Ringwald btstack_linked_item_t itemD;
101d3bd1e5SMatthias Ringwald 
TEST_GROUP(LinkedListEmpty)111d3bd1e5SMatthias Ringwald TEST_GROUP(LinkedListEmpty){
121d3bd1e5SMatthias Ringwald     void setup(void){
131d3bd1e5SMatthias Ringwald         testList = NULL;
141d3bd1e5SMatthias Ringwald     }
151d3bd1e5SMatthias Ringwald };
161d3bd1e5SMatthias Ringwald 
TEST(LinkedListEmpty,CountAll)171d3bd1e5SMatthias Ringwald TEST(LinkedListEmpty, CountAll){
181d3bd1e5SMatthias Ringwald     CHECK_EQUAL(0, btstack_linked_list_count(&testList));
191d3bd1e5SMatthias Ringwald }
201d3bd1e5SMatthias Ringwald 
TEST(LinkedListEmpty,IsEmpty)211d3bd1e5SMatthias Ringwald TEST(LinkedListEmpty, IsEmpty){
221d3bd1e5SMatthias Ringwald     CHECK_EQUAL(true, btstack_linked_list_empty(&testList));
231d3bd1e5SMatthias Ringwald }
241d3bd1e5SMatthias Ringwald 
TEST(LinkedListEmpty,Addtail)251d3bd1e5SMatthias Ringwald TEST(LinkedListEmpty, Addtail){
261d3bd1e5SMatthias Ringwald     CHECK_EQUAL(true, btstack_linked_list_add_tail(&testList, &itemA));
271d3bd1e5SMatthias Ringwald }
281d3bd1e5SMatthias Ringwald 
TEST(LinkedListEmpty,RemoveNonExisting)291d3bd1e5SMatthias Ringwald TEST(LinkedListEmpty, RemoveNonExisting){
301d3bd1e5SMatthias Ringwald     CHECK_EQUAL(false, btstack_linked_list_remove(&testList, &itemA));
311d3bd1e5SMatthias Ringwald }
321d3bd1e5SMatthias Ringwald 
TEST_GROUP(LinkedList)331d3bd1e5SMatthias Ringwald TEST_GROUP(LinkedList){
341d3bd1e5SMatthias Ringwald     void setup(void){
351d3bd1e5SMatthias Ringwald         testList = NULL;
361d3bd1e5SMatthias Ringwald         btstack_linked_list_add(&testList, &itemD);
371d3bd1e5SMatthias Ringwald         btstack_linked_list_add(&testList, &itemC);
381d3bd1e5SMatthias Ringwald         btstack_linked_list_add(&testList, &itemB);
391d3bd1e5SMatthias Ringwald         btstack_linked_list_add(&testList, &itemA);
401d3bd1e5SMatthias Ringwald     }
411d3bd1e5SMatthias Ringwald };
421d3bd1e5SMatthias Ringwald 
TEST(LinkedList,CountAll)431d3bd1e5SMatthias Ringwald TEST(LinkedList, CountAll){
441d3bd1e5SMatthias Ringwald     CHECK_EQUAL(4, btstack_linked_list_count(&testList));
451d3bd1e5SMatthias Ringwald }
461d3bd1e5SMatthias Ringwald 
TEST(LinkedList,GetFirst)471d3bd1e5SMatthias Ringwald TEST(LinkedList, GetFirst){
481d3bd1e5SMatthias Ringwald     btstack_linked_item_t * item;
491d3bd1e5SMatthias Ringwald     item = btstack_linked_list_get_first_item(&testList);
501d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemA);
511d3bd1e5SMatthias Ringwald }
521d3bd1e5SMatthias Ringwald 
TEST(LinkedList,GetLast)531d3bd1e5SMatthias Ringwald TEST(LinkedList, GetLast){
541d3bd1e5SMatthias Ringwald     btstack_linked_item_t * item;
551d3bd1e5SMatthias Ringwald     item = btstack_linked_list_get_last_item(&testList);
561d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemD);
571d3bd1e5SMatthias Ringwald }
581d3bd1e5SMatthias Ringwald 
TEST(LinkedList,Pop)591d3bd1e5SMatthias Ringwald TEST(LinkedList, Pop){
601d3bd1e5SMatthias Ringwald     btstack_linked_item_t * item;
611d3bd1e5SMatthias Ringwald     item = btstack_linked_list_pop(&testList);
621d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemA);
631d3bd1e5SMatthias Ringwald     CHECK_EQUAL(3, btstack_linked_list_count(&testList));
641d3bd1e5SMatthias Ringwald }
651d3bd1e5SMatthias Ringwald 
TEST(LinkedList,AddExisting)661d3bd1e5SMatthias Ringwald TEST(LinkedList, AddExisting){
671d3bd1e5SMatthias Ringwald     CHECK_EQUAL( false, btstack_linked_list_add(&testList, &itemD));
681d3bd1e5SMatthias Ringwald }
691d3bd1e5SMatthias Ringwald 
TEST(LinkedList,AddTailExisting)701d3bd1e5SMatthias Ringwald TEST(LinkedList, AddTailExisting){
711d3bd1e5SMatthias Ringwald     CHECK_EQUAL( false, btstack_linked_list_add_tail(&testList, &itemD));
721d3bd1e5SMatthias Ringwald }
731d3bd1e5SMatthias Ringwald 
TEST(LinkedList,Iterator)741d3bd1e5SMatthias Ringwald TEST(LinkedList, Iterator){
751d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_t it;
761d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_init(&it, &testList);
771d3bd1e5SMatthias Ringwald     btstack_linked_item_t * item;
781d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
791d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
801d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemA);
811d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
821d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
831d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemB);
841d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
851d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
861d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemC);
871d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
881d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
891d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemD);
901d3bd1e5SMatthias Ringwald     CHECK(!btstack_linked_list_iterator_has_next(&it));
911d3bd1e5SMatthias Ringwald }
921d3bd1e5SMatthias Ringwald 
TEST(LinkedList,RemoveFirstUsingIterator)931d3bd1e5SMatthias Ringwald TEST(LinkedList, RemoveFirstUsingIterator){
941d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_t it;
951d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_init(&it, &testList);
961d3bd1e5SMatthias Ringwald     btstack_linked_item_t * item;
971d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
981d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
991d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemA);
1001d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_remove(&it);
1011d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1021d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1031d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemB);
1041d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1051d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1061d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemC);
1071d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1081d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1091d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemD);
1101d3bd1e5SMatthias Ringwald     CHECK(!btstack_linked_list_iterator_has_next(&it));
1111d3bd1e5SMatthias Ringwald }
1121d3bd1e5SMatthias Ringwald 
TEST(LinkedList,RemoveFirstUsingListRemove)1131d3bd1e5SMatthias Ringwald TEST(LinkedList, RemoveFirstUsingListRemove){
1141d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_t it;
1151d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_init(&it, &testList);
1161d3bd1e5SMatthias Ringwald     btstack_linked_item_t * item;
1171d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1181d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1191d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemA);
1201d3bd1e5SMatthias Ringwald     btstack_linked_list_remove(&testList, &itemA);
1211d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1221d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1231d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemB);
1241d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1251d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1261d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemC);
1271d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1281d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1291d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemD);
1301d3bd1e5SMatthias Ringwald     CHECK(!btstack_linked_list_iterator_has_next(&it));
1311d3bd1e5SMatthias Ringwald }
1321d3bd1e5SMatthias Ringwald 
TEST(LinkedList,RemoveSecondUsingIterator)1331d3bd1e5SMatthias Ringwald TEST(LinkedList, RemoveSecondUsingIterator){
1341d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_t it;
1351d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_init(&it, &testList);
1361d3bd1e5SMatthias Ringwald     btstack_linked_item_t * item;
1371d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1381d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1391d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1401d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1411d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemB);
1421d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_remove(&it);
1431d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1441d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1451d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemC);
1461d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1471d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1481d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemD);
1491d3bd1e5SMatthias Ringwald     CHECK(!btstack_linked_list_iterator_has_next(&it));
1501d3bd1e5SMatthias Ringwald }
1511d3bd1e5SMatthias Ringwald 
TEST(LinkedList,RemoveSecondUsingListRemove)1521d3bd1e5SMatthias Ringwald TEST(LinkedList, RemoveSecondUsingListRemove){
1531d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_t it;
1541d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_init(&it, &testList);
1551d3bd1e5SMatthias Ringwald     btstack_linked_item_t * item;
1561d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1571d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1581d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1591d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1601d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemB);
1611d3bd1e5SMatthias Ringwald     btstack_linked_list_remove(&testList, &itemB);
1621d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1631d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemC);
1641d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1651d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1661d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemD);
1671d3bd1e5SMatthias Ringwald     CHECK(!btstack_linked_list_iterator_has_next(&it));
1681d3bd1e5SMatthias Ringwald }
1691d3bd1e5SMatthias Ringwald 
TEST(LinkedList,RemoveThirdUsingIterator)1701d3bd1e5SMatthias Ringwald TEST(LinkedList, RemoveThirdUsingIterator){
1711d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_t it;
1721d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_init(&it, &testList);
1731d3bd1e5SMatthias Ringwald     btstack_linked_item_t * item;
1741d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1751d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1761d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1771d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1781d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemB);
1791d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1801d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1811d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemC);
1821d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_remove(&it);
1831d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1841d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1851d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemD);
1861d3bd1e5SMatthias Ringwald     CHECK(!btstack_linked_list_iterator_has_next(&it));
1871d3bd1e5SMatthias Ringwald }
1881d3bd1e5SMatthias Ringwald 
TEST(LinkedList,RemoveLastUsingIterator)1891d3bd1e5SMatthias Ringwald TEST(LinkedList, RemoveLastUsingIterator){
1901d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_t it;
1911d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_init(&it, &testList);
1921d3bd1e5SMatthias Ringwald     btstack_linked_item_t * item;
1931d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1941d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1951d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1961d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
1971d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemB);
1981d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
1991d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
2001d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemC);
2011d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
2021d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
2031d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemD);
2041d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_remove(&it);
2051d3bd1e5SMatthias Ringwald     CHECK(!btstack_linked_list_iterator_has_next(&it));
2061d3bd1e5SMatthias Ringwald }
2071d3bd1e5SMatthias Ringwald 
TEST(LinkedList,RemoveLastUsingListRemove)2081d3bd1e5SMatthias Ringwald TEST(LinkedList, RemoveLastUsingListRemove){
2091d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_t it;
2101d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_init(&it, &testList);
2111d3bd1e5SMatthias Ringwald     btstack_linked_item_t * item;
2121d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
2131d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
2141d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
2151d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
2161d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemB);
2171d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
2181d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
2191d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemC);
2201d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
2211d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
2221d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemD);
2231d3bd1e5SMatthias Ringwald     btstack_linked_list_remove(&testList, &itemD);
2241d3bd1e5SMatthias Ringwald     CHECK(!btstack_linked_list_iterator_has_next(&it));
2251d3bd1e5SMatthias Ringwald }
2261d3bd1e5SMatthias Ringwald 
TEST(LinkedList,RemoveSecondAndThirdUsingIterator)2271d3bd1e5SMatthias Ringwald TEST(LinkedList, RemoveSecondAndThirdUsingIterator){
2281d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_t it;
2291d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_init(&it, &testList);
2301d3bd1e5SMatthias Ringwald     btstack_linked_item_t * item;
2311d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
2321d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
2331d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
2341d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
2351d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemB);
2361d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_remove(&it);   // B
2371d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
2381d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
2391d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemC);
2401d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_remove(&it);   // C
2411d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
2421d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
2431d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemD);
2441d3bd1e5SMatthias Ringwald     CHECK(!btstack_linked_list_iterator_has_next(&it));
2451d3bd1e5SMatthias Ringwald }
2461d3bd1e5SMatthias Ringwald 
TEST(LinkedList,RemoveSecondAndThirdUsingListRemove)2471d3bd1e5SMatthias Ringwald TEST(LinkedList, RemoveSecondAndThirdUsingListRemove){
2481d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_t it;
2491d3bd1e5SMatthias Ringwald     btstack_linked_list_iterator_init(&it, &testList);
2501d3bd1e5SMatthias Ringwald     btstack_linked_item_t * item;
2511d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
2521d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
2531d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
2541d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
2551d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemB);
2561d3bd1e5SMatthias Ringwald     btstack_linked_list_remove(&testList, &itemB);
2571d3bd1e5SMatthias Ringwald     btstack_linked_list_remove(&testList, &itemC);
2581d3bd1e5SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
2591d3bd1e5SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
2601d3bd1e5SMatthias Ringwald     CHECK_EQUAL(item, &itemD);
261*bd2a4008SMatthias Ringwald     CHECK(!btstack_linked_list_iterator_has_next(&it));
262*bd2a4008SMatthias Ringwald }
263*bd2a4008SMatthias Ringwald 
TEST(LinkedList,RemoveAllUsingListRemove)264*bd2a4008SMatthias Ringwald TEST(LinkedList, RemoveAllUsingListRemove){
265*bd2a4008SMatthias Ringwald     btstack_linked_list_iterator_t it;
266*bd2a4008SMatthias Ringwald     btstack_linked_list_iterator_init(&it, &testList);
267*bd2a4008SMatthias Ringwald     btstack_linked_item_t * item;
268*bd2a4008SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
269*bd2a4008SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
270*bd2a4008SMatthias Ringwald     CHECK_EQUAL(item, &itemA);
271*bd2a4008SMatthias Ringwald     btstack_linked_list_remove(&testList, &itemA);
272*bd2a4008SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
273*bd2a4008SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
274*bd2a4008SMatthias Ringwald     CHECK_EQUAL(item, &itemB);
275*bd2a4008SMatthias Ringwald     btstack_linked_list_remove(&testList, &itemB);
276*bd2a4008SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
277*bd2a4008SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
278*bd2a4008SMatthias Ringwald     CHECK_EQUAL(item, &itemC);
279*bd2a4008SMatthias Ringwald     btstack_linked_list_remove(&testList, &itemC);
280*bd2a4008SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
281*bd2a4008SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
282*bd2a4008SMatthias Ringwald     CHECK_EQUAL(item, &itemD);
283*bd2a4008SMatthias Ringwald     btstack_linked_list_remove(&testList, &itemD);
284*bd2a4008SMatthias Ringwald     CHECK(!btstack_linked_list_iterator_has_next(&it));
285*bd2a4008SMatthias Ringwald }
286*bd2a4008SMatthias Ringwald 
TEST(LinkedList,RemoveAllUsingIterator)287*bd2a4008SMatthias Ringwald TEST(LinkedList, RemoveAllUsingIterator){
288*bd2a4008SMatthias Ringwald     btstack_linked_list_iterator_t it;
289*bd2a4008SMatthias Ringwald     btstack_linked_list_iterator_init(&it, &testList);
290*bd2a4008SMatthias Ringwald     btstack_linked_item_t * item;
291*bd2a4008SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
292*bd2a4008SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
293*bd2a4008SMatthias Ringwald     CHECK_EQUAL(item, &itemA);
294*bd2a4008SMatthias Ringwald     btstack_linked_list_iterator_remove(&it);
295*bd2a4008SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
296*bd2a4008SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
297*bd2a4008SMatthias Ringwald     CHECK_EQUAL(item, &itemB);
298*bd2a4008SMatthias Ringwald     btstack_linked_list_iterator_remove(&it);
299*bd2a4008SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
300*bd2a4008SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
301*bd2a4008SMatthias Ringwald     CHECK_EQUAL(item, &itemC);
302*bd2a4008SMatthias Ringwald     btstack_linked_list_iterator_remove(&it);
303*bd2a4008SMatthias Ringwald     CHECK(btstack_linked_list_iterator_has_next(&it));
304*bd2a4008SMatthias Ringwald     item = btstack_linked_list_iterator_next(&it);
305*bd2a4008SMatthias Ringwald     CHECK_EQUAL(item, &itemD);
306*bd2a4008SMatthias Ringwald     btstack_linked_list_iterator_remove(&it);
3071d3bd1e5SMatthias Ringwald     CHECK(!btstack_linked_list_iterator_has_next(&it));
3081d3bd1e5SMatthias Ringwald }
3091d3bd1e5SMatthias Ringwald 
main(int argc,const char * argv[])3101d3bd1e5SMatthias Ringwald int main (int argc, const char * argv[]){
3111d3bd1e5SMatthias Ringwald     return CommandLineTestRunner::RunAllTests(argc, argv);
3121d3bd1e5SMatthias Ringwald }