From 2a095975b8b8d7a93f7ac1c8c65206e2c51697f4 Mon Sep 17 00:00:00 2001 From: regis37 Date: Wed, 26 Nov 2025 23:54:44 +0100 Subject: [PATCH] Unittest is done --- test_stack.c | 40 ++++++++++++++++++++++++++++++++++++++++ stack.c | 4 ++-- 2 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 test_stack.c diff --git a/ test_stack.c b/ test_stack.c new file mode 100644 index 0000000..b025fc5 --- /dev/null +++ b/ test_stack.c @@ -0,0 +1,40 @@ +#include +#include +#include "stack.h" + +int main() +{ + StackNode *stack = NULL; + + // Test 1: Push + int *a = malloc(sizeof(int)); // erstellt Daten + *a = 10; + int *b = malloc(sizeof(int)); + *b = 20; + int *c = malloc(sizeof(int)); + *c = 30; + + stack = push(stack, a); //legt ein Element oben auf den Stack + stack = push(stack, b); + stack = push(stack, c); + + // Test 2: Top + printf("Top (soll 30 sein): %d\n", *((int*)top(stack))); // Zeigt den Top vom Stack + + // Test 3: Pop + stack = pop(stack); // entfernt 30 + free(c); + + printf("Top nach pop (soll 20 sein): %d\n", *(int*)top(stack)); // // Zeigt den Top vom Stack + + // Test 4: Nochmal pop + stack = pop(stack); // entfernt 20 + free(b); + + printf("Top nach pop (soll 10 sein): %d\n", *(int*)top(stack)); + + // Test 5: clearStack + clearStack(stack); // gibt den gesamten Speicher frei + + return 0; +} diff --git a/stack.c b/stack.c index fd10639..9202142 100644 --- a/stack.c +++ b/stack.c @@ -25,9 +25,9 @@ StackNode *pop(StackNode *stack) if (stack == NULL) return NULL; - StackNode *next = stack->next; + StackNode *newTop = stack->next; free(stack); - return next; + return newTop; } // Returns the data of the top element.