From bd5969fc876a10b18613302db7087ef3c40f18e1 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Thu, 7 Mar 2024 17:28:00 -0500 Subject: lib: Add mlibc Signed-off-by: Ian Moffett --- lib/mlibc/tests/bsd/ns_get_put.c | 21 ++++++++++++++ lib/mlibc/tests/bsd/reallocarray.c | 7 +++++ lib/mlibc/tests/bsd/sbrk.c | 9 ++++++ lib/mlibc/tests/bsd/strl.c | 56 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 93 insertions(+) create mode 100644 lib/mlibc/tests/bsd/ns_get_put.c create mode 100644 lib/mlibc/tests/bsd/reallocarray.c create mode 100644 lib/mlibc/tests/bsd/sbrk.c create mode 100644 lib/mlibc/tests/bsd/strl.c (limited to 'lib/mlibc/tests/bsd') diff --git a/lib/mlibc/tests/bsd/ns_get_put.c b/lib/mlibc/tests/bsd/ns_get_put.c new file mode 100644 index 0000000..d64bb2a --- /dev/null +++ b/lib/mlibc/tests/bsd/ns_get_put.c @@ -0,0 +1,21 @@ +#include +#include +#include +#include +#include + +int main() { + uint8_t *buf = malloc(256); + uint16_t original16 = 4891; + uint32_t original32 = 4861984; + memset(buf, 0x0, sizeof(*buf)); + ns_put16(original16, buf); + uint16_t result16 = ns_get16(buf); + assert(result16 == original16); + memset(buf, 0x0, sizeof(*buf)); + ns_put32(original32, buf); + uint32_t result32 = ns_get32(buf); + assert(result32 == original32); + free(buf); + return 0; +} diff --git a/lib/mlibc/tests/bsd/reallocarray.c b/lib/mlibc/tests/bsd/reallocarray.c new file mode 100644 index 0000000..905d68d --- /dev/null +++ b/lib/mlibc/tests/bsd/reallocarray.c @@ -0,0 +1,7 @@ +#include + +int main() { + void *ret = reallocarray(NULL, 69, 0xCB7); + free(ret); + return !ret; +} diff --git a/lib/mlibc/tests/bsd/sbrk.c b/lib/mlibc/tests/bsd/sbrk.c new file mode 100644 index 0000000..88b0407 --- /dev/null +++ b/lib/mlibc/tests/bsd/sbrk.c @@ -0,0 +1,9 @@ +#include +#include +#include + +int main() { + void *ret = sbrk(0); + assert(ret != (void *) -1); + assert(ret); +} diff --git a/lib/mlibc/tests/bsd/strl.c b/lib/mlibc/tests/bsd/strl.c new file mode 100644 index 0000000..a502850 --- /dev/null +++ b/lib/mlibc/tests/bsd/strl.c @@ -0,0 +1,56 @@ +#include +#include + +int main() { + char buf[256]; + + /* Test copy to 0-sized buffer . */ + memset(buf, 0, sizeof(buf)); + assert(strlcpy(buf, "xyz", 0) == 3); + assert(strcmp(buf, "") == 0); + + /* Test normal copy. */ + memset(buf, 0, sizeof(buf)); + assert(strlcpy(buf, "xyz", sizeof(buf)) == 3); + assert(strcmp(buf, "xyz") == 0); + + /* Test truncated copy. */ + memset(buf, 0, sizeof(buf)); + assert(strlcpy(buf, "abcdefabcdef", 10) == 12); + assert(strcmp(buf, "abcdefabc") == 0); + + /* Test concat to 0-sized buffer. */ + memset(buf, 0, sizeof(buf)); + assert(strlcat(buf, "abc", 0) == 3); + assert(strcmp(buf, "") == 0); + + /* Test concat to full buffer. */ + memset(buf, 0, sizeof(buf)); + assert(strlcat(buf, "abcde", 6) == 5); + assert(strcmp(buf, "abcde") == 0); + assert(strlcat(buf, "xyz", 5) == 8); + assert(strcmp(buf, "abcde") == 0); + + /* Test normal concat. */ + memset(buf, 0, sizeof(buf)); + assert(strlcat(buf, "abc", sizeof(buf)) == 3); + assert(strcmp(buf, "abc") == 0); + assert(strlcat(buf, "xyz", sizeof(buf)) == 6); + assert(strcmp(buf, "abcxyz") == 0); + + /* Test truncated concat. */ + memset(buf, 0, sizeof(buf)); + assert(strlcat(buf, "abcabc", 10) == 6); + assert(strcmp(buf, "abcabc") == 0); + assert(strlcat(buf, "xyzxyz", 10) == 12); + assert(strcmp(buf, "abcabcxyz") == 0); + + /* Test truncated concat w/ truncated dst. */ + memset(buf, 0, sizeof(buf)); + assert(strlcat(buf, "abcabc", 10) == 6); + assert(strcmp(buf, "abcabc") == 0); + assert(strlcat(buf, "xyz", 4) == 7); + assert(strcmp(buf, "abcabc") == 0); + + return 0; +} -- cgit v1.2.3