From c362ff8e900d5ef97eb417d951a0dd71941386d2 Mon Sep 17 00:00:00 2001 From: aqua Date: Thu, 28 Jul 2022 11:13:12 +0300 Subject: Add libk tests --- lib/meson.build | 4 +++- lib/test/mem.c | 17 +++++++++++++++++ lib/test/string.c | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 lib/test/mem.c create mode 100644 lib/test/string.c (limited to 'lib') diff --git a/lib/meson.build b/lib/meson.build index 841c050..b83c680 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -5,7 +5,9 @@ libk = static_library('k', [libk_srcs, 'stdio/printf.c'], override_options: 'b_coverage=false' ) -library('tk', libk_srcs, +tk = library('tk', libk_srcs, include_directories: ['.', '..'], native: true ) +test('mem', executable('mem', 'test/mem.c', c_args: '-fno-builtin', link_with: tk, native: true), suite: 'libk') +test('string', executable('string', 'test/string.c', c_args: '-fno-builtin', link_with: tk, native: true), suite: 'libk') diff --git a/lib/test/mem.c b/lib/test/mem.c new file mode 100644 index 0000000..bccb3a3 --- /dev/null +++ b/lib/test/mem.c @@ -0,0 +1,17 @@ +#include + +static const unsigned char data[] = {0xde, 0xca, 0xfa, 0xde}; +static unsigned char buffer[4]; + +void *memset(void *s, int c, long unsigned n); +void *memcpy(void *restrict dest, const void *restrict src, long unsigned n); + +int +main(void) +{ + memset(buffer, 0xae, sizeof(data)); + for (unsigned i = 0; i < sizeof(data); ++i) assert(buffer[i] == 0xae); + + memcpy(buffer, data, sizeof(data)); + for (unsigned i = 0; i < sizeof(data); ++i) assert(buffer[i] == data[i]); +} diff --git a/lib/test/string.c b/lib/test/string.c new file mode 100644 index 0000000..725d547 --- /dev/null +++ b/lib/test/string.c @@ -0,0 +1,34 @@ +#include "../string.h" +#include + +static const char *dec = "12341234"; +static const char *neg_dec = "-12341234"; +static const char *u32_hex = "decafade"; +static const char *i32_hex = "7fffffff"; +static char buffer[64]; + +int +main() +{ + { // utoa + char *r; + + r = utoa(buffer, 12341234u, 10); + for (unsigned i = 0; dec[i] != '\0'; ++i) assert(r[i] == dec[i]); + + r = utoa(buffer, 0xdecafade, 16); + for (unsigned i = 0; u32_hex[i] != '\0'; ++i) assert(r[i] == u32_hex[i]); + } + { // itoa + char *r; + + r = itoa(buffer, 12341234, 10); + for (unsigned i = 0; dec[i] != '\0'; ++i) assert(r[i] == dec[i]); + + r = itoa(buffer, -12341234, 10); + for (unsigned i = 0; neg_dec[i] != '\0'; ++i) assert(r[i] == neg_dec[i]); + + r = itoa(buffer, 0x7fffffff, 16); + for (unsigned i = 0; i32_hex[i] != '\0'; ++i) assert(r[i] == i32_hex[i]); + } +} -- cgit v1.2.1