diff options
Diffstat (limited to 'test/arraylist_test.c')
-rw-r--r-- | test/arraylist_test.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/test/arraylist_test.c b/test/arraylist_test.c new file mode 100644 index 000000000000..da5542e8d629 --- /dev/null +++ b/test/arraylist_test.c @@ -0,0 +1,58 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <arraylist.h> + +void test_basic(void) +{ + int *p; + ARRAYLIST(int) list; + ARRAYLIST_INIT(list, 2); + +#define dump() do {\ + printf("(%d items)\n", list.len); \ + ARRAYLIST_FOREACH(p, list) \ + printf("[%lu] %d\n", \ + (unsigned long)ARRAYLIST_IDX(p, list), *p); \ + printf("\n"); \ + } while(0) + + dump(); + + ARRAYLIST_ADD(p, list); + *p = 100; + dump(); + + ARRAYLIST_ADD(p, list); + *p = 101; + dump(); + + ARRAYLIST_ADD(p, list); + *p = 102; + dump(); + +#define insert_test(AT) do {\ + printf("insert at [" #AT "]:\n"); \ + ARRAYLIST_INSERT(p, list, AT); \ + *p = AT; \ + dump(); \ + } while(0) + + insert_test(list.len - 1); + insert_test(1); + insert_test(0); + insert_test(6); + insert_test(123); + insert_test(-42); + + printf("clear:\n"); + ARRAYLIST_CLEAR(list); + dump(); + + ARRAYLIST_FREE(list); +} + +int main(void) +{ + test_basic(); +} |