Expanding test
Added test where data is a struct
This commit is contained in:
@@ -129,4 +129,64 @@ BOOST_FIXTURE_TEST_CASE(test_tail_list, FixtureStrings) {
|
||||
}
|
||||
|
||||
|
||||
typedef struct test_data_s {
|
||||
int num;
|
||||
char *name;
|
||||
} test_data_t;
|
||||
|
||||
test_data_t *create_test_data(int number, char *name){
|
||||
|
||||
test_data_t *data = (test_data_t *)malloc(sizeof(test_data_t));
|
||||
data->num = number;
|
||||
if (name)
|
||||
data->name = _strdup(name);
|
||||
else
|
||||
data->name = NULL;
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
void delete_test_data(void *data) {
|
||||
|
||||
test_data_t *test_data = *(test_data_t **)data;
|
||||
|
||||
if (test_data->name)
|
||||
free(test_data->name);
|
||||
|
||||
free(test_data);
|
||||
}
|
||||
|
||||
bool iterate_test_data(void *data)
|
||||
{
|
||||
test_data_t *test_data = *(test_data_t **)data;
|
||||
|
||||
printf("Found number: %i name: %s\n",
|
||||
test_data->num, test_data->name);
|
||||
return true;
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(test_struct_list){
|
||||
|
||||
list_t *list = NULL;
|
||||
list = create_list(sizeof(test_data_t *), delete_test_data);
|
||||
|
||||
|
||||
test_data_t *data = create_test_data(1, "David");
|
||||
append_list(list, &data);
|
||||
|
||||
data = create_test_data(2, "Kevin");
|
||||
append_list(list, &data);
|
||||
|
||||
data = create_test_data(3, "Michael");
|
||||
append_list(list, &data);
|
||||
|
||||
|
||||
BOOST_CHECK(size_list(list) == 3);
|
||||
|
||||
for_each_list(list, iterate_test_data);
|
||||
|
||||
delete_list(list);
|
||||
}
|
||||
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
||||
Reference in New Issue
Block a user