From 63c0b3adf35ffedae0f1c40d8b437b54c70765ec Mon Sep 17 00:00:00 2001 From: Braiden Vasco Date: Sat, 4 Nov 2017 08:04:22 +0000 Subject: [PATCH] Add test for "kmemset" --- Makefile | 11 +++++++++-- libk/memset.c | 6 +++--- test/libk/Makefile | 2 +- test/libk/memset.c | 23 +++++++++++++++++++++++ 4 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 test/libk/memset.c diff --git a/Makefile b/Makefile index 929fd6e..8e2d591 100644 --- a/Makefile +++ b/Makefile @@ -9,13 +9,15 @@ run: run-iso all: all-kernel all-iso all-libk all-test clean: clean-kernel clean-iso clean-libk clean-test +test: run-test + all-kernel: all-libk make all -C arch clean-kernel: make clean -C arch -run-iso: all-kernel +run-iso: all-iso make run -C iso all-iso: all-kernel @@ -30,8 +32,13 @@ all-libk: clean-libk: make clean -C libk -test-libk: all-libk +test-libk: all-test make run -C test/libk +run-test: test-libk + +all-test: all-libk + make all -C test/libk + clean-test: make clean -C test/libk diff --git a/libk/memset.c b/libk/memset.c index 6c7523c..2fc3da7 100644 --- a/libk/memset.c +++ b/libk/memset.c @@ -1,8 +1,8 @@ void kmemset(void *const buffer, const unsigned char value, const unsigned int size) { - const unsigned char *end = buffer + size; + unsigned char *const s = buffer; - for (unsigned char *p = buffer; p < end; ++p) { - *p = value; + for (unsigned int i = 0; i < size; ++i) { + s[i] = value; } } diff --git a/test/libk/Makefile b/test/libk/Makefile index 05d1e09..4902305 100644 --- a/test/libk/Makefile +++ b/test/libk/Makefile @@ -2,7 +2,7 @@ CC = $(CCPREFIX)gcc CFLAGS = -std=gnu99 -Wall -Wextra -BINS = strlen.bin +BINS = strlen.bin memset.bin run: all $(addprefix run-, $(BINS)) diff --git a/test/libk/memset.c b/test/libk/memset.c new file mode 100644 index 0000000..d3fb076 --- /dev/null +++ b/test/libk/memset.c @@ -0,0 +1,23 @@ +#include + +#include + +#include + +int main() +{ + char buffer[7]; + + kmemset(buffer, 0, 1); + assert(strlen(buffer) == 0); + + kmemset(buffer, 1, 3); + kmemset(&buffer[3], 0, 4); + assert(strlen(buffer) == 3); + + strcpy(buffer, "qwerty"); + kmemset(&buffer[2], 'a', 2); + assert(!strcmp(buffer, "qwaaty")); + + return 0; +}