diff options
-rw-r--r-- | Makefile | 15 | ||||
-rw-r--r-- | test/overflow.c | 13 | ||||
-rw-r--r-- | test/underflow.c | 13 | ||||
-rw-r--r-- | test/zero.c | 13 |
4 files changed, 53 insertions, 1 deletions
@@ -1,15 +1,20 @@ .POSIX: +BINDIR=bin LIBDIR=lib OBJDIR=obj SRCDIR=src INCDIR=include +TESTDIR=test CFLAGS=-I$(INCDIR) -Wall -Wextra -Wpedantic -g OBJECTS=$(OBJDIR)/mapalloc.o +TESTS=$(BINDIR)/overflow $(BINDIR)/underflow $(BINDIR)/zero all: $(LIBDIR)/libmapalloc.a $(LIBDIR)/libmapalloc.so +tests: $(TESTS) + $(OBJDIR)/mapalloc.o: $(SRCDIR)/mapalloc.c $(INCDIR)/mapalloc.h @mkdir -p $(@D) $(CC) -c -o $@ $(CFLAGS) $(SRCDIR)/$(*F).c @@ -22,5 +27,13 @@ $(LIBDIR)/libmapalloc.so: $(OBJECTS) @mkdir -p $(@D) $(CC) -o $@ -shared $(OBJECTS) +$(BINDIR)/overflow: $(TESTDIR)/overflow.c $(LIBDIR)/libmapalloc.a +$(BINDIR)/underflow: $(TESTDIR)/underflow.c $(LIBDIR)/libmapalloc.a +$(BINDIR)/zero: $(TESTDIR)/zero.c $(LIBDIR)/libmapalloc.a + +$(TESTS): + @mkdir -p $(@D) + $(CC) -o $@ $(CFLAGS) $(TESTDIR)/$(@F).c -L$(LIBDIR) -lmapalloc + clean: - $(RM) -rf $(LIBDIR) $(OBJDIR) + $(RM) -rf $(LIBDIR) $(OBJDIR) $(BINDIR) diff --git a/test/overflow.c b/test/overflow.c new file mode 100644 index 0000000..8bb1681 --- /dev/null +++ b/test/overflow.c @@ -0,0 +1,13 @@ +#define _POSIX_C_SOURCE 200809L +#include <stdio.h> +#include <unistd.h> +#include "mapalloc.h" + +int main(void) +{ + char *ptr = map_malloc(1); + long pagesize = sysconf(_SC_PAGESIZE); + printf("ptr: %p, pagesize %ld\n", ptr, pagesize); + ptr[pagesize] = '\0'; + printf("shouldn't get here\n"); +} diff --git a/test/underflow.c b/test/underflow.c new file mode 100644 index 0000000..f23aa6d --- /dev/null +++ b/test/underflow.c @@ -0,0 +1,13 @@ +#define _POSIX_C_SOURCE 200809L +#include <stdio.h> +#include <unistd.h> +#include "mapalloc.h" + +int main(void) +{ + char *ptr = map_malloc(1); + long pagesize = sysconf(_SC_PAGESIZE); + printf("ptr: %p, pagesize %ld\n", ptr, pagesize); + ptr[-1] = '\0'; + printf("shouldn't get here\n"); +} diff --git a/test/zero.c b/test/zero.c new file mode 100644 index 0000000..7be3ad2 --- /dev/null +++ b/test/zero.c @@ -0,0 +1,13 @@ +#define _POSIX_C_SOURCE 200809L +#include <stdio.h> +#include <unistd.h> +#include "mapalloc.h" + +int main(void) +{ + char *ptr = map_malloc(0); + long pagesize = sysconf(_SC_PAGESIZE); + printf("ptr: %p, pagesize %ld\n", ptr, pagesize); + ptr[0] = '\0'; + printf("shouldn't get here\n"); +} |