[Libosinfo] [PATCH 7/8] tests: Add testcases for ID collision in OsinfoList

Daniel P. Berrange berrange at redhat.com
Thu Nov 5 17:00:37 UTC 2015


On Thu, Nov 05, 2015 at 05:20:45PM +0100, Christophe Fergeau wrote:
> This will detect issues fixed by the commit fixing osinfo_list_add.
> ---
>  test/test-list.c | 32 +++++++++++++++++++++++++++++++-
>  1 file changed, 31 insertions(+), 1 deletion(-)
> 
> diff --git a/test/test-list.c b/test/test-list.c
> index d9076b8..fac27b5 100644
> --- a/test/test-list.c
> +++ b/test/test-list.c
> @@ -96,7 +96,7 @@ START_TEST(test_lookup)
>  
>      osinfo_list_add(list, ent);
>  
> -    fail_unless(osinfo_list_get_length(list) == 1, "List was empty");
> +    fail_unless(osinfo_list_get_length(list) == 1, "List does not contain a single element");
>      fail_unless(osinfo_list_get_nth(list, 0) == ent, "Lookup wrong element");
>      fail_unless(osinfo_list_find_by_id(list, "wibble") != NULL, "Could not find element");
>      fail_unless(osinfo_list_find_by_id(list, "fish") == NULL, "Found wrong element");
> @@ -107,12 +107,36 @@ START_TEST(test_lookup)
>  END_TEST
>  
>  
> +
> +START_TEST(test_duplicate)
> +{
> +    OsinfoList *list = g_object_new(osinfo_dummy_list_get_type(), NULL);
> +    OsinfoEntity *ent = g_object_new(osinfo_dummy_get_type(), "id", "wibble", NULL);
> +    OsinfoEntity *ent_dup = g_object_new(osinfo_dummy_get_type(), "id", "wibble", NULL);
> +
> +    osinfo_list_add(list, ent);
> +    osinfo_list_add(list, ent_dup);
> +
> +    fail_unless(osinfo_list_get_length(list) == 1, "List does not contain a single element");
> +    fail_unless(osinfo_list_get_nth(list, 0) == ent_dup, "Lookup wrong element");
> +    fail_unless(osinfo_list_find_by_id(list, "wibble") != NULL, "Could not find element");
> +    fail_unless(osinfo_list_find_by_id(list, "fish") == NULL, "Found wrong element");
> +
> +    g_object_unref(ent);
> +    g_object_unref(ent_dup);
> +    g_object_unref(list);
> +}
> +END_TEST
> +
> +
> +
>  START_TEST(test_union)
>  {
>      OsinfoList *list1 = g_object_new(osinfo_dummy_list_get_type(), NULL);
>      OsinfoList *list2 = g_object_new(osinfo_dummy_list_get_type(), NULL);
>      OsinfoList *list3 = g_object_new(osinfo_dummy_list_get_type(), NULL);
>      OsinfoEntity *ent1 = g_object_new(osinfo_dummy_get_type(), "id", "wibble1", NULL);
> +    OsinfoEntity *ent1_dup = g_object_new(osinfo_dummy_get_type(), "id", "wibble1", NULL);
>      OsinfoEntity *ent2 = g_object_new(osinfo_dummy_get_type(), "id", "wibble2", NULL);
>      OsinfoEntity *ent3 = g_object_new(osinfo_dummy_get_type(), "id", "wibble3", NULL);
>      OsinfoEntity *ent4 = g_object_new(osinfo_dummy_get_type(), "id", "wibble4", NULL);
> @@ -122,6 +146,7 @@ START_TEST(test_union)
>      osinfo_list_add(list1, ent3);
>  
>      osinfo_list_add(list2, ent1);
> +    osinfo_list_add(list2, ent1_dup);
>      osinfo_list_add(list2, ent4);
>  
>      osinfo_list_add_union(list3, list1, list2);
> @@ -154,6 +179,7 @@ START_TEST(test_union)
>      fail_unless(!hasBad, "List had unexpected entity");
>  
>      g_object_unref(ent1);
> +    g_object_unref(ent1_dup);
>      g_object_unref(ent2);
>      g_object_unref(ent3);
>      g_object_unref(ent4);
> @@ -170,6 +196,7 @@ START_TEST(test_intersect)
>      OsinfoList *list2 = g_object_new(osinfo_dummy_list_get_type(), NULL);
>      OsinfoList *list3 = g_object_new(osinfo_dummy_list_get_type(), NULL);
>      OsinfoEntity *ent1 = g_object_new(osinfo_dummy_get_type(), "id", "wibble1", NULL);
> +    OsinfoEntity *ent1_dup = g_object_new(osinfo_dummy_get_type(), "id", "wibble1", NULL);
>      OsinfoEntity *ent2 = g_object_new(osinfo_dummy_get_type(), "id", "wibble2", NULL);
>      OsinfoEntity *ent3 = g_object_new(osinfo_dummy_get_type(), "id", "wibble3", NULL);
>      OsinfoEntity *ent4 = g_object_new(osinfo_dummy_get_type(), "id", "wibble4", NULL);
> @@ -179,6 +206,7 @@ START_TEST(test_intersect)
>      osinfo_list_add(list1, ent3);
>  
>      osinfo_list_add(list2, ent1);
> +    osinfo_list_add(list2, ent1_dup);
>      osinfo_list_add(list2, ent3);
>      osinfo_list_add(list2, ent4);
>  
> @@ -212,6 +240,7 @@ START_TEST(test_intersect)
>      fail_unless(!hasBad, "List had unexpected entity");
>  
>      g_object_unref(ent1);
> +    g_object_unref(ent1_dup);
>      g_object_unref(ent2);
>      g_object_unref(ent3);
>      g_object_unref(ent4);
> @@ -370,6 +399,7 @@ list_suite(void)
>      TCase *tc = tcase_create("Core");
>      tcase_add_test(tc, test_basic);
>      tcase_add_test(tc, test_lookup);
> +    tcase_add_test(tc, test_duplicate);
>      tcase_add_test(tc, test_union);
>      tcase_add_test(tc, test_intersect);
>      tcase_add_test(tc, test_filter);

ACK

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the Libosinfo mailing list