| 19 |
19 |
| 20 tdata->values[tdata->i] = *(int*)dl->data; |
20 tdata->values[tdata->i] = *(int*)dl->data; |
| 21 tdata->i++; |
21 tdata->i++; |
| 22 } |
22 } |
| 23 |
23 |
| 24 int list_tests() { |
24 int list_tests_foreach2(void *v, void *custom) { |
| |
25 UcxList *dl = (UcxList*)v; |
| |
26 struct test1_data *tdata = (struct test1_data*)custom; |
| |
27 |
| |
28 tdata->values[tdata->i] = *(int*)dl->data; |
| |
29 tdata->i++; |
| |
30 } |
| |
31 |
| |
32 int dlist_tests() { |
| 25 int r = 0; |
33 int r = 0; |
| 26 int v[8]; |
34 int v[8]; |
| 27 UcxDlist *dl = NULL; |
35 UcxDlist *dl = NULL; |
| 28 // build list 0,1,2,3,4,5,6,7 |
36 // build list 0,1,2,3,4,5,6,7 |
| |
37 printf(" Test ucx_dlist_append\n"); |
| |
38 fflush(stdout); |
| 29 for(int i=0;i<8;i++) { |
39 for(int i=0;i<8;i++) { |
| 30 v[i] = i; |
40 v[i] = i; |
| 31 dl = ucx_dlist_append(dl, &v[i]); |
41 dl = ucx_dlist_append(dl, &v[i]); |
| 32 } |
42 } |
| 33 |
43 |
| |
44 printf(" Test ucx_dlist_get\n"); |
| |
45 fflush(stdout); |
| 34 for(int i=0;i<8;i++) { |
46 for(int i=0;i<8;i++) { |
| 35 UcxDlist *elm = ucx_dlist_get(dl, i); |
47 UcxDlist *elm = ucx_dlist_get(dl, i); |
| 36 if(elm == NULL) { |
48 if(elm == NULL) { |
| 37 fprintf(stderr, "ucx_dlist_get failed: element is NULL\n"); |
49 fprintf(stderr, "ucx_dlist_get failed: element is NULL\n"); |
| |
50 r--; |
| 38 } |
51 } |
| 39 if(elm->data == NULL) { |
52 if(elm->data == NULL) { |
| 40 fprintf(stderr, "ucx_dlist_get failed: data is NULL\n"); |
53 fprintf(stderr, "ucx_dlist_get failed: data is NULL\n"); |
| |
54 r--; |
| 41 } |
55 } |
| 42 int *data = (int*)elm->data; |
56 int *data = (int*)elm->data; |
| 43 if(*data != i) { |
57 if(*data != i) { |
| 44 fprintf(stderr, "ucx_dlist_get failed with index %d\n", i); |
58 fprintf(stderr, "ucx_dlist_get failed with index %d\n", i); |
| |
59 r--; |
| 45 } |
60 } |
| 46 } |
61 } |
| 47 |
62 |
| 48 //TODO: ucx_dlist_free test |
63 printf(" Test ucx_dlist_free\n"); |
| 49 |
64 fflush(stdout); |
| |
65 ucx_dlist_free(dl); |
| |
66 |
| 50 dl = NULL; |
67 dl = NULL; |
| 51 // build list 4,0,4 |
68 // build list 4,0,4 |
| |
69 printf(" Test ucx_dlist_prepend\n"); |
| 52 dl = ucx_dlist_prepend(dl, &v[0]); |
70 dl = ucx_dlist_prepend(dl, &v[0]); |
| 53 dl = ucx_dlist_prepend(dl, &v[5]); |
71 dl = ucx_dlist_prepend(dl, &v[4]); |
| 54 dl = ucx_dlist_append(dl, &v[5]); |
72 dl = ucx_dlist_append(dl, &v[4]); |
| 55 |
73 |
| 56 struct test1_data tdata; |
74 struct test1_data tdata; |
| 57 tdata.i = 0; |
75 tdata.i = 0; |
| 58 ucx_dlist_foreach(dl, list_tests_foreach1, &tdata); |
76 ucx_dlist_foreach(dl, list_tests_foreach1, &tdata); |
| 59 |
77 |
| 60 if(tdata.values[0] != 4 || tdata.values[1] != 0 || tdata.values[2] != 4) { |
78 if(tdata.values[0] != 4 || tdata.values[1] != 0 || tdata.values[2] != 4) { |
| 61 fprintf(stderr, "prepend/append test failed\n"); |
79 fprintf(stderr, "prepend/append test failed\n"); |
| |
80 fprintf(stderr, "content: [%d, %d, %d]\n", tdata.values[0], tdata.values[1], tdata.values[2]); |
| |
81 r--; |
| 62 } |
82 } |
| 63 |
83 |
| 64 return r; |
84 return r; |
| 65 } |
85 } |
| |
86 |
| |
87 int list_tests() { |
| |
88 int r = 0; |
| |
89 int v[8]; |
| |
90 UcxList *dl = NULL; |
| |
91 // build list 0,1,2,3,4,5,6,7 |
| |
92 printf(" Test ucx_list_append\n"); |
| |
93 fflush(stdout); |
| |
94 for(int i=0;i<8;i++) { |
| |
95 v[i] = i; |
| |
96 dl = ucx_list_append(dl, &v[i]); |
| |
97 } |
| |
98 |
| |
99 printf(" Test ucx_list_get\n"); |
| |
100 fflush(stdout); |
| |
101 for(int i=0;i<8;i++) { |
| |
102 UcxList *elm = ucx_list_get(dl, i); |
| |
103 if(elm == NULL) { |
| |
104 fprintf(stderr, "ucx_list_get failed: element is NULL\n"); |
| |
105 r--; |
| |
106 } |
| |
107 if(elm->data == NULL) { |
| |
108 fprintf(stderr, "ucx_list_get failed: data is NULL\n"); |
| |
109 r--; |
| |
110 } |
| |
111 int *data = (int*)elm->data; |
| |
112 if(*data != i) { |
| |
113 fprintf(stderr, "ucx_list_get failed with index %d\n", i); |
| |
114 r--; |
| |
115 } |
| |
116 } |
| |
117 |
| |
118 printf(" Test ucx_list_free\n"); |
| |
119 fflush(stdout); |
| |
120 ucx_list_free(dl); |
| |
121 |
| |
122 dl = NULL; |
| |
123 // build list 4,0,4 |
| |
124 printf(" Test ucx_list_prepend\n"); |
| |
125 dl = ucx_list_prepend(dl, &v[0]); |
| |
126 dl = ucx_list_prepend(dl, &v[4]); |
| |
127 dl = ucx_list_append(dl, &v[4]); |
| |
128 |
| |
129 struct test1_data tdata; |
| |
130 tdata.i = 0; |
| |
131 ucx_list_foreach(dl, list_tests_foreach1, &tdata); |
| |
132 |
| |
133 if(tdata.values[0] != 4 || tdata.values[1] != 0 || tdata.values[2] != 4) { |
| |
134 fprintf(stderr, "prepend/append test failed\n"); |
| |
135 fprintf(stderr, "content: [%d, %d, %d]\n", tdata.values[0], tdata.values[1], tdata.values[2]); |
| |
136 r--; |
| |
137 } |
| |
138 |
| |
139 return r; |
| |
140 } |