diff options
| author | Thomas Vanbesien <tvanbesi@proton.me> | 2026-02-21 15:49:06 +0100 |
|---|---|---|
| committer | Thomas Vanbesien <tvanbesi@proton.me> | 2026-02-21 15:51:44 +0100 |
| commit | 671a58519ef6207b54947ff70eea497ff7eb58ae (patch) | |
| tree | 783a971119bfed965113b84bc306ba941e884663 /tests/test_alloc.c | |
| parent | d699849b2360f90c61f645c5d4d4232cd3e1c962 (diff) | |
| download | Libft-671a58519ef6207b54947ff70eea497ff7eb58ae.tar.gz Libft-671a58519ef6207b54947ff70eea497ff7eb58ae.zip | |
Restructure project layout and clean up test suite
Move sources to src/, header to inc/, and tests to tests/src/.
Update Makefiles and .gitignore for the new layout.
Refactor test harness: add crash-wrapper macros (_S_CRASH,
_S_CRASH_I, _S_CRASH_V, _S_CRASH_BUF) replacing 58 hand-written
wrappers, add shared _s_test_int_range helper eliminating duplicate
_s_test_func, add _S_RAND_ITERS constant, move srand() to main()
in all test binaries, and add Doxygen comments to test_utils.h.
Diffstat (limited to 'tests/test_alloc.c')
| -rw-r--r-- | tests/test_alloc.c | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/tests/test_alloc.c b/tests/test_alloc.c deleted file mode 100644 index 191fbbb..0000000 --- a/tests/test_alloc.c +++ /dev/null @@ -1,159 +0,0 @@ -#include "../libft.h" -#include "test_utils.h" - -static void -_s_ft_strdup_null (void) -{ - _s_sink = (size_t)ft_strdup (NULL); -} -static void -_s_libc_strdup_null (void) -{ - _s_sink = (size_t)strdup (NULL); -} - -/* ====================================== - * calloc - * ====================================== */ - -static void -_s_test_calloc (void) -{ - int i; - char label[64]; - - printf ("-- calloc --\n"); - - /* zeroed memory */ - { - char *ft_p = ft_calloc (100, 1); - char *libc_p = calloc (100, 1); - _s_check ("zeroed", ft_p && libc_p && memcmp (ft_p, libc_p, 100) == 0); - free (ft_p); - free (libc_p); - } - - /* nmemb=0 */ - { - void *p = ft_calloc (0, 10); - _s_check ("nmemb=0 not NULL", p != NULL); - free (p); - } - - /* size=0 */ - { - void *p = ft_calloc (10, 0); - _s_check ("size=0 not NULL", p != NULL); - free (p); - } - - /* overflow protection */ - { - void *p = ft_calloc ((size_t)-1, 2); - _s_check ("overflow returns NULL", p == NULL); - } - - /* single byte */ - { - unsigned char *p = ft_calloc (1, 1); - _s_check ("single byte zeroed", p && *p == 0); - free (p); - } - - /* randomized: check all bytes are zero */ - srand (time (NULL)); - for (i = 0; i < 50; i++) - { - size_t nmemb = rand () % 500 + 1; - size_t size = rand () % 50 + 1; - unsigned char *ft_p = ft_calloc (nmemb, size); - unsigned char *libc_p = calloc (nmemb, size); - int ok = 1; - size_t j; - if (!ft_p || !libc_p) - { - ok = 0; - } - else - { - for (j = 0; j < nmemb * size; j++) - { - if (ft_p[j] != 0) - { - ok = 0; - break; - } - } - } - snprintf (label, sizeof (label), "random nmemb=%zu size=%zu", nmemb, - size); - _s_check (label, ok); - free (ft_p); - free (libc_p); - } -} - -/* ====================================== - * strdup - * ====================================== */ - -static void -_s_test_strdup (void) -{ - int i; - char label[64]; - - printf ("-- strdup --\n"); - - /* NULL */ - _s_check_both_crash ("strdup NULL", _s_ft_strdup_null, _s_libc_strdup_null); - - /* empty string */ - { - char *p = ft_strdup (""); - _s_check ("empty", p && strcmp (p, "") == 0); - free (p); - } - - /* returns independent copy */ - { - char src[] = "hello"; - char *p = ft_strdup (src); - _s_check ("independent copy", p && p != src && strcmp (p, src) == 0); - src[0] = 'X'; - _s_check ("mutation safe", p[0] == 'h'); - free (p); - } - - /* randomized */ - for (i = 0; i < 50; i++) - { - int len = rand () % 500 + 1; - char *src = malloc (len + 1); - int j; - char *ft_p; - char *libc_p; - if (!src) - continue; - for (j = 0; j < len; j++) - src[j] = 'A' + rand () % 26; - src[len] = '\0'; - ft_p = ft_strdup (src); - libc_p = strdup (src); - snprintf (label, sizeof (label), "random len=%d", len); - _s_check (label, ft_p && libc_p && strcmp (ft_p, libc_p) == 0); - free (src); - free (ft_p); - free (libc_p); - } -} - -int -main (void) -{ - printf ("=== alloc functions ===\n"); - _s_test_calloc (); - _s_test_strdup (); - _s_print_results (); - return (_s_fail != 0); -} |
