test_stack_u64.c (1373B)
1 #include "test_stack_u64.h" 2 3 void test_stack_u64_init() { 4 stack_u64 t; 5 stack_u64_init(&t); 6 7 CU_ASSERT(t.nmemb == 0); 8 CU_ASSERT(t.alloc > 0); 9 CU_ASSERT(t.data != NULL); 10 11 stack_u64_clear(&t); 12 } 13 14 void test_stack_u64_push() { 15 stack_u64 t; 16 stack_u64_init(&t); 17 18 uint64_t i; 19 for (i = 0; i < 2 * BASE_STACK_SIZE; i++) { 20 stack_u64_push(&t, i); 21 } 22 23 CU_ASSERT(t.alloc == 2 * BASE_STACK_SIZE); 24 CU_ASSERT(t.nmemb == 2 * BASE_STACK_SIZE); 25 for (i = 0; i < 2 * BASE_STACK_SIZE; i++) { 26 CU_ASSERT(t.data[i] == i); 27 } 28 29 stack_u64_clear(&t); 30 } 31 32 void test_stack_u64_get_getlast() { 33 stack_u64 t; 34 stack_u64_init(&t); 35 36 uint64_t i; 37 for (i = 0; i < 2 * BASE_STACK_SIZE; i++) { 38 stack_u64_push(&t, i); 39 } 40 41 for (i = 0; i < t.nmemb; i++) { 42 CU_ASSERT(stack_u64_get(&t, i) == i); 43 } 44 CU_ASSERT(stack_u64_getlast(&t) == 2 * BASE_STACK_SIZE - 1); 45 46 stack_u64_clear(&t); 47 } 48 49 void test_stack_u64_pop() { 50 stack_u64 t; 51 stack_u64_init(&t); 52 53 stack_u64_push(&t, 13); 54 stack_u64_push(&t, 16); 55 stack_u64_push(&t, 17); 56 57 CU_ASSERT(t.nmemb == 3); 58 CU_ASSERT(stack_u64_pop(&t) == 17); 59 CU_ASSERT(t.nmemb == 2); 60 CU_ASSERT(stack_u64_pop(&t) == 16); 61 CU_ASSERT(t.nmemb == 1); 62 CU_ASSERT(stack_u64_pop(&t) == 13); 63 CU_ASSERT(t.nmemb == 0); 64 CU_ASSERT(stack_u64_pop(&t) == STACK_U64_EMPTY_POP); 65 CU_ASSERT(t.nmemb == 0); 66 67 stack_u64_clear(&t); 68 }