From 08a1c588c36a31d5c793b1fa3ed42d02c6e6d2f7 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Mon, 15 Sep 2025 18:58:31 +0200 Subject: [PATCH 1/3] Some tests --- test.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 test.c diff --git a/test.c b/test.c new file mode 100644 index 0000000..bf69dbc --- /dev/null +++ b/test.c @@ -0,0 +1,31 @@ +#include "hash/crc32.h" +#include "hash/djb2.h" +#include +#include +#include + +int main(void) { + assert(crc32("123456789", 9) == 0xCBF43926); + assert(crc32("", 0) == 0x00000000); + assert(crc32("a", 1) == 0xE8B7BE43); + assert(crc32("A", 1) == 0xD3D99E8B); + assert(crc32("hello", 5) == 0x3610A686); + assert(crc32("The quick brown fox jumps over the lazy dog", 43) == 0x414FA339); + assert(crc32("The quick brown fox jumps over the lazy dog.", 44) == 0x519025E9); + + /* Keep in mind the update api requires initialization and finalization */ + uint32_t crc = crc32_init(); + crc = crc32_update_raw(crc, "a", 1); + crc = crc32_finalize(crc); + + assert(crc == crc32("a", 1)); + assert(crc == 0xE8B7BE43); + + assert(djb2("Hello") == 0x000000310D4F2079); + assert(djb2("a") == 0x000000000002B606); + assert(djb2("A") == 0x000000000002B5E6); + assert(djb2("123456789") == 0x0377821035CDBB82); + + printf("All good!\n"); + exit(EXIT_SUCCESS); +} From 41cb395b0db40f00c4ead2d597824c4ddf2ca0d5 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Mon, 15 Sep 2025 18:58:50 +0200 Subject: [PATCH 2/3] Test target --- Makefile | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 1fd1cd6..2430818 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,12 @@ PREFIX ?= /usr/local INCLUDEDIR = $(PREFIX)/include LIBDIR = $(PREFIX)/lib -all: $(STATIC_LIB) $(SHARED_LIB) +TEST_SRC = test.c +TEST_BIN = test.elf + +all: $(STATIC_LIB) $(SHARED_LIB) $(TEST_BIN) +test: $(TEST_BIN) + ./$< %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ @@ -24,6 +29,9 @@ $(STATIC_LIB): $(OBJS) $(SHARED_LIB): $(OBJS) $(CC) -shared -o $@ $^ +$(TEST_BIN): $(TEST_SRC) $(STATIC_LIB) + $(CC) -Wall -Ihash -o $@ $(TEST_SRC) $(STATIC_LIB) + install: $(STATIC_LIB) $(SHARED_LIB) mkdir -p $(DESTDIR)$(INCLUDEDIR)/hash cp -r hash/*.h $(DESTDIR)$(INCLUDEDIR)/hash/ @@ -37,6 +45,6 @@ uninstall: @echo "Uninstalled libraries from $(DESTDIR)$(LIBDIR) and headers from $(DESTDIR)$(INCLUDEDIR)/hash" clean: - rm -f $(OBJS) $(STATIC_LIB) $(SHARED_LIB) + rm -f $(OBJS) $(STATIC_LIB) $(SHARED_LIB) $(TEST_BIN) -.PHONY: all clean install uninstall +.PHONY: all clean install uninstall test From aca110741895e6fe3522e6e57038f103946ceada Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Mon, 15 Sep 2025 18:59:15 +0200 Subject: [PATCH 3/3] Use install instead of cp, support for DESTDIR env variable --- Makefile | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 2430818..ea50f64 100644 --- a/Makefile +++ b/Makefile @@ -33,10 +33,11 @@ $(TEST_BIN): $(TEST_SRC) $(STATIC_LIB) $(CC) -Wall -Ihash -o $@ $(TEST_SRC) $(STATIC_LIB) install: $(STATIC_LIB) $(SHARED_LIB) - mkdir -p $(DESTDIR)$(INCLUDEDIR)/hash - cp -r hash/*.h $(DESTDIR)$(INCLUDEDIR)/hash/ - mkdir -p $(DESTDIR)$(LIBDIR) - cp $(STATIC_LIB) $(SHARED_LIB) $(DESTDIR)$(LIBDIR)/ + install -d $(DESTDIR)$(INCLUDEDIR)/hash + install -m 644 hash/*.h $(DESTDIR)$(INCLUDEDIR)/hash/ + install -d $(DESTDIR)$(LIBDIR) + install -m 644 $(STATIC_LIB) $(DESTDIR)$(LIBDIR)/ + install -m 755 $(SHARED_LIB) $(DESTDIR)$(LIBDIR)/ @echo "Installed libraries to $(DESTDIR)$(LIBDIR) and headers to $(DESTDIR)$(INCLUDEDIR)/hash" uninstall: