3 Commits
Author SHA1 Message Date
maysi98860 31a76162ee Merge pull request 'simons_zweig' (#1) from simons_zweig into main
Reviewed-on: #1
2025-11-25 12:55:32 +00:00
Simon 4cfe6d9c50 added test_push and fixed stack cast 2025-11-24 17:53:43 +01:00
Simon 82c72eaf81 first tests 2025-11-24 16:05:31 +01:00
6 changed files with 247 additions and 269 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ StackNode *push(StackNode *stack, void *data)
StackNode *tempNode, *newNode;
newNode = malloc(sizeof(StackNode));
newNode->value = 3;
newNode->value = *(int *)data;
newNode->next = NULL;
if (stack == NULL)
+27 -49
View File
@@ -3,75 +3,52 @@
#include "stack.h"
#include "unity.h"
StackNode* setup(int value, StackNode* next) {
StackNode* node = malloc(sizeof(StackNode)); // allocate memory on heap
if (node == NULL) {
perror("malloc failed");
exit(EXIT_FAILURE); // or handle the error differently
}
node->value = value;
node->next = next;
return node;
void test_push(void)
{
StackNode *testNode;
int data = 1;
// 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)
{
StackNode* node2 = setup(3, NULL);
StackNode* node1 = setup(2, node2);
StackNode* header = setup(1, node1);
StackNode* temp;
temp = pop(header);
int after = 0;
while(temp)
{
after++;
temp = temp->next;
}
TEST_ASSERT_NULL(pop(NULL));
TEST_ASSERT_EQUAL_INT(2, after);
TEST_ASSERT_NULL(node1->next);
}
void test_top(void)
{
StackNode* node2 = setup(3, NULL);
StackNode* node1 = setup(2, node2);
StackNode* header = setup(1, node1);
int data = *(int *)top(header);
TEST_ASSERT_EQUAL_INT(node2->value, data);
TEST_ASSERT_NULL(top(NULL));
}
void test_clear()
void test_clear(void)
{
StackNode* node2 = setup(3, NULL);
StackNode* node1 = setup(2, node2);
StackNode* header = setup(1, node1);
StackNode* temp;
clearStack(header);
temp = header;
int after = 0;
while(temp)
{
after++;
temp = temp->next;
}
TEST_ASSERT_NULL(after);
// TEST_ASSERT_NULL(clearStack(NULL));
}
void setUp(void)
{
void setUp(void) {
// Falls notwendig, kann hier Vorbereitungsarbeit gemacht werden
}
void tearDown(void)
{
void tearDown(void) {
// Hier kann Bereinigungsarbeit nach jedem Test durchgeführt werden
}
@@ -81,6 +58,7 @@ int main()
printf("============================\nStack tests\n============================\n");
RUN_TEST(test_push);
RUN_TEST(test_pop);
RUN_TEST(test_top);
RUN_TEST(test_clear);