/** * This is a test for tarray in $package$ */ #include "si_test.h" /* Get Tarray interface, generate for integer type */ #define TEMPLATE_ZERO 0 #define TEMPLATE_T int #define TEMPLATE_NAME Intarr #define TEMPLATE_PREFIX intarr_ #include "tarray.h" /* Get Tarray implementation, generate for integer type */ #define TEMPLATE_ZERO 0 #define TEMPLATE_IMPLEMENT #define TEMPLATE_T int #define TEMPLATE_NAME Intarr #define TEMPLATE_PREFIX intarr_ #include "tarray.h" /* Get interface for pointer type. */ #define TEMPLATE_ZERO NULL #define TEMPLATE_T void* #define TEMPLATE_NAME Ptrarr #define TEMPLATE_PREFIX ptrarr_ #include "tarray.h" /* Get implementation for pointer type. */ #define TEMPLATE_ZERO NULL #define TEMPLATE_IMPLEMENT #define TEMPLATE_T void* #define TEMPLATE_NAME Ptrarr #define TEMPLATE_PREFIX ptrarr_ #include "tarray.h" TEST_FUNC(tarray_int) { Intarr array_struct; Intarr * array = &array_struct; int get; TEST_NOTNULL(intarr_init(array, 5)); TEST_NOTNULL(intarr_put(array, 3, 123)); TEST_NOTNULL(intarr_put(array, 0, 654)); TEST_NULL(intarr_put(array, 5, 321)); TEST_NOTNULL(intarr_put(array, 1, 321)); TEST_NULL(intarr_put(array, 10, 456)); TEST_INTEQ(123, intarr_getraw(array, 3, 0)); TEST_INTEQ(654, intarr_getraw(array, 0, 0)); TEST_TRUE(intarr_get(array, 3, &get)); TEST_INTEQ(123, get); TEST_TRUE(intarr_get(array, 0, &get)); TEST_INTEQ(654, get); TEST_FALSE(intarr_get(array, 5, &get)); TEST_TRUE(intarr_get(array, 1, &get)); TEST_FALSE(intarr_get(array, 10, &get)); TEST_NOTNULL(intarr_done(array)); TEST_DONE(); } TEST_FUNC(tarray_ptr) { Ptrarr array_struct; Ptrarr * array = &array_struct; int i1 = 123; int i2 = 234; int i3 = 354; int i4 = 456; void * get; void * p1 = &i1; void * p2 = &i2; void * p3 = &i3; void * p4 = &i4; TEST_NOTNULL(ptrarr_init(array, 5)); TEST_NOTNULL(ptrarr_put(array, 3, p1)); TEST_NOTNULL(ptrarr_put(array, 0, p2)); TEST_NULL(ptrarr_put(array, 5, p3)); TEST_NOTNULL(ptrarr_put(array, 1, p3)); TEST_NULL(ptrarr_put(array, 10, p4)); TEST_PTREQ(p1, ptrarr_getraw(array, 3, NULL)); TEST_PTREQ(p2, ptrarr_getraw(array, 0, NULL)); TEST_TRUE(ptrarr_get(array, 3, &get)); TEST_PTREQ(p1, get); TEST_TRUE(ptrarr_get(array, 0, &get)); TEST_PTREQ(p2, get); TEST_FALSE(ptrarr_get(array, 5, &get)); TEST_TRUE(ptrarr_get(array, 1, &get)); TEST_FALSE(ptrarr_get(array, 10, &get)); TEST_NOTNULL(ptrarr_done(array)); TEST_DONE(); } int main(void) { TEST_INIT(); TEST_RUN(tarray_int); TEST_RUN(tarray_ptr); TEST_REPORT(); }