From 4cfe6d9c50c0a009fd023e3f3e5e80b5a764c397 Mon Sep 17 00:00:00 2001 From: Simon Date: Mon, 24 Nov 2025 17:53:43 +0100 Subject: [PATCH] added test_push and fixed stack cast --- stack.c | 3 +-- test_stack.c | 22 +++++++++++++++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/stack.c b/stack.c index d28f240..2315722 100644 --- a/stack.c +++ b/stack.c @@ -13,8 +13,7 @@ StackNode *push(StackNode *stack, void *data) StackNode *tempNode, *newNode; newNode = malloc(sizeof(StackNode)); - newNode->value = (intptr_t) data; - //newNode->value = 3; + newNode->value = *(int *)data; newNode->next = NULL; if (stack == NULL) diff --git a/test_stack.c b/test_stack.c index ff47eb7..c9b71cf 100644 --- a/test_stack.c +++ b/test_stack.c @@ -5,15 +5,31 @@ void test_push(void) { + StackNode *testNode; + int data = 1; - int value = 3; - TEST_ASSERT_NOT_NULL(push(NULL, &value)); - TEST_ASSERT_EQUAL_INT(value, (intptr_t) push(NULL, &value)->value); + // Test für leeren Stack + testNode = push(NULL, &data); + TEST_ASSERT_NOT_NULL(&testNode); + TEST_ASSERT_NULL(testNode->next); + TEST_ASSERT_EQUAL_INT(1, testNode->value); + + data = 2; + + // Test für nicht leeren Stack + testNode = push(testNode, &data); + TEST_ASSERT_NOT_NULL(&testNode); + TEST_ASSERT_NOT_NULL(testNode->next); + TEST_ASSERT_NULL(testNode->next->next); + TEST_ASSERT_EQUAL_INT(1, testNode->value); + TEST_ASSERT_EQUAL_INT(2, testNode->next->value); } void test_pop(void) { + TEST_ASSERT_NULL(pop(NULL)); + } void test_top(void)