Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add some tests about cbps
[simgrid.git] / testsuite / xbt / dynar_string.c
index 7c8bc40..6651a46 100644 (file)
@@ -20,20 +20,18 @@ void free_string(void *d){
   free(*(void**)d);
 }
 
-void parse_log_opt(int argc, char **argv,const char *deft);
-
 int main(int argc,char *argv[]) {
    gras_dynar_t *d;
    gras_error_t errcode;
-   int cpt,i;
+   int cpt;
    char buf[1024];
    char *s1,*s2;
    
-   parse_log_opt(argc,argv,"dynar.thresh=debug");
+   gras_init_defaultlog(&argc,argv,"dynar.thresh=debug");
    
    fprintf(stderr,"==== Traverse the empty dynar\n");
    TRYFAIL(gras_dynar_new(&d,sizeof(char *),&free_string));
-   gras_dynar_foreach(d,cpt,i){
+   gras_dynar_foreach(d,cpt,s1){
      fprintf(stderr,
             "Damnit, there is something in the empty dynar\n");
      abort();
@@ -76,13 +74,22 @@ int main(int argc,char *argv[]) {
    gras_dynar_free(d);
 
 
-   fprintf(stderr,"==== Unshift/pop %d strings\n",NB_ELEM);
+   fprintf(stderr,"==== Unshift, traverse and pop %d strings\n",NB_ELEM);
    TRYFAIL(gras_dynar_new(&d,sizeof(char**),&free_string));
    for (cpt=0; cpt< NB_ELEM; cpt++) {
      sprintf(buf,"%d",cpt);
      s1=strdup(buf);
      TRYFAIL(gras_dynar_unshift(d,&s1));
    }
+   gras_dynar_foreach(d,cpt,s1) {
+     sprintf(buf,"%d",NB_ELEM - cpt -1);
+     if (strcmp(buf,s1)) {
+       fprintf(stderr,
+           "The retrieved value is not the same than the injected one (%s!=%s)\n",
+              buf,s1);
+       abort();
+     }
+   }
    for (cpt=0; cpt< NB_ELEM; cpt++) {
      sprintf(buf,"%d",cpt);
      gras_dynar_pop(d,&s2);
@@ -167,5 +174,6 @@ int main(int argc,char *argv[]) {
    }
    gras_dynar_free(d);
 
+   gras_exit();
    return 0;
 }