cJSON_DuplicateConfiguration

This commit is contained in:
Max Bruckner
2018-02-03 05:02:05 +01:00
parent d2d19127d3
commit 050f982608
3 changed files with 54 additions and 17 deletions

View File

@@ -83,6 +83,42 @@ static void create_configuration_should_not_take_incomplete_allocators(void)
TEST_ASSERT_NULL(cJSON_CreateConfiguration(&allocators2, &userdata));
}
static void duplicate_configuration_should_duplicate_a_configuration(void)
{
internal_configuration *configuration = NULL;
configuration = (internal_configuration*)cJSON_DuplicateConfiguration(&global_configuration, NULL, NULL);
TEST_ASSERT_NOT_NULL(configuration);
TEST_ASSERT_EQUAL_MEMORY(&global_configuration, configuration, sizeof(internal_configuration));
free(configuration);
}
static void duplicate_configuration_should_take_custom_allocators(void)
{
internal_configuration *configuration = NULL;
cJSON_Allocators allocators = {custom_allocator, custom_deallocator, NULL};
size_t userdata = 0;
configuration = (internal_configuration*)cJSON_DuplicateConfiguration(&global_configuration, &allocators, &userdata);
TEST_ASSERT_NOT_NULL(configuration);
TEST_ASSERT_EQUAL_MESSAGE(userdata, sizeof(internal_configuration), "custom allocator wasn't run properly");
TEST_ASSERT_EQUAL_MEMORY(&global_configuration, configuration, sizeof(internal_configuration));
free(configuration);
}
static void duplicate_configuration_should_not_take_incomplete_allocators(void)
{
cJSON_Allocators allocators1 = {custom_allocator, NULL, NULL};
cJSON_Allocators allocators2 = {NULL, custom_deallocator, NULL};
size_t userdata = 0;
TEST_ASSERT_NULL(cJSON_DuplicateConfiguration(&global_configuration, &allocators1, &userdata));
TEST_ASSERT_NULL(cJSON_DuplicateConfiguration(&global_configuration, &allocators2, &userdata));
}
static void configuration_change_allocators_should_change_allocators(void)
{
internal_configuration *configuration = NULL;
@@ -211,6 +247,9 @@ int main(void)
RUN_TEST(create_configuration_should_create_a_configuration);
RUN_TEST(create_configuration_should_take_custom_allocators);
RUN_TEST(create_configuration_should_not_take_incomplete_allocators);
RUN_TEST(duplicate_configuration_should_duplicate_a_configuration);
RUN_TEST(duplicate_configuration_should_take_custom_allocators);
RUN_TEST(duplicate_configuration_should_not_take_incomplete_allocators);
RUN_TEST(configuration_change_allocators_should_change_allocators);
RUN_TEST(configuration_change_allocators_should_not_change_incomplete_allocators);
RUN_TEST(configuration_change_userdata_should_change_userdata);