Sat, 31 Dec 2011 19:08:27 +0100
Added list tests
test/list_tests.c | file | annotate | diff | comparison | revisions |
1.1 --- a/test/list_tests.c Sat Dec 31 19:05:26 2011 +0100 1.2 +++ b/test/list_tests.c Sat Dec 31 19:08:27 2011 +0100 1.3 @@ -21,37 +21,55 @@ 1.4 tdata->i++; 1.5 } 1.6 1.7 -int list_tests() { 1.8 +int list_tests_foreach2(void *v, void *custom) { 1.9 + UcxList *dl = (UcxList*)v; 1.10 + struct test1_data *tdata = (struct test1_data*)custom; 1.11 + 1.12 + tdata->values[tdata->i] = *(int*)dl->data; 1.13 + tdata->i++; 1.14 +} 1.15 + 1.16 +int dlist_tests() { 1.17 int r = 0; 1.18 int v[8]; 1.19 UcxDlist *dl = NULL; 1.20 // build list 0,1,2,3,4,5,6,7 1.21 + printf(" Test ucx_dlist_append\n"); 1.22 + fflush(stdout); 1.23 for(int i=0;i<8;i++) { 1.24 v[i] = i; 1.25 dl = ucx_dlist_append(dl, &v[i]); 1.26 } 1.27 1.28 + printf(" Test ucx_dlist_get\n"); 1.29 + fflush(stdout); 1.30 for(int i=0;i<8;i++) { 1.31 UcxDlist *elm = ucx_dlist_get(dl, i); 1.32 if(elm == NULL) { 1.33 fprintf(stderr, "ucx_dlist_get failed: element is NULL\n"); 1.34 + r--; 1.35 } 1.36 if(elm->data == NULL) { 1.37 fprintf(stderr, "ucx_dlist_get failed: data is NULL\n"); 1.38 + r--; 1.39 } 1.40 int *data = (int*)elm->data; 1.41 if(*data != i) { 1.42 fprintf(stderr, "ucx_dlist_get failed with index %d\n", i); 1.43 + r--; 1.44 } 1.45 } 1.46 1.47 - //TODO: ucx_dlist_free test 1.48 - 1.49 + printf(" Test ucx_dlist_free\n"); 1.50 + fflush(stdout); 1.51 + ucx_dlist_free(dl); 1.52 + 1.53 dl = NULL; 1.54 // build list 4,0,4 1.55 + printf(" Test ucx_dlist_prepend\n"); 1.56 dl = ucx_dlist_prepend(dl, &v[0]); 1.57 - dl = ucx_dlist_prepend(dl, &v[5]); 1.58 - dl = ucx_dlist_append(dl, &v[5]); 1.59 + dl = ucx_dlist_prepend(dl, &v[4]); 1.60 + dl = ucx_dlist_append(dl, &v[4]); 1.61 1.62 struct test1_data tdata; 1.63 tdata.i = 0; 1.64 @@ -59,7 +77,64 @@ 1.65 1.66 if(tdata.values[0] != 4 || tdata.values[1] != 0 || tdata.values[2] != 4) { 1.67 fprintf(stderr, "prepend/append test failed\n"); 1.68 + fprintf(stderr, "content: [%d, %d, %d]\n", tdata.values[0], tdata.values[1], tdata.values[2]); 1.69 + r--; 1.70 } 1.71 1.72 return r; 1.73 } 1.74 + 1.75 +int list_tests() { 1.76 + int r = 0; 1.77 + int v[8]; 1.78 + UcxList *dl = NULL; 1.79 + // build list 0,1,2,3,4,5,6,7 1.80 + printf(" Test ucx_list_append\n"); 1.81 + fflush(stdout); 1.82 + for(int i=0;i<8;i++) { 1.83 + v[i] = i; 1.84 + dl = ucx_list_append(dl, &v[i]); 1.85 + } 1.86 + 1.87 + printf(" Test ucx_list_get\n"); 1.88 + fflush(stdout); 1.89 + for(int i=0;i<8;i++) { 1.90 + UcxList *elm = ucx_list_get(dl, i); 1.91 + if(elm == NULL) { 1.92 + fprintf(stderr, "ucx_list_get failed: element is NULL\n"); 1.93 + r--; 1.94 + } 1.95 + if(elm->data == NULL) { 1.96 + fprintf(stderr, "ucx_list_get failed: data is NULL\n"); 1.97 + r--; 1.98 + } 1.99 + int *data = (int*)elm->data; 1.100 + if(*data != i) { 1.101 + fprintf(stderr, "ucx_list_get failed with index %d\n", i); 1.102 + r--; 1.103 + } 1.104 + } 1.105 + 1.106 + printf(" Test ucx_list_free\n"); 1.107 + fflush(stdout); 1.108 + ucx_list_free(dl); 1.109 + 1.110 + dl = NULL; 1.111 + // build list 4,0,4 1.112 + printf(" Test ucx_list_prepend\n"); 1.113 + dl = ucx_list_prepend(dl, &v[0]); 1.114 + dl = ucx_list_prepend(dl, &v[4]); 1.115 + dl = ucx_list_append(dl, &v[4]); 1.116 + 1.117 + struct test1_data tdata; 1.118 + tdata.i = 0; 1.119 + ucx_list_foreach(dl, list_tests_foreach1, &tdata); 1.120 + 1.121 + if(tdata.values[0] != 4 || tdata.values[1] != 0 || tdata.values[2] != 4) { 1.122 + fprintf(stderr, "prepend/append test failed\n"); 1.123 + fprintf(stderr, "content: [%d, %d, %d]\n", tdata.values[0], tdata.values[1], tdata.values[2]); 1.124 + r--; 1.125 + } 1.126 + 1.127 + return r; 1.128 +}