From d5ecd8fe69115c8587e16a2110bbb92790050b52 Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Tue, 30 Jun 2020 11:11:54 -0400 Subject: add some simple tests --- Makefile | 15 ++++++++++++++- test/overflow.c | 13 +++++++++++++ test/underflow.c | 13 +++++++++++++ test/zero.c | 13 +++++++++++++ 4 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 test/overflow.c create mode 100644 test/underflow.c create mode 100644 test/zero.c diff --git a/Makefile b/Makefile index 0dd5261..e8a413f 100644 --- a/Makefile +++ b/Makefile @@ -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 +#include +#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 +#include +#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 +#include +#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"); +} -- cgit v1.2.1