test_stack_str.c (1768B)
1 #include "test_stack_str.h" 2 3 void test_stack_str_init() 4 { 5 stack_str t; 6 stack_str_init(&t); 7 8 CU_ASSERT(t.nmemb == 0); 9 CU_ASSERT(t.alloc > 0); 10 CU_ASSERT(t.data != NULL); 11 12 stack_str_clear(&t); 13 } 14 15 void test_stack_str_push() 16 { 17 stack_str t; 18 stack_str_init(&t); 19 20 uint64_t i; 21 char buf[2*BASE_STACK_STR_SIZE][256]; 22 for(i = 0; i < 2*BASE_STACK_STR_SIZE; i++) { 23 snprintf(buf[i], 256, "%llu", i); 24 stack_str_push(&t, buf[i]); 25 } 26 27 CU_ASSERT(t.alloc == 2*BASE_STACK_STR_SIZE); 28 CU_ASSERT(t.nmemb == 2*BASE_STACK_STR_SIZE); 29 for(i = 0; i < 2*BASE_STACK_STR_SIZE; i++) { 30 CU_ASSERT(strncmp(buf[i], t.data[i], 256) == 0); 31 } 32 33 stack_str_clear(&t); 34 } 35 36 void test_stack_str_get_getlast() 37 { 38 stack_str t; 39 stack_str_init(&t); 40 41 uint64_t i; 42 char buf[2*BASE_STACK_STR_SIZE][256]; 43 for(i = 0; i < 2*BASE_STACK_STR_SIZE; i++) { 44 snprintf(buf[i], 256, "%llu", i); 45 stack_str_push(&t, buf[i]); 46 } 47 48 for(i = 0; i < t.nmemb; i++) { 49 CU_ASSERT(stack_str_get(&t, i) == buf[i]); 50 } 51 CU_ASSERT(stack_str_getlast(&t) == buf[2*BASE_STACK_STR_SIZE-1]); 52 53 stack_str_clear(&t); 54 } 55 56 void test_stack_str_pop() 57 { 58 stack_str t; 59 stack_str_init(&t); 60 61 char* strs[3] = {"hello", "world", "this is a msg"}; 62 63 stack_str_push(&t, strs[0]); 64 stack_str_push(&t, strs[1]); 65 stack_str_push(&t, strs[2]); 66 67 CU_ASSERT(t.nmemb == 3); 68 CU_ASSERT(stack_str_pop(&t) == strs[2]); 69 CU_ASSERT(t.nmemb == 2); 70 CU_ASSERT(stack_str_pop(&t) == strs[1]); 71 CU_ASSERT(t.nmemb == 1); 72 CU_ASSERT(stack_str_pop(&t) == strs[0]); 73 CU_ASSERT(t.nmemb == 0); 74 CU_ASSERT(stack_str_pop(&t) == STACK_STR_EMPTY_POP); 75 CU_ASSERT(t.nmemb == 0); 76 77 stack_str_clear(&t); 78 }