diff --git a/test_stack.c b/test_stack.c index 8cef152..ea95ac9 100644 --- a/test_stack.c +++ b/test_stack.c @@ -24,26 +24,22 @@ int main(void) return UNITY_END(); } + void test_push_and_top(void) { StackNode *stack = NULL; - int *a = malloc(sizeof(int)); *a = 10; - int *b = malloc(sizeof(int)); *b = 20; - int *c = malloc(sizeof(int)); *c = 30; + int a = 10; + int b = 20; + int c = 30; - stack = push(stack, a); - stack = push(stack, b); - stack = push(stack, c); + stack = push(stack, &a); + stack = push(stack, &b); + stack = push(stack, &c); TEST_ASSERT_EQUAL_INT(30, *(int*)top(stack)); - // Cleanup data manually - void *data; - stack = pop(stack, &data); free(data); - stack = pop(stack, &data); free(data); - stack = pop(stack, &data); free(data); - + clearStack(&stack); TEST_ASSERT_NULL(stack); } @@ -51,22 +47,18 @@ void test_pop(void) { StackNode *stack = NULL; - int *x = malloc(sizeof(int)); *x = 111; - int *y = malloc(sizeof(int)); *y = 222; + int x = 111; + int y = 222; - stack = push(stack, x); - stack = push(stack, y); + stack = push(stack, &x); + stack = push(stack, &y); - void *data; - - stack = pop(stack, &data); - TEST_ASSERT_EQUAL_INT(222, *(int*)data); - free(data); - - stack = pop(stack, &data); - TEST_ASSERT_EQUAL_INT(111, *(int*)data); - free(data); + // pop removes y + stack = pop(stack); + TEST_ASSERT_EQUAL_INT(111, *(int*)top(stack)); + // pop removes x + stack = pop(stack); TEST_ASSERT_NULL(stack); } @@ -74,17 +66,11 @@ void test_clearStack(void) { StackNode *stack = NULL; - int *p = malloc(sizeof(int)); *p = 7; - int *q = malloc(sizeof(int)); *q = 8; + int x = 5; + int y = 6; - stack = push(stack, p); - stack = push(stack, q); - - // Pop to free data first! - void *data; - - stack = pop(stack, &data); free(data); - stack = pop(stack, &data); free(data); + stack = push(stack, &x); + stack = push(stack, &y); clearStack(&stack);