Added list tests

Sat, 31 Dec 2011 19:08:27 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sat, 31 Dec 2011 19:08:27 +0100
changeset 11
4f6082f99bd7
parent 10
df8140ba781c
child 12
fe50a85e69e7

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 +}

mercurial