1540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati#include <gtest/gtest.h> 2540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 3f2af1c42ccb2f642b241c2261b42d0be61d45438Jack He#include <base/logging.h> 4f2af1c42ccb2f642b241c2261b42d0be61d45438Jack He 5ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach Johnson#include "AllocationTestHarness.h" 6ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach Johnson 7c196f214c5ae349ec2022f8d3cbaf56910b3b9f8Pavlin Radoslavov#include "osi/include/list.h" 8c196f214c5ae349ec2022f8d3cbaf56910b3b9f8Pavlin Radoslavov#include "osi/include/osi.h" 9540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 10ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach Johnsonclass ListTest : public AllocationTestHarness {}; 11540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 12ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach JohnsonTEST_F(ListTest, test_new_free_simple) { 13b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson list_t* list = list_new(NULL); 14ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach Johnson ASSERT_TRUE(list != NULL); 15540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati list_free(list); 16540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati} 17540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 18ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach JohnsonTEST_F(ListTest, test_free_null) { 19540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati // In this test we just verify that list_free is callable with NULL. 20540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati list_free(NULL); 21540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati} 22540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 23ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach JohnsonTEST_F(ListTest, test_empty_list_is_empty) { 24b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson list_t* list = list_new(NULL); 25540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_TRUE(list_is_empty(list)); 26540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati list_free(list); 27540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati} 28540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 29ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach JohnsonTEST_F(ListTest, test_empty_list_has_no_length) { 30b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson list_t* list = list_new(NULL); 31540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_EQ(list_length(list), 0U); 32540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati list_free(list); 33540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati} 34540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 35ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach JohnsonTEST_F(ListTest, test_simple_list_prepend) { 36b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson list_t* list = list_new(NULL); 37540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_TRUE(list_prepend(list, &list)); 38540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_FALSE(list_is_empty(list)); 39540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_EQ(list_length(list), 1U); 40540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati list_free(list); 41540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati} 42540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 43ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach JohnsonTEST_F(ListTest, test_simple_list_append) { 44b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson list_t* list = list_new(NULL); 45540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_TRUE(list_append(list, &list)); 46540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_FALSE(list_is_empty(list)); 47540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_EQ(list_length(list), 1U); 48540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati list_free(list); 49540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati} 50540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 51ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach JohnsonTEST_F(ListTest, test_list_remove_found) { 52b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson list_t* list = list_new(NULL); 53540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati list_append(list, &list); 54540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_TRUE(list_remove(list, &list)); 55540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_TRUE(list_is_empty(list)); 56b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson EXPECT_EQ(list_length(list), 0U); 57540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati list_free(list); 58540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati} 59540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 60ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach JohnsonTEST_F(ListTest, test_list_remove_not_found) { 61540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati int x; 62b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson list_t* list = list_new(NULL); 63540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati list_append(list, &list); 64540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_FALSE(list_remove(list, &x)); 65540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_FALSE(list_is_empty(list)); 66540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_EQ(list_length(list), 1U); 67540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati list_free(list); 68540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati} 69540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 70ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach JohnsonTEST_F(ListTest, test_list_front) { 71b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson int x[] = {1, 2, 3, 4, 5}; 72b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson list_t* list = list_new(NULL); 73540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 74b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson for (size_t i = 0; i < ARRAY_SIZE(x); ++i) list_append(list, &x[i]); 75540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 76540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_EQ(list_front(list), &x[0]); 77540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 78540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati list_free(list); 79540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati} 80540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 81ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach JohnsonTEST_F(ListTest, test_list_back) { 82b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson int x[] = {1, 2, 3, 4, 5}; 83b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson list_t* list = list_new(NULL); 84540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 85b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson for (size_t i = 0; i < ARRAY_SIZE(x); ++i) list_append(list, &x[i]); 86540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 87540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_EQ(list_back(list), &x[ARRAY_SIZE(x) - 1]); 88540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 89540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati list_free(list); 90540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati} 91540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 92ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach JohnsonTEST_F(ListTest, test_list_clear) { 93b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson int x[] = {1, 2, 3, 4, 5}; 94b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson list_t* list = list_new(NULL); 95540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 96b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson for (size_t i = 0; i < ARRAY_SIZE(x); ++i) list_append(list, &x[i]); 97540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 98540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati list_clear(list); 99540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_TRUE(list_is_empty(list)); 100540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_EQ(list_length(list), 0U); 101540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 102540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati list_free(list); 103540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati} 104540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 105ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach JohnsonTEST_F(ListTest, test_list_append_multiple) { 106b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson int x[] = {1, 2, 3, 4, 5}; 107b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson list_t* list = list_new(NULL); 108540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 109b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson for (size_t i = 0; i < ARRAY_SIZE(x); ++i) list_append(list, &x[i]); 110540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 111540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati int i = 0; 112b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson for (const list_node_t *node = list_begin(list); node != list_end(list); 113b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson node = list_next(node), ++i) 114540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_EQ(list_node(node), &x[i]); 115540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 116540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati list_free(list); 117540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati} 118540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 119ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach JohnsonTEST_F(ListTest, test_list_prepend_multiple) { 120b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson int x[] = {1, 2, 3, 4, 5}; 121b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson list_t* list = list_new(NULL); 122540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 123b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson for (size_t i = 0; i < ARRAY_SIZE(x); ++i) list_prepend(list, &x[i]); 124540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 125540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati int i = ARRAY_SIZE(x) - 1; 126b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson for (const list_node_t *node = list_begin(list); node != list_end(list); 127b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson node = list_next(node), --i) 128540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati EXPECT_EQ(list_node(node), &x[i]); 129540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati 130540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati list_free(list); 131540e7cab4a9a47dc2d38f96e332e19d16dbfc1d2Sharvil Nanavati} 132bfaea44aa24ad3d8b7aac98204ce8ee5c12857b5Sharvil Nanavati 133ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach JohnsonTEST_F(ListTest, test_list_begin_empty_list) { 134b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson list_t* list = list_new(NULL); 135bfaea44aa24ad3d8b7aac98204ce8ee5c12857b5Sharvil Nanavati EXPECT_EQ(list_begin(list), list_end(list)); 136bfaea44aa24ad3d8b7aac98204ce8ee5c12857b5Sharvil Nanavati list_free(list); 137bfaea44aa24ad3d8b7aac98204ce8ee5c12857b5Sharvil Nanavati} 138bfaea44aa24ad3d8b7aac98204ce8ee5c12857b5Sharvil Nanavati 139ee2aa45def216a3c4d6a23481fa96f1b02a5de8cZach JohnsonTEST_F(ListTest, test_list_next) { 140b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson list_t* list = list_new(NULL); 141bfaea44aa24ad3d8b7aac98204ce8ee5c12857b5Sharvil Nanavati list_append(list, &list); 142bfaea44aa24ad3d8b7aac98204ce8ee5c12857b5Sharvil Nanavati EXPECT_NE(list_begin(list), list_end(list)); 143bfaea44aa24ad3d8b7aac98204ce8ee5c12857b5Sharvil Nanavati EXPECT_EQ(list_next(list_begin(list)), list_end(list)); 144bfaea44aa24ad3d8b7aac98204ce8ee5c12857b5Sharvil Nanavati list_free(list); 145bfaea44aa24ad3d8b7aac98204ce8ee5c12857b5Sharvil Nanavati} 146760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach 147b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watsonstatic bool list_callback_sum(void* data, void* context) { 148f2af1c42ccb2f642b241c2261b42d0be61d45438Jack He CHECK(data); 149f2af1c42ccb2f642b241c2261b42d0be61d45438Jack He CHECK(context); 150b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson int* sum = (int*)context; 151b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson int* value = (int*)data; 152760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach *sum += *value; 153760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach return true; 154760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach} 155760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach 156b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watsonstatic bool list_callback_find_int(void* data, void* context) { 157f2af1c42ccb2f642b241c2261b42d0be61d45438Jack He CHECK(data); 158f2af1c42ccb2f642b241c2261b42d0be61d45438Jack He CHECK(context); 159b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson return (*(int*)data != *(int*)context); 160760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach} 161760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach 162760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre EisenbachTEST_F(ListTest, test_list_foreach_full) { 163b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson list_t* list = list_new(NULL); 164760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach 165760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach // Fill in test data 166b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson int x[] = {1, 2, 3, 4, 5}; 167b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson for (size_t i = 0; i < ARRAY_SIZE(x); ++i) list_append(list, &x[i]); 1684394720415f45db5caea73e1a05351ff98601fe0Pavlin Radoslavov EXPECT_EQ(list_length(list), (size_t)5); 169760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach 170760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach // Test complete iteration 171760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach int sum = 0; 172b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson list_node_t* rc = list_foreach(list, list_callback_sum, &sum); 173760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach EXPECT_EQ(sum, 15); 17467f57c639e6dc2f302115017eb92c40dd306c15dJakub Pawlowski EXPECT_TRUE(rc == NULL); 175760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach 176760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach list_free(list); 177760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach} 178760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach 179760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre EisenbachTEST_F(ListTest, test_list_foreach_partial) { 180b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson list_t* list = list_new(NULL); 181760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach 182760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach // Fill in test data 183b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson int x[] = {1, 2, 3, 4, 5}; 184b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson for (size_t i = 0; i < ARRAY_SIZE(x); ++i) list_append(list, &x[i]); 1854394720415f45db5caea73e1a05351ff98601fe0Pavlin Radoslavov EXPECT_EQ(list_length(list), (size_t)5); 186760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach 187760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach // Test partial iteration 188760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach int find = 4; 189b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson list_node_t* rc = list_foreach(list, list_callback_find_int, &find); 19067f57c639e6dc2f302115017eb92c40dd306c15dJakub Pawlowski EXPECT_TRUE(rc != NULL); 191b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson int* rc_val = (int*)list_node(rc); 19267f57c639e6dc2f302115017eb92c40dd306c15dJakub Pawlowski EXPECT_TRUE(*rc_val == 4); 193760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach 194760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach find = 1; 195760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach rc = list_foreach(list, list_callback_find_int, &find); 19667f57c639e6dc2f302115017eb92c40dd306c15dJakub Pawlowski EXPECT_TRUE(rc != NULL); 197b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson rc_val = (int*)list_node(rc); 19867f57c639e6dc2f302115017eb92c40dd306c15dJakub Pawlowski EXPECT_TRUE(*rc_val == 1); 199760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach 200760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach find = 5; 201760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach rc = list_foreach(list, list_callback_find_int, &find); 20267f57c639e6dc2f302115017eb92c40dd306c15dJakub Pawlowski EXPECT_TRUE(rc != NULL); 203b55040cc6448a8847490da807d2b6362aa8cb8d9Myles Watson rc_val = (int*)list_node(rc); 20467f57c639e6dc2f302115017eb92c40dd306c15dJakub Pawlowski EXPECT_TRUE(*rc_val == 5); 205760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach 206760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach find = 0; 207760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach rc = list_foreach(list, list_callback_find_int, &find); 20867f57c639e6dc2f302115017eb92c40dd306c15dJakub Pawlowski EXPECT_TRUE(rc == NULL); 209760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach 210760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach list_free(list); 211760fb7083b1781c9519fb6a36e46d7ab5d5efb30Andre Eisenbach} 212