diff options
| author | Mosder <xmosder12@gmail.com> | 2026-08-21 11:50:51 +0200 |
|---|---|---|
| committer | Mosder <xmosder12@gmail.com> | 2026-08-21 11:50:51 +0200 |
| commit | b6b7a01987dca604a161c8c73a240ec4430baed0 (patch) | |
| tree | b9fdeb674ad767ccb16d1a3cdc2c6c975ea11737 /tests/safe_tests.c | |
| parent | 890a52b9af6e24015048eb2754552b9613484b3f (diff) | |
refactor: renamed mem/alloc.h to safe.h and made it be a collection of "safe" wrappers for "unsafe" functions
Diffstat (limited to 'tests/safe_tests.c')
| -rw-r--r-- | tests/safe_tests.c | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/safe_tests.c b/tests/safe_tests.c new file mode 100644 index 0000000..1d48a48 --- /dev/null +++ b/tests/safe_tests.c @@ -0,0 +1,56 @@ +#include "safe_tests.h" +#include "moslib/safe.h" + +#include <limits.h> +#include <stdlib.h> + +Test malloc_exit() { + safe_malloc(ULLONG_MAX); +} + +Test test_safe_malloc() { + void *p = safe_malloc(1024); + test_assert(p != NULL, "Failed to malloc 1KiB"); + + suppress_output(stderr); + test_assert_exit(malloc_exit, EXIT_FAILURE); + unsuppress_outputs(); +} + +Test realloc_exit() { + void *p = NULL; + safe_realloc(p, ULLONG_MAX); +} + +Test calloc_exit() { + safe_calloc(ULLONG_MAX, ULLONG_MAX); +} + +Test test_safe_calloc() { + void *p = safe_calloc(16, 16); + test_assert(p != NULL, "Failed to calloc 16 items of 16 bytes"); + + suppress_output(stderr); + test_assert_exit(calloc_exit, EXIT_FAILURE); + unsuppress_outputs(); +} + +Test test_safe_realloc() { + void *p = NULL; + p = safe_realloc(p, 1024); + test_assert(p != NULL, "Failed to realloc NULL to 1KiB"); + + p = safe_realloc(p, 4096); + test_assert(p != NULL, "Failed to realloc 1KiB to 4KiB"); + + suppress_output(stderr); + test_assert_exit(realloc_exit, EXIT_FAILURE); + unsuppress_outputs(); +} + +void safe_tests(Tester *tester) { + TestGroup *group = add_test_group(tester, "moslib/safe.h"); + add_test(group, test_safe_malloc); + add_test(group, test_safe_calloc); + add_test(group, test_safe_realloc); +} |
