Loading...
#include <microtest/darwintest.h> #include <stdlib.h> #include <unistd.h> /* zone functions */ T_DECL(malloc_default_zone, "returns a non-null default zone") { malloc_zone_t *dz = malloc_default_zone(); T_EXPECT_NOTNULL(dz); } T_DECL(malloc_zone_from_ptr, "returns a pointer from the default zone") { void *ptr = malloc(1); T_EXPECT_NOTNULL(ptr); T_EXPECT_EQ(malloc_zone_from_ptr(ptr), malloc_default_zone()); free(ptr); } /* allocation functions */ T_DECL(malloc_size, "returns a valid allocation size") { const size_t sz = 1; void *ptr = malloc(sz); T_EXPECT_NOTNULL(ptr); T_EXPECT_GE(malloc_size(ptr), sz); free(ptr); } T_DECL(malloc, "returns a valid allocation") { void *ptr = malloc(1); T_EXPECT_NOTNULL(ptr); free(ptr); } T_DECL(calloc, "returns a valid allocation") { void *ptr = calloc(1, 1); T_EXPECT_NOTNULL(ptr); free(ptr); } T_DECL(valloc, "returns a page-aligned allocation") { void *ptr = valloc(1); T_EXPECT_NOTNULL(ptr); T_EXPECT_EQ(((uintptr_t)ptr) % getpagesize(), 0ul); free(ptr); } T_DECL(realloc, "returns a reallocated allocation") { void *ptr = malloc(1); T_EXPECT_NOTNULL(ptr); void *new_ptr = realloc(ptr, 2); T_EXPECT_NOTNULL(new_ptr); free(new_ptr); } T_DECL(posix_memalign, "returns an aligned allocation") { void *ptr = NULL; T_EXPECT_EQ(posix_memalign(&ptr, 1, 16), 0); T_EXPECT_NOTNULL(ptr); T_EXPECT_EQ(((uintptr_t)ptr) % 16, 0ul); free(ptr); } |