X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/75ffa801579aeb214b8d95290b76c96a605a2422..16ba86f08c16aca21dc67f3083a63e22f6389d02:/testsuite/xbt/dynar_string.c diff --git a/testsuite/xbt/dynar_string.c b/testsuite/xbt/dynar_string.c index 5ce0dfbdc6..6651a4648a 100644 --- a/testsuite/xbt/dynar_string.c +++ b/testsuite/xbt/dynar_string.c @@ -11,55 +11,56 @@ #include #include +/* NB_ELEM HAS to be a multiple of 5 */ +#define NB_ELEM 5000 + void free_string(void *d); 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(); } gras_dynar_free(d); - fprintf(stderr,"==== Push 5000 strings, set them again 3 times, shift them\n"); + fprintf(stderr,"==== Push %d strings, set them again 3 times, shift them\n",NB_ELEM); TRYFAIL(gras_dynar_new(&d,sizeof(char*),&free_string)); - for (cpt=0; cpt< 5000; cpt++) { + for (cpt=0; cpt< NB_ELEM; cpt++) { sprintf(buf,"%d",cpt); s1=strdup(buf); TRYFAIL(gras_dynar_push(d,&s1)); } - for (cpt=0; cpt< 5000; cpt++) { + for (cpt=0; cpt< NB_ELEM; cpt++) { sprintf(buf,"%d",cpt); s1=strdup(buf); TRYFAIL(gras_dynar_remplace(d,cpt,&s1)); } - for (cpt=0; cpt< 5000; cpt++) { + for (cpt=0; cpt< NB_ELEM; cpt++) { sprintf(buf,"%d",cpt); s1=strdup(buf); TRYFAIL(gras_dynar_remplace(d,cpt,&s1)); } - for (cpt=0; cpt< 5000; cpt++) { + for (cpt=0; cpt< NB_ELEM; cpt++) { sprintf(buf,"%d",cpt); s1=strdup(buf); TRYFAIL(gras_dynar_remplace(d,cpt,&s1)); } - for (cpt=0; cpt< 5000; cpt++) { + for (cpt=0; cpt< NB_ELEM; cpt++) { sprintf(buf,"%d",cpt); gras_dynar_shift(d,&s2); if (strcmp(buf,s2)) { @@ -73,14 +74,23 @@ int main(int argc,char *argv[]) { gras_dynar_free(d); - fprintf(stderr,"==== Unshift/pop 5000 strings\n"); + fprintf(stderr,"==== Unshift, traverse and pop %d strings\n",NB_ELEM); TRYFAIL(gras_dynar_new(&d,sizeof(char**),&free_string)); - for (cpt=0; cpt< 5000; cpt++) { + for (cpt=0; cpt< NB_ELEM; cpt++) { sprintf(buf,"%d",cpt); s1=strdup(buf); TRYFAIL(gras_dynar_unshift(d,&s1)); } - for (cpt=0; cpt< 5000; cpt++) { + 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); if (strcmp(buf,s2)) { @@ -95,20 +105,20 @@ int main(int argc,char *argv[]) { - fprintf(stderr,"==== Push 5000 strings, insert 1000 strings in the middle, shift everything\n"); + fprintf(stderr,"==== Push %d strings, insert %d strings in the middle, shift everything\n",NB_ELEM,NB_ELEM/5); TRYFAIL(gras_dynar_new(&d,sizeof(char*),&free_string)); - for (cpt=0; cpt< 5000; cpt++) { + for (cpt=0; cpt< NB_ELEM; cpt++) { sprintf(buf,"%d",cpt); s1=strdup(buf); TRYFAIL(gras_dynar_push(d,&s1)); } - for (cpt=0; cpt< 1000; cpt++) { + for (cpt=0; cpt< NB_ELEM/5; cpt++) { sprintf(buf,"%d",cpt); s1=strdup(buf); - TRYFAIL(gras_dynar_insert_at(d,2500,&s1)); + TRYFAIL(gras_dynar_insert_at(d,NB_ELEM/2,&s1)); } - for (cpt=0; cpt< 2500; cpt++) { + for (cpt=0; cpt< NB_ELEM/2; cpt++) { sprintf(buf,"%d",cpt); gras_dynar_shift(d,&s2); if (strcmp(buf,s2)) { @@ -119,7 +129,7 @@ int main(int argc,char *argv[]) { } free(s2); } - for (cpt=999; cpt>=0; cpt--) { + for (cpt=(NB_ELEM/5)-1; cpt>=0; cpt--) { sprintf(buf,"%d",cpt); gras_dynar_shift(d,&s2); if (strcmp(buf,s2)) { @@ -130,7 +140,7 @@ int main(int argc,char *argv[]) { } free(s2); } - for (cpt=2500; cpt< 5000; cpt++) { + for (cpt=NB_ELEM/2; cpt< NB_ELEM; cpt++) { sprintf(buf,"%d",cpt); gras_dynar_shift(d,&s2); if (strcmp(buf,s2)) { @@ -144,16 +154,16 @@ int main(int argc,char *argv[]) { gras_dynar_free(d); - fprintf(stderr,"==== Push 5000 strings, remove 2000-4000. free the rest\n"); + fprintf(stderr,"==== Push %d strings, remove %d-%d. free the rest\n",NB_ELEM,2*(NB_ELEM/5),4*(NB_ELEM/5)); TRYFAIL(gras_dynar_new(&d,sizeof(char*),&free_string)); - for (cpt=0; cpt< 5000; cpt++) { + for (cpt=0; cpt< NB_ELEM; cpt++) { sprintf(buf,"%d",cpt); s1=strdup(buf); TRYFAIL(gras_dynar_push(d,&s1)); } - for (cpt=2000; cpt< 4000; cpt++) { + for (cpt=2*(NB_ELEM/5); cpt< 4*(NB_ELEM/5); cpt++) { sprintf(buf,"%d",cpt); - gras_dynar_remove_at(d,2000,&s2); + gras_dynar_remove_at(d,2*(NB_ELEM/5),&s2); if (strcmp(buf,s2)) { fprintf(stderr, "Remove a bad value. Got %s, expected %s\n", @@ -164,5 +174,6 @@ int main(int argc,char *argv[]) { } gras_dynar_free(d); + gras_exit(); return 0; }