X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/013162cd57963a4b78fa05b5d8b01592f1d759b6..cf56a22da60094d8e7f14b1457526dc194d40226:/src/dict_unit.c diff --git a/src/dict_unit.c b/src/dict_unit.c index 19c92ef60b..23e17166f8 100644 --- a/src/dict_unit.c +++ b/src/dict_unit.c @@ -2,12 +2,13 @@ /* GENERATED FILE, DO NOT EDIT */ /*******************************/ +#include #include "xbt.h" /*******************************/ /* GENERATED FILE, DO NOT EDIT */ /*******************************/ -# 486 "xbt/dict.c" +# 603 "xbt/dict.c" #include "xbt.h" #include "xbt/ex.h" #include "portable.h" @@ -79,11 +80,16 @@ static void traverse(xbt_dict_t head) { xbt_dict_cursor_t cursor=NULL; char *key; char *data; + int i = 0; xbt_dict_foreach(head,cursor,key,data) { - xbt_test_log2("Seen: %s->%s",PRINTF_STR(key),PRINTF_STR(data)); + if (!key || !data || strcmp(key,data)) { + xbt_test_log3("Seen #%d: %s->%s",++i,PRINTF_STR(key),PRINTF_STR(data)); + } else { + xbt_test_log2("Seen #%d: %s",++i,PRINTF_STR(key)); + } xbt_test_assert2(!data || !strcmp(key,data), - "Key(%s) != value(%s). Abording\n",key,data); + "Key(%s) != value(%s). Abording",key,data); } } @@ -106,8 +112,19 @@ static void search_not_found(xbt_dict_t head, const char *data) { } static void count(xbt_dict_t dict, int length) { + xbt_dict_cursor_t cursor; + char *key; + void *data; + int effective = 0; + + xbt_test_add1("Count elements (expecting %d)", length); - xbt_test_assert2(xbt_dict_length(dict) == length, "Length(%d) != %d.", xbt_dict_length(dict), length); + xbt_test_assert2(xbt_dict_length(dict) == length, "Announced length(%d) != %d.", xbt_dict_length(dict), length); + + xbt_dict_foreach(dict,cursor,key,data) { + effective++; + } + xbt_test_assert2(effective == length, "Effective length(%d) != %d.", effective, length); } xbt_ex_t e; @@ -242,7 +259,7 @@ XBT_TEST_UNIT("remove",test_dict_remove,"Removing some values"){ xbt_ex_free(e); } traverse(head); - xbt_test_add0("Remove all values"); + xbt_test_add0("Free dict, create new fresh one, and then reset the dict"); xbt_dict_free(&head); fill(&head); xbt_dict_reset(head); @@ -268,7 +285,12 @@ XBT_TEST_UNIT("nulldata",test_dict_nulldata,"NULL data management"){ int found=0; xbt_dict_foreach(head,cursor,key,data) { - xbt_test_log2("Seen: %s->%s",PRINTF_STR(key),PRINTF_STR(data)); + if (!key || !data || strcmp(key,data)) { + xbt_test_log2("Seen: %s->%s",PRINTF_STR(key),PRINTF_STR(data)); + } else { + xbt_test_log1("Seen: %s",PRINTF_STR(key)); + } + if (!strcmp(key,"null")) found = 1; } @@ -290,7 +312,7 @@ static int countelems(xbt_dict_t head) { } return res; } - + XBT_TEST_UNIT("crash",test_dict_crash,"Crash test"){ xbt_dict_t head=NULL; int i,j,k, nb; @@ -299,26 +321,32 @@ XBT_TEST_UNIT("crash",test_dict_crash,"Crash test"){ srand((unsigned int)time(NULL)); - xbt_test_add0("CRASH test"); - xbt_test_log0("Fill the struct, count its elems and frees the structure (x10)"); - xbt_test_log1("using 1000 elements with %d chars long randomized keys.",SIZEOFKEY); - for (i=0;i<10;i++) { + xbt_test_add2("CRASH test number %d (%d to go)",i+1,10-i-1); + xbt_test_log0("Fill the struct, count its elems and frees the structure"); + xbt_test_log1("using 1000 elements with %d chars long randomized keys.",SIZEOFKEY); head=xbt_dict_new(); /* if (i%10) printf("."); else printf("%d",i/10); fflush(stdout); */ nb=0; for (j=0;j<1000;j++) { + char *data = NULL; key=xbt_malloc(SIZEOFKEY); - for (k=0;k