Path: blob/main/contrib/libdiff/test/arraylist_test.c
35065 views
#include <stdio.h>1#include <stdlib.h>2#include <string.h>3#include <arraylist.h>45void test_basic(void)6{7int *p;8ARRAYLIST(int) list;9ARRAYLIST_INIT(list, 2);1011#define dump() do {\12printf("(%d items)\n", list.len); \13ARRAYLIST_FOREACH(p, list) \14printf("[%lu] %d\n", \15(unsigned long)ARRAYLIST_IDX(p, list), *p); \16printf("\n"); \17} while(0)1819dump();2021ARRAYLIST_ADD(p, list);22*p = 100;23dump();2425ARRAYLIST_ADD(p, list);26*p = 101;27dump();2829ARRAYLIST_ADD(p, list);30*p = 102;31dump();3233#define insert_test(AT) do {\34printf("insert at [" #AT "]:\n"); \35ARRAYLIST_INSERT(p, list, AT); \36*p = AT; \37dump(); \38} while(0)3940insert_test(list.len - 1);41insert_test(1);42insert_test(0);43insert_test(6);44insert_test(123);45insert_test(-42);4647printf("clear:\n");48ARRAYLIST_CLEAR(list);49dump();5051ARRAYLIST_FREE(list);52}5354int main(void)55{56test_basic();57}585960