diff options
| author | Thomas Vanbesien <tvanbesi@proton.me> | 2026-02-27 11:04:07 +0100 |
|---|---|---|
| committer | Thomas Vanbesien <tvanbesi@proton.me> | 2026-02-27 11:04:07 +0100 |
| commit | 8849d801b9d3767390e3e1ed6b562db738ac1bcb (patch) | |
| tree | 9d612726bd6b2ab5bebc536e54d9e5216443cffd /tests/src/test_preload.c | |
| parent | 7de95ddd662b52c803d307b6028fd90a1aa71892 (diff) | |
| download | malloc-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.c | 46 |
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); +} |
