aboutsummaryrefslogtreecommitdiffstats
path: root/tests/src/test_preload.c
diff options
context:
space:
mode:
authorThomas Vanbesien <tvanbesi@proton.me>2026-02-27 11:04:07 +0100
committerThomas Vanbesien <tvanbesi@proton.me>2026-02-27 11:04:07 +0100
commit8849d801b9d3767390e3e1ed6b562db738ac1bcb (patch)
tree9d612726bd6b2ab5bebc536e54d9e5216443cffd /tests/src/test_preload.c
parent7de95ddd662b52c803d307b6028fd90a1aa71892 (diff)
downloadmalloc-8849d801b9d3767390e3e1ed6b562db738ac1bcb.tar.gz
malloc-8849d801b9d3767390e3e1ed6b562db738ac1bcb.zip
Add show_alloc_mem and test_show, rename test to test_preload
Implement show_alloc_mem() to print all zones and allocations by ascending address. Add test_show binary that links directly against libft_malloc.so to exercise it.
Diffstat (limited to 'tests/src/test_preload.c')
-rw-r--r--tests/src/test_preload.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/src/test_preload.c b/tests/src/test_preload.c
new file mode 100644
index 0000000..0ded605
--- /dev/null
+++ b/tests/src/test_preload.c
@@ -0,0 +1,46 @@
+/**
+ * @file main.c
+ * @brief Smoke test — call malloc once and print the returned pointer.
+ *
+ * Uses write(2) instead of printf to avoid stdio calling malloc
+ * internally, which would pollute output under LD_PRELOAD.
+ */
+
+#include <stdlib.h>
+#include <unistd.h>
+
+/** @brief Write the hex representation of @p ptr to stdout. */
+static void
+_s_put_ptr (void *ptr)
+{
+ const char hex[] = "0123456789abcdef";
+ char buf[20];
+ unsigned long v = (unsigned long)ptr;
+ int i;
+
+ if (!ptr)
+ {
+ write (1, "(nil)", 5);
+ return;
+ }
+ i = (int)sizeof (buf);
+ while (v)
+ {
+ buf[--i] = hex[v % 16];
+ v /= 16;
+ }
+ buf[--i] = 'x';
+ buf[--i] = '0';
+ write (1, buf + i, (size_t)(sizeof (buf) - i));
+}
+
+int
+main (void)
+{
+ void *p = malloc (42);
+ write (1, "malloc(42) = ", 13);
+ _s_put_ptr (p);
+ write (1, "\n", 1);
+ free (p);
+ return (0);
+}