commit 5fc3ad0b470b27e0c9110164c645df582dc8ba82 Author: hasslesstech Date: Wed Mar 18 17:16:32 2026 +0200 initial commit diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml new file mode 100644 index 0000000..7e50c7c --- /dev/null +++ b/.gitea/workflows/test.yml @@ -0,0 +1,8 @@ +on: [push] + +jobs: + test1: + runs-on: ubuntu-latest + container: + context: . + build: Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a54b105 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +FROM alpine:latest + +RUN apk add gcc +RUN mkdir /app + +COPY *.c /app/ +COPY test.sh / +RUN chmod +x "test.sh" + +WORKDIR /app + +ENTRYPOINT ["/test.sh"] diff --git a/f.c b/f.c new file mode 100644 index 0000000..ace9a1a --- /dev/null +++ b/f.c @@ -0,0 +1,49 @@ +#include +#include + +size_t malloc_counter; +size_t free_counter; + +void * TEST_MALLOC(size_t size) +{ + printf("malloc'ed %lu\n", size); + + malloc_counter += size; + return malloc(size); +} + +void TEST_FREE(void *p) +{ + size_t s = malloc_usable_size(p) - 8; + printf("freed %lu\n", s); + + free_counter += s; + + free(p); +} + +#define malloc TEST_MALLOC +#define free TEST_FREE +int f(void) +{ + free(malloc(16)); + free(malloc(32)); + free(malloc(48)); + free(malloc(64)); + free(malloc(96)); + malloc(128); + + return 1; +} +#undef malloc +#undef free + +int main(void) +{ + malloc_counter = free_counter = 0; + (void) f(); + + printf("malloc: %lu, free: %lu\n", malloc_counter, free_counter); + + return malloc_counter != free_counter; +} diff --git a/test.sh b/test.sh new file mode 100644 index 0000000..169ee8d --- /dev/null +++ b/test.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +gcc /app/f.c -o /app/f + +./f