Added Git Hash To Build

This commit is contained in:
2025-07-22 14:22:49 +02:00
parent 94b5fd47a4
commit b4d9f24f0e
5 changed files with 133 additions and 1 deletions
+14
View File
@@ -0,0 +1,14 @@
CC=gcc
CFLAGS=-Wall -Wextra -I../main
SRC = Unity/src/unity.c test_parser.c \
../main/message_parser.c
TARGET = test_runner
all: $(TARGET)
$(TARGET): $(SRC)
$(CC) $(CFLAGS) -o $@ $^
./$(TARGET)
clean:
rm -f $(TARGET)
+9
View File
@@ -0,0 +1,9 @@
#include "Unity/src/unity.h"
void setUp(void) {} // optional
void tearDown(void) {} // optional
int main(void) {
UNITY_BEGIN();
return UNITY_END();
}
+85
View File
@@ -0,0 +1,85 @@
#include "Unity/src/unity.h"
#include "message_parser.h"
#include <stdint.h>
void setUp(void) {} // optional
void tearDown(void) {} // optional
// Gültige Nachricht mit Payload
void test_valid_message_parses_correctly(void) {
struct MessageRecieve mr = {
.state = WaitingForStartByte,
.messageid = 0,
.index = 0,
.checksum = 0,
};
uint8_t msg[] = {0xAA, 0x01, 0x03, 0x01, 0x02, 0x03, 0x00};
msg[6] = msg[1] ^ msg[2] ^ msg[3] ^ msg[4] ^ msg[5]; // korrekte Checksumme
for (uint8_t i = 0; i < sizeof(msg); ++i)
parse_byte(&mr, msg[i]);
TEST_ASSERT_EQUAL_UINT8(1, mr.messageid);
TEST_ASSERT_EQUAL_UINT8(3, mr.length);
uint8_t expected[] = {1, 2, 3};
TEST_ASSERT_EQUAL_UINT8_ARRAY(expected, mr.message, 3);
}
// Ungültige Checksumme Zustand wird zurückgesetzt
void test_invalid_checksum_resets_state(void) {
struct MessageRecieve mr = {
.state = WaitingForStartByte,
.messageid = 0,
.index = 0,
.checksum = 0,
};
uint8_t msg[] = {
0xAA, 0x02, 0x02,
0x10, 0x20, 0x00}; // falsche Checksumme (korr. wäre 0x10 ^ 0x20 ^ 2 ^ 2)
for (uint8_t i = 0; i < sizeof(msg); ++i)
parse_byte(&mr, msg[i]);
TEST_ASSERT_EQUAL_UINT8(WaitingForStartByte, mr.state);
}
// Kein Startbyte Nachricht ignorieren
void test_no_startbyte_ignored(void) {
struct MessageRecieve mr = {
.state = WaitingForStartByte, .index = 0, .checksum = 0};
uint8_t msg[] = {2, 0x10, 0x20, 0x30}; // kein Startbyte
for (uint8_t i = 0; i < sizeof(msg); ++i)
parse_byte(&mr, msg[i]);
TEST_ASSERT_EQUAL_UINT8(WaitingForStartByte, mr.state);
TEST_ASSERT_EQUAL_UINT8(0, mr.index);
}
// Länge 0 gültige Nachricht ohne Payload
void test_zero_length_message(void) {
struct MessageRecieve mr = {
.state = WaitingForStartByte, .index = 0, .checksum = 0};
uint8_t msg[] = {0xAA, 3, 0, 0}; // Länge = 0, Checksumme = 3 ^ 0 = 3
msg[3] = msg[1] ^ msg[2];
for (uint8_t i = 0; i < sizeof(msg); ++i)
parse_byte(&mr, msg[i]);
TEST_ASSERT_EQUAL_UINT8(0, mr.index);
TEST_ASSERT_EQUAL_UINT8(3, mr.messageid);
TEST_ASSERT_EQUAL_UINT8(WaitingForStartByte, mr.state);
}
int main(void) {
UNITY_BEGIN();
RUN_TEST(test_valid_message_parses_correctly);
RUN_TEST(test_invalid_checksum_resets_state);
RUN_TEST(test_no_startbyte_ignored);
RUN_TEST(test_zero_length_message);
return UNITY_END();
}