Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
A new data container coupling the facilities of a dynar with the ones of a dict
[simgrid.git] / testsuite / xbt / dict_usage.c
index 9731321..ef3755f 100644 (file)
@@ -82,36 +82,29 @@ static gras_error_t debuged_remove(gras_dict_t *head,const char*key)
 
 
 static gras_error_t traverse(gras_dict_t *head) {
-  gras_error_t errcode;
   gras_dict_cursor_t *cursor=NULL;
   char *key;
   char *data;
 
-  //  gras_dict_dump(head,&print_str);
-  TRY(gras_dict_cursor_new(head,&cursor));
-
-  while (gras_dict_cursor_next(cursor) == no_error) {
-    TRY(gras_dict_cursor_get_key(cursor,&key));
-    TRY(gras_dict_cursor_get_data(cursor,(void**)&data));
+  gras_dict_foreach(head,cursor,key,data) {
     printf("   - Seen:  %s->%s\n",key,data);
     if (strcmp(key,data)) {
       printf("Key(%s) != value(%s). Abording\n",key,data);
       abort();
     }
   }
-  gras_dict_cursor_free(cursor);
   return no_error;
 }
 
-int main() {
+void parse_log_opt(int argc, char **argv,const char *deft);
+
+int main(int argc,char **argv) {
   gras_error_t errcode;
   gras_dict_t *head=NULL;
   char *data;
 
-  //  TRY(gras_log_control_set("root.thresh=info dict_collapse.thresh=debug"));
-  //TRY(gras_log_control_set("root.thresh=info"));
-  //  TRY(gras_log_control_set("root.thresh=info dict_search.thresh=info dict.thresh=debug dict_collapse.thresh=debug log.thresh=debug"));
-
+  parse_log_opt(argc,argv,"dict.thresh=verbose");
+   
   printf("\nGeneric dictionnary: USAGE test:\n");
 
   printf(" Traverse the empty dictionnary\n");
@@ -120,7 +113,9 @@ int main() {
   TRYFAIL(fill(&head));
   printf(" Free the dictionnary\n");
   gras_dict_free(&head);
-
+  printf(" Free the dictionnary again\n");
+  gras_dict_free(&head);
+  
   TRYFAIL(fill(&head));
 
   printf(" - Change some values\n");
@@ -160,7 +155,7 @@ int main() {
 
   printf(" Free the dictionnary (twice)\n");
   gras_dict_free(&head);
-  gras_dict_free(&head); // frees it twice to see if it triggers an error
+  gras_dict_free(&head);
 
   printf(" - Traverse the resulting dictionnary\n");
   TRYFAIL(traverse(head));
@@ -171,6 +166,10 @@ int main() {
   TRYEXPECT(debuged_remove(head,"Does not exist"),mismatch_error);
   TRYFAIL(traverse(head));
 
+  gras_dict_free(&head);
+  gras_finalize();
+  return 0;
+
   TRYCATCH(debuged_remove(head,"12345"),mismatch_error);
   TRYFAIL(traverse(head));
 
@@ -184,8 +183,8 @@ int main() {
   TRYFAIL(debuged_remove(head,"123"));    TRYFAIL(traverse(head));
   TRYEXPECT(debuged_remove(head,"12346"),mismatch_error);  TRYFAIL(traverse(head));
   
+  printf(" - Free the dictionnary twice\n");
   gras_dict_free(&head);
   gras_dict_free(&head);
-
   return 0;
 }