Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add some tests about cbps
[simgrid.git] / testsuite / xbt / dynar_int.c
index 51e3e98..aa8b8fe 100644 (file)
 #include <gras.h>
 
 #define NB_ELEM 5000
+GRAS_LOG_NEW_DEFAULT_CATEGORY(test);
 
 int main(int argc,char *argv[]) {
    gras_dynar_t *d;
    gras_error_t errcode;
    int i,cpt,cursor;
    
-   //   TRYFAIL(gras_log_control_set("root.thresh=debug dynar.thresh=info"));
-   TRYFAIL(gras_log_control_set("root.thresh=info"));
-   fprintf(stderr,"==== Push %d int, set them again 3 times, traverse them, shift them\n",NB_ELEM);
+   gras_init_defaultlog(&argc,argv,"dynar.thresh=debug");
+
+   fprintf(stderr,"==== Traverse the empty dynar\n");
+   TRYFAIL(gras_dynar_new(&d,sizeof(int),NULL));
+   gras_dynar_foreach(d,cursor,i){
+     fprintf(stderr,
+            "Damnit, there is something in the empty dynar\n");
+     abort();
+   }
+   gras_dynar_free(d);
+
+   fprintf(stderr,
+          "==== Push %d int, set them again 3 times, traverse them, shift them\n",
+          NB_ELEM);
    TRYFAIL(gras_dynar_new(&d,sizeof(int),NULL));
    for (cpt=0; cpt< NB_ELEM; cpt++) {
      TRYFAIL(gras_dynar_push(d,&cpt));
-     //     fprintf (stderr,"Push %d, length=%d \n",cpt, gras_dynar_length(d));
+     //fprintf (stderr,"Push %d, length=%d \n",cpt, gras_dynar_length(d));
+   }
+   for (cursor=0; cursor< NB_ELEM; cursor++) {
+     gras_dynar_get(d,cursor,&cpt);
+     gras_assert2(cursor == cpt,
+                 "The retrieved value is not the same than the injected one (%d!=%d)",
+                 cursor,cpt);
+   }
+   gras_dynar_foreach(d,cursor,cpt){
+     gras_assert2(cursor == cpt,
+                 "The retrieved value is not the same than the injected one (%d!=%d)",
+                 cursor,cpt);
    }
    for (cpt=0; cpt< NB_ELEM; cpt++) {
      TRYFAIL(gras_dynar_set(d,cpt,&cpt));
@@ -144,5 +167,6 @@ int main(int argc,char *argv[]) {
    }
    gras_dynar_free(d);
 
+   gras_exit();
    return 0;
 }