- xbt_test_add0("Generic multicache CRASH test");
- xbt_test_log4(" Fill the struct and frees it %d times, using %d elements, "
- "depth of multicache=%d, key size=%d",
- NB_TEST,NB_ELM,DEPTH,KEY_SIZE);
-
- for (l=0 ; l<DEPTH ; l++) {
- key=xbt_malloc(KEY_SIZE);
- xbt_dynar_push(keys,&key);
- }
-
- for (i=0;i<NB_TEST;i++) {
- mdict = xbt_dict_new();
- VERB1("mdict=%p",mdict);
- if (verbose>0)
- printf("Test %d\n",i);
- /* else if (i%10) printf("."); else printf("%d",i/10);*/
-
- for (j=0;j<NB_ELM;j++) {
- if (verbose>0) printf (" Add {");
-
- for (l=0 ; l<DEPTH ; l++) {
- key=*(char**)xbt_dynar_get_ptr(keys,l);
-
- for (k=0;k<KEY_SIZE-1;k++)
- key[k]=rand() % ('z' - 'a') + 'a';
-
- key[k]='\0';
-
- if (verbose>0) printf("%p=%s %s ",key, key,(l<DEPTH-1?";":"}"));
- }
- if (verbose>0) printf("in multitree %p.\n",mdict);
-
- xbt_multidict_set(mdict,keys,xbt_strdup(key),free);
-
- data = xbt_multidict_get(mdict,keys);
-
- xbt_test_assert2(data && !strcmp((char*)data,key),
- "Retrieved value (%s) does not match the entrered one (%s)\n",
- (char*)data,key);
- }
- xbt_dict_free(&mdict);
+ 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);