X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5f8a647bcabed9fa873dd266735c3e58e9fd3c27..b3b356352e87ae00a20f737c48e19b0c8413455a:/src/xbt/dict.c diff --git a/src/xbt/dict.c b/src/xbt/dict.c index 9d2ba31844..d7e8765f38 100644 --- a/src/xbt/dict.c +++ b/src/xbt/dict.c @@ -1,6 +1,6 @@ /* dict - a generic dictionary, variation over hash table */ -/* Copyright (c) 2004-2014. The SimGrid Team. +/* Copyright (c) 2004-2015. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -678,6 +678,8 @@ void xbt_dict_postexit(void) #include "xbt/ex.h" #include "portable.h" +#define PRINTF_STR(a) (a)?:"(null)" + XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(xbt_dict); XBT_TEST_SUITE("dict", "Dict data container"); @@ -892,19 +894,19 @@ static void basic_test(int homogeneous) fill(&head, homogeneous); count_check_get_key(head, 7); xbt_test_add("Change 123 to 'Changed 123'"); - xbt_dict_set(head, "123", strdup("Changed 123"), free_f); + xbt_dict_set(head, "123", xbt_strdup("Changed 123"), free_f); count_check_get_key(head, 7); xbt_test_add("Change 123 back to '123'"); - xbt_dict_set(head, "123", strdup("123"), free_f); + xbt_dict_set(head, "123", xbt_strdup("123"), free_f); count_check_get_key(head, 7); xbt_test_add("Change 12a to 'Dummy 12a'"); - xbt_dict_set(head, "12a", strdup("Dummy 12a"), free_f); + xbt_dict_set(head, "12a", xbt_strdup("Dummy 12a"), free_f); count_check_get_key(head, 7); xbt_test_add("Change 12a to '12a'"); - xbt_dict_set(head, "12a", strdup("12a"), free_f); + xbt_dict_set(head, "12a", xbt_strdup("12a"), free_f); count_check_get_key(head, 7); xbt_test_add("Traverse the resulting dictionary"); @@ -1172,4 +1174,27 @@ XBT_TEST_UNIT("crash", test_dict_crash, "Crash test") xbt_dict_free(&head); } +XBT_TEST_UNIT("ext", test_dict_int, "Test dictionnary with int keys") +{ + xbt_dict_t dict = xbt_dict_new(); + int count = 500; + + xbt_test_add("Insert elements"); + int i; + for (i = 0; i < count; ++i) + xbt_dict_set_ext(dict, (char*) &i, sizeof(i), (void*) (intptr_t) i, NULL); + xbt_test_assert(xbt_dict_size(dict) == count, + "Bad number of elements in the dictionnary"); + + xbt_test_add("Check elements"); + for (i = 0; i < count; ++i) { + int res = (int) (intptr_t) xbt_dict_get_ext(dict, (char*) &i, sizeof(i)); + xbt_test_assert(xbt_dict_size(dict) == count, + "Unexpected value at index %i, expected %i but was %i", i, i, res); + } + + xbt_test_add("Free the array"); + xbt_dict_free(&dict); +} + #endif /* SIMGRID_TEST */