diff options
Diffstat (limited to 'lib/mlibc/tests/bsd')
-rw-r--r-- | lib/mlibc/tests/bsd/ns_get_put.c | 21 | ||||
-rw-r--r-- | lib/mlibc/tests/bsd/reallocarray.c | 7 | ||||
-rw-r--r-- | lib/mlibc/tests/bsd/sbrk.c | 9 | ||||
-rw-r--r-- | lib/mlibc/tests/bsd/strl.c | 56 |
4 files changed, 93 insertions, 0 deletions
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 <assert.h> +#include <arpa/nameser.h> +#include <string.h> +#include <stdlib.h> +#include <stdint.h> + +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 <stdlib.h> + +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 <assert.h> +#include <stdio.h> +#include <unistd.h> + +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 <assert.h> +#include <string.h> + +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; +} |