Loading...
tests/bounds_test.c /dev/null libmalloc-657.80.3
--- /dev/null
+++ libmalloc/libmalloc-657.80.3/tests/bounds_test.c
@@ -0,0 +1,30 @@
+#include <darwintest.h>
+#include <malloc/malloc.h>
+#include <malloc_private.h>
+#include <stdlib.h>
+#include <../src/internal.h>
+
+T_DECL(bounds_sanity, "Pointer Bounds Sanity Check",
+		T_META_TAG_VM_NOT_PREFERRED)
+{
+	size_t size = rand() % 1024;
+	printf("Allocating %zu bytes...", size);
+	void *ptr = malloc(size);
+	T_EXPECT_NOTNULL(ptr, "allocation succeeded");
+	T_EXPECT_LE(size, malloc_size(ptr), "requested size smaller or equal to \
+		actual size");
+	size = rand() % 1024;
+	printf("Reallocating %zu bytes...", size);
+	ptr = realloc(ptr, size);
+	T_EXPECT_NOTNULL(ptr, "reallocation succeeded");
+	T_EXPECT_LE(size, malloc_size(ptr), "requested size smaller or equal to \
+		actual size");
+	free(ptr);
+	size = rand() % 1024;
+	printf("Zero allocating %zu bytes...", size);
+	ptr = calloc(1, size);
+	T_EXPECT_NOTNULL(ptr, "zero allocation succeeded");
+	T_EXPECT_LE(size, malloc_size(ptr), "requested size smaller or equal to \
+		actual size");
+	free(ptr);
+}