From b6b7a01987dca604a161c8c73a240ec4430baed0 Mon Sep 17 00:00:00 2001 From: Mosder Date: Fri, 21 Aug 2026 11:50:51 +0200 Subject: refactor: renamed mem/alloc.h to safe.h and made it be a collection of "safe" wrappers for "unsafe" functions --- tests/mem/alloc_tests.c | 43 ------------------------------------- tests/mem/alloc_tests.h | 3 --- tests/safe_tests.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++ tests/safe_tests.h | 3 +++ tests/tests.c | 4 ++-- 5 files changed, 61 insertions(+), 48 deletions(-) delete mode 100644 tests/mem/alloc_tests.c delete mode 100644 tests/mem/alloc_tests.h create mode 100644 tests/safe_tests.c create mode 100644 tests/safe_tests.h (limited to 'tests') diff --git a/tests/mem/alloc_tests.c b/tests/mem/alloc_tests.c deleted file mode 100644 index 5b71887..0000000 --- a/tests/mem/alloc_tests.c +++ /dev/null @@ -1,43 +0,0 @@ -#include "alloc_tests.h" -#define MOS_MAX_ALLOC_ATTEMPTS 1 -#include "moslib/mem/alloc.h" - -#include -#include - -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 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 mem_alloc_tests(Tester *tester) { - TestGroup *group = add_test_group(tester, "moslib/mem/alloc.h"); - add_test(group, test_safe_malloc); - add_test(group, test_safe_realloc); -} diff --git a/tests/mem/alloc_tests.h b/tests/mem/alloc_tests.h deleted file mode 100644 index aaf70a4..0000000 --- a/tests/mem/alloc_tests.h +++ /dev/null @@ -1,3 +0,0 @@ -#include - -extern void mem_alloc_tests(Tester *tester); 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 +#include + +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); +} diff --git a/tests/safe_tests.h b/tests/safe_tests.h new file mode 100644 index 0000000..8127b4c --- /dev/null +++ b/tests/safe_tests.h @@ -0,0 +1,3 @@ +#include + +extern void safe_tests(Tester *tester); diff --git a/tests/tests.c b/tests/tests.c index d7ce15b..648ab4c 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -2,13 +2,13 @@ #include "ds/array_tests.h" #include "ds/hashmap_tests.h" -#include "mem/alloc_tests.h" +#include "safe_tests.h" #include "string_tests.h" int main(void) { Tester *tester = new_tester(); - mem_alloc_tests(tester); + safe_tests(tester); ds_array_tests(tester); string_tests(tester); ds_hashmap_tests(tester); -- cgit v1.2.3