diff --git a/Makefile b/Makefile index 9d16112..00ad59d 100644 --- a/Makefile +++ b/Makefile @@ -32,11 +32,13 @@ clean: $(RM) $(OBJ) $(SRC:.c=.d) @$(MAKE) -C $(TESTD) clean @$(MAKE) -C $(RTESTD) clean + @$(MAKE) -C $(LIBFT_DIR) clean fclean: clean $(RM) $(NAME) @$(MAKE) -C $(TESTD) fclean @$(MAKE) -C $(RTESTD) fclean + @$(MAKE) -C $(LIBFT_DIR) fclean re: fclean all @$(MAKE) diff --git a/framework/libunit.c b/framework/libunit.c index 3e97fc0..acb2009 100644 --- a/framework/libunit.c +++ b/framework/libunit.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2026/01/24 12:43:35 by dgaillet #+# #+# */ -/* Updated: 2026/01/25 15:15:05 by elagouch ### ########.fr */ +/* Updated: 2026/01/25 18:15:25 by elagouch ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,39 +16,49 @@ #include #include -int parent_helper(int ffd, struct s_helper *h, const char *fn_name, +static int parent_helper(int ffd, struct s_helper *h, const char *fn_name, t_unit_test *test_list) { - int status; + int status; + int ffdst[2]; + pid_t caught_pid; - h->wpid = waitpid(h->wpid, &status, WCONTINUED); - if (h->wpid < 0) - return (-1); - h->ok_tests += interpret_status(ffd, status, fn_name, get_test_at(test_list, - h->i)->title); + caught_pid = 0; + while (caught_pid != h->wpid) + { + caught_pid = wait(&status); + if (caught_pid < 0) + return (-1); + } + ffdst[0] = ffd; + ffdst[1] = status; + h->ok_tests += interpret_status(ffdst, fn_name, get_test_at(test_list, + h->i)->title, test_list->max_len); return (0); } -int child_helper(t_unit_test *test_list, t_h h) +static int child_helper(t_unit_test *test_list, t_h h, int ffd) { - int fd; - int res; - t_unit_test *test; + int fd; + int res; + t_unit_test *test; - fd = open("/dev/null", O_WRONLY); - if (!fd) - return (-1); + fd = open("/dev/null", O_WRONLY); + if (!fd) + return (-1); if (dup2(fd, STDOUT_FILENO) < 0) - return (-1); - test = get_test_at(test_list, h.i); - if (test->timeout) - alarm(test->timeout); + return (-1); + test = get_test_at(test_list, h.i); + if (test->timeout) + alarm(test->timeout); res = test->func(); - close(fd); - exit(res); + close(fd); + close(ffd); + clear_tests(&test_list); + exit(res); } -int handle_out(const char *fn_name) +static int handle_out(const char *fn_name) { char *tmp; int fd; @@ -70,18 +80,20 @@ int launch_tests(t_unit_test *test_list, const char *fn_name) h.i = -1; ffd = handle_out(fn_name); if (ffd < 0) - return (1); + return (-1); while (++h.i < (int)count_tests(test_list)) { h.wpid = fork(); if (h.wpid < 0) - return (1); - else if (h.wpid == 0 && child_helper(test_list, h) < 0) - return (1); + return (-1); + else if (h.wpid == 0 && child_helper(test_list, h, ffd) < 0) + return (-1); else if (parent_helper(ffd, &h, fn_name, test_list)) - return (1); + return (-1); } print_passed_test(ffd, h.ok_tests, test_list); close(ffd); + if (h.ok_tests != count_tests(test_list)) + return (-1); return (0); } diff --git a/framework/libunit.h b/framework/libunit.h index dd20b2f..32c4996 100644 --- a/framework/libunit.h +++ b/framework/libunit.h @@ -6,7 +6,7 @@ /* By: elagouch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2026/01/24 14:38:40 by elagouch #+# #+# */ -/* Updated: 2026/01/25 15:09:41 by elagouch ### ########.fr */ +/* Updated: 2026/01/25 17:33:21 by elagouch ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,7 +25,8 @@ typedef struct s_unit_test char *title; int (*func)(void); struct s_unit_test *next; - unsigned int timeout; + unsigned int timeout; + size_t max_len; } t_unit_test; /** @@ -74,8 +75,8 @@ typedef struct s_helper int i; } t_h; -size_t interpret_status(int ffd, int status, - const char *fn_name, char *test_name); +size_t interpret_status(int ffdst[2], const char *fn_name, + char *test_name, size_t spaces); void print_passed_test(int ffd, size_t ok_tests, t_unit_test *test_list); diff --git a/framework/libunit_logger.c b/framework/libunit_logger.c index dacfe42..5df4d4b 100644 --- a/framework/libunit_logger.c +++ b/framework/libunit_logger.c @@ -6,63 +6,88 @@ /* By: elagouch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2026/01/25 14:26:54 by elagouch #+# #+# */ -/* Updated: 2026/01/25 14:56:06 by elagouch ### ########.fr */ +/* Updated: 2026/01/25 17:35:53 by elagouch ### ########.fr */ /* */ /* ************************************************************************** */ #include "libunit.h" +#include + +static void print_tabbed(int fd1, int fd2, char *s, size_t expected_len) +{ + size_t i; + size_t l; + + l = ft_strlen(s); + ft_putstr_fd(s, fd1); + ft_putstr_fd(s, fd2); + i = 0; + while (l <= expected_len && i < (expected_len - l)) + { + ft_putchar_fd(' ', fd1); + ft_putchar_fd(' ', fd2); + i++; + } +} static void print_wtermsig(int ffd, int signal) { static char *sigs[15]; - char *msg; + char *msg; - sigs[4] = "SIGKILL"; sigs[6] = "SIGABRT"; sigs[7] = "SIGBUS"; sigs[8] = "SIGFPE"; + sigs[9] = "SIGKILL"; sigs[11] = "SIGSEGV"; sigs[13] = "SIGPIPE"; sigs[14] = "TIMEOUT"; ft_putstr_fd("[\x1B[33m", 1); ft_putstr_fd("[", ffd); - if ((signal >= 6 && signal <=8) || signal == 4 || signal == 11 || (signal >= 13 && signal <= 14)) - msg = sigs[signal]; - else - msg = "UNKNOWN"; + if ((signal >= 6 && signal <= 9) || signal == 11 || (signal >= 13 + && signal <= 14)) + msg = sigs[signal]; + else + msg = "UNKNOWN"; ft_putstr_fd(msg, 1); ft_putstr_fd(msg, ffd); ft_putstr_fd("\x1B[0m]\n", 1); ft_putstr_fd("]\n", ffd); } -size_t interpret_status(int ffd, int status, const char *fn_name, - char *test_name) +static void interpret_status_print(const char *fn_name, int ffd, + char *test_name, size_t max_len) { + ft_putstr_fd("\x1B[94m", 1); ft_putstr_fd((char *)fn_name, 1); ft_putstr_fd((char *)fn_name, ffd); - ft_putstr_fd(" : ", 1); + ft_putstr_fd("\x1B[90m : \x1B[0m", 1); ft_putstr_fd(" : ", ffd); - ft_putstr_fd(test_name, 1); - ft_putstr_fd(test_name, ffd); - ft_putstr_fd(" : ", 1); - ft_putstr_fd(" : ", ffd); - if (WIFEXITED(status)) + print_tabbed(1, ffd, test_name, max_len); + ft_putstr_fd("\x1B[90m : \x1B[0m", 1); + ft_putstr_fd(": ", ffd); +} + +size_t interpret_status(int ffdst[2], const char *fn_name, char *test_name, + size_t max_len) +{ + interpret_status_print(fn_name, ffdst[0], test_name, max_len); + if (WIFEXITED(ffdst[1])) { - if (WEXITSTATUS(status)) + if (WEXITSTATUS(ffdst[1])) { ft_putstr_fd("[\x1B[31m\x1B[1mKO\x1B[0m]\n", 1); - ft_putstr_fd("[KO]\n", ffd); + ft_putstr_fd("[KO]\n", ffdst[0]); } else { ft_putstr_fd("[\x1B[32mOK\x1B[0m]\n", 1); - ft_putstr_fd("[OK]\n", ffd); + ft_putstr_fd("[OK]\n", ffdst[0]); return (1); } } - else if (WIFSIGNALED(status)) - print_wtermsig(ffd, WTERMSIG(status)); + else if (WIFSIGNALED(ffdst[1])) + print_wtermsig(ffdst[0], WTERMSIG(ffdst[1])); return (0); } @@ -81,6 +106,6 @@ void print_passed_test(int ffd, size_t ok_tests, t_unit_test *test_list) ft_putchar_fd('/', ffd); ft_putnbr_fd((int)total, 1); ft_putnbr_fd((int)total, ffd); - ft_putstr_fd("\x1B[0m tests succeeded\n\n", 1); - ft_putstr_fd(" tests succeeded\n\n", ffd); + ft_putstr_fd("\x1B[0m tests passed\n\n", 1); + ft_putstr_fd(" tests passed\n\n", ffd); } diff --git a/framework/libunit_util.c b/framework/libunit_util.c index 7cbc2d2..35f2420 100644 --- a/framework/libunit_util.c +++ b/framework/libunit_util.c @@ -6,7 +6,7 @@ /* By: elagouch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2026/01/24 14:35:57 by elagouch #+# #+# */ -/* Updated: 2026/01/25 15:11:24 by elagouch ### ########.fr */ +/* Updated: 2026/01/25 18:03:11 by elagouch ### ########.fr */ /* */ /* ************************************************************************** */ @@ -39,7 +39,8 @@ t_unit_test *get_last(t_unit_test *head) /** * @brief util function to allocate a new test */ -static t_unit_test *alloc_test(const char *title, int (*test_func)(void), unsigned int timeout) +static t_unit_test *alloc_test(const char *title, int (*test_func)(void), + unsigned int timeout) { t_unit_test *p; @@ -47,49 +48,52 @@ static t_unit_test *alloc_test(const char *title, int (*test_func)(void), unsign p->title = ft_strdup(title); p->func = test_func; p->next = NULL; - p->timeout = timeout; + p->timeout = timeout; + p->max_len = 0; return (p); } size_t load_test(t_unit_test **head_ptr, const char *title, int (*test_func)(void), unsigned int timeout) { - t_unit_test *p; t_unit_test *last; + size_t tlen; if (!head_ptr) return (-1); + tlen = ft_strlen(title); if (!*head_ptr) { - p = alloc_test(title, test_func, timeout); - if (!p) + *head_ptr = alloc_test(title, test_func, timeout); + if (!*head_ptr) return (-1); - *head_ptr = p; + (*head_ptr)->max_len = ft_strlen(title); return (0); } last = get_last(*head_ptr); last->next = alloc_test(title, test_func, timeout); if (!last->next) return (-1); + if ((*head_ptr)->max_len < tlen) + (*head_ptr)->max_len = tlen; return (0); } void clear_tests(t_unit_test **head_ptr) { - t_unit_test *head; + t_unit_test *current; t_unit_test *next; - next = *head_ptr; - head = NULL; - while (head) + if (!head_ptr) + return ; + current = *head_ptr; + while (current) { - head = *head_ptr; - next = head->next; - head->next = NULL; - free(head->title); - head->title = NULL; - head->func = NULL; - head = next; + next = current->next; + if (current->title) + free(current->title); + free(current); + current = next; } *head_ptr = NULL; } diff --git a/libft/ft_atoi.c b/libft/ft_atoi.c index 4006e3d..f72b426 100644 --- a/libft/ft_atoi.c +++ b/libft/ft_atoi.c @@ -43,8 +43,8 @@ static long long int ft_atoll(const char *nptr) if (nptr[i] == '-' && ft_isdigit(nptr[i + 1])) { res = -1 * ft_atoll(&nptr[i] + 1); - if ((nptr[i + 1] != '1' && res == 1) - || (nptr[i + 1] == '1' && ft_isdigit(nptr[i + 2]) && res == 1)) + if ((nptr[i + 1] != '1' && res == 1) || (nptr[i + 1] == '1' + && ft_isdigit(nptr[i + 2]) && res == 1)) return (0); return (res); } @@ -57,6 +57,6 @@ int ft_atoi(const char *nptr) { int res; - res = (int) ft_atoll(nptr); + res = (int)ft_atoll(nptr); return (res); } diff --git a/libft/ft_bzero.c b/libft/ft_bzero.c index a88ff36..f449c5f 100644 --- a/libft/ft_bzero.c +++ b/libft/ft_bzero.c @@ -16,7 +16,7 @@ void ft_bzero(void *s, size_t n) { while (n > 0) { - *((unsigned char *) s) = '\0'; + *((unsigned char *)s) = '\0'; s++; n--; } diff --git a/libft/ft_lstnew_bonus.c b/libft/ft_lstnew_bonus.c index b9cb4b0..3bff290 100644 --- a/libft/ft_lstnew_bonus.c +++ b/libft/ft_lstnew_bonus.c @@ -12,7 +12,7 @@ #include "libft.h" -t_list *ft_lstnew(void *content) +t_list *ft_lstnew(void *content) { t_list *new_lst; diff --git a/libft/ft_memchr.c b/libft/ft_memchr.c index ad27469..5118004 100644 --- a/libft/ft_memchr.c +++ b/libft/ft_memchr.c @@ -16,10 +16,10 @@ void *ft_memchr(const void *s, int c, size_t n) { void *ptr; - ptr = (void *) s; + ptr = (void *)s; while (n > 0) { - if (*((unsigned char *) ptr) == (unsigned char) c) + if (*((unsigned char *)ptr) == (unsigned char)c) return (ptr); ptr++; n--; diff --git a/libft/ft_memcmp.c b/libft/ft_memcmp.c index 6212723..c0e9f18 100644 --- a/libft/ft_memcmp.c +++ b/libft/ft_memcmp.c @@ -19,9 +19,9 @@ int ft_memcmp(const void *s1, const void *s2, size_t n) i = 0; while (i < n) { - if (((unsigned char *) s1)[i] > ((unsigned char *) s2)[i]) + if (((unsigned char *)s1)[i] > ((unsigned char *)s2)[i]) return (1); - if (((unsigned char *) s1)[i] < ((unsigned char *) s2)[i]) + if (((unsigned char *)s1)[i] < ((unsigned char *)s2)[i]) return (-1); i++; } diff --git a/libft/ft_memcpy.c b/libft/ft_memcpy.c index 09ce6e0..32b4a9d 100644 --- a/libft/ft_memcpy.c +++ b/libft/ft_memcpy.c @@ -21,7 +21,7 @@ void *ft_memcpy(void *dest, const void *src, size_t n) i = 0; while (i < n) { - ((unsigned char *) dest)[i] = ((unsigned char *) src)[i]; + ((unsigned char *)dest)[i] = ((unsigned char *)src)[i]; i++; } return (dest); diff --git a/libft/ft_memmove.c b/libft/ft_memmove.c index 0603738..1eade1c 100644 --- a/libft/ft_memmove.c +++ b/libft/ft_memmove.c @@ -19,10 +19,10 @@ static void *ft_rev_memcpy(void *dest, const void *src, size_t n) n--; while (n > 0) { - ((unsigned char *) dest)[n] = ((unsigned char *) src)[n]; + ((unsigned char *)dest)[n] = ((unsigned char *)src)[n]; n--; } - ((unsigned char *) dest)[n] = ((unsigned char *) src)[n]; + ((unsigned char *)dest)[n] = ((unsigned char *)src)[n]; return (dest); } diff --git a/libft/ft_memset.c b/libft/ft_memset.c index aaf7146..df13631 100644 --- a/libft/ft_memset.c +++ b/libft/ft_memset.c @@ -19,7 +19,7 @@ void *ft_memset(void *s, int c, size_t n) i = 0; while (i < n) { - ((unsigned char *) s)[i] = c; + ((unsigned char *)s)[i] = c; i++; } return (s); diff --git a/libft/ft_split.c b/libft/ft_split.c index 8c5b7ad..e430e8b 100644 --- a/libft/ft_split.c +++ b/libft/ft_split.c @@ -14,8 +14,8 @@ static size_t strs_size(const char *s, unsigned char c) { - int i; - int j; + int i; + int j; i = 0; j = 0; @@ -28,7 +28,7 @@ static size_t strs_size(const char *s, unsigned char c) return (i); } -static int next_match(char *str, unsigned char c) +static int next_match(char *str, unsigned char c) { int i; @@ -68,7 +68,7 @@ char **ft_split(char const *s, char c) { if ((s[j] != c && j == 0) || (s[j] != c && s[j - 1] == c)) { - strs[i] = ft_substr(&s[j], 0, next_match((char *) &s[j], c)); + strs[i] = ft_substr(&s[j], 0, next_match((char *)&s[j], c)); if (!strs[i++]) { clear_strs(strs); diff --git a/libft/ft_strchr.c b/libft/ft_strchr.c index 8c86301..b0a3d44 100644 --- a/libft/ft_strchr.c +++ b/libft/ft_strchr.c @@ -19,11 +19,11 @@ char *ft_strchr(const char *s, int c) i = 0; while (s[i]) { - if ((unsigned char) s[i] == (unsigned char) c) - return ((char *) s + i); + if ((unsigned char)s[i] == (unsigned char)c) + return ((char *)s + i); i++; } - if ((unsigned char) s[i] == (unsigned char) c) - return ((char *) s + i); + if ((unsigned char)s[i] == (unsigned char)c) + return ((char *)s + i); return (NULL); } diff --git a/libft/ft_strdup.c b/libft/ft_strdup.c index 51ae3b5..84d6637 100644 --- a/libft/ft_strdup.c +++ b/libft/ft_strdup.c @@ -17,7 +17,7 @@ char *ft_strdup(const char *s) char *dest; int i; - dest = malloc(sizeof(char) *(ft_strlen(s) + 1)); + dest = malloc(sizeof(char) * (ft_strlen(s) + 1)); if (!dest) return (NULL); i = 0; diff --git a/libft/ft_striteri.c b/libft/ft_striteri.c index dbc84df..e62ec09 100644 --- a/libft/ft_striteri.c +++ b/libft/ft_striteri.c @@ -10,7 +10,7 @@ /* */ /* ************************************************************************** */ -void ft_striteri(char *s, void (*f)(unsigned int, char*)) +void ft_striteri(char *s, void (*f)(unsigned int, char *)) { unsigned int i; diff --git a/libft/ft_strncmp.c b/libft/ft_strncmp.c index 2a4fbeb..e2401da 100644 --- a/libft/ft_strncmp.c +++ b/libft/ft_strncmp.c @@ -19,9 +19,9 @@ int ft_strncmp(const char *s1, const char *s2, size_t n) i = 0; while ((s1[i] || s2[i]) && i < n) { - if ((unsigned char) s1[i] > (unsigned char) s2[i]) + if ((unsigned char)s1[i] > (unsigned char)s2[i]) return (1); - if ((unsigned char) s1[i] < (unsigned char) s2[i]) + if ((unsigned char)s1[i] < (unsigned char)s2[i]) return (-1); i++; } diff --git a/libft/ft_strnstr.c b/libft/ft_strnstr.c index 5a9b93d..ffc46fc 100644 --- a/libft/ft_strnstr.c +++ b/libft/ft_strnstr.c @@ -22,11 +22,11 @@ char *ft_strnstr(const char *big, const char *little, size_t len) little_len = ft_strlen(little); big_len = ft_strlen(big); if (!little[0]) - return ((char *) big); + return ((char *)big); while ((little_len + i) <= len && (little_len + i) <= big_len) { if (!ft_strncmp(&big[i], little, little_len)) - return ((char *) &big[i]); + return ((char *)&big[i]); i++; } return (NULL); diff --git a/libft/ft_strrchr.c b/libft/ft_strrchr.c index 1af80ef..ab14066 100644 --- a/libft/ft_strrchr.c +++ b/libft/ft_strrchr.c @@ -21,8 +21,8 @@ char *ft_strrchr(const char *s, int c) i++; while (i >= 0) { - if ((unsigned char) s[i] == (unsigned char) c) - return ((char *) &s[i]); + if ((unsigned char)s[i] == (unsigned char)c) + return ((char *)&s[i]); i--; } return (NULL); diff --git a/libft/libft.h b/libft/libft.h index 6f92080..9939190 100644 --- a/libft/libft.h +++ b/libft/libft.h @@ -13,60 +13,62 @@ #ifndef LIBFT_H # define LIBFT_H -# include -# include # include # include +# include +# include typedef struct s_list { void *content; struct s_list *next; -} t_list; +} t_list; -int ft_isalpha(int c); -int ft_isdigit(int c); -int ft_isalnum(int c); -int ft_isascii(int c); -int ft_isprint(int c); -size_t ft_strlen(const char *s); -void *ft_memset(void *s, int c, size_t n); -void ft_bzero(void *s, size_t n); -void *ft_memcpy(void *dest, const void *src, size_t n); -void *ft_memmove(void *dest, const void *src, size_t n); -size_t ft_strlcpy(char *dst, const char *src, size_t size); -size_t ft_strlcat(char *dst, const char *src, size_t size); -int ft_toupper(int c); -int ft_tolower(int c); -char *ft_strchr(const char *s, int c); -char *ft_strrchr(const char *s, int c); -int ft_strncmp(const char *s1, const char *s2, size_t n); -int ft_memcmp(const void *s1, const void *s2, size_t n); -void *ft_memchr(const void *s, int c, size_t n); -char *ft_strnstr(const char *big, const char *little, size_t len); -int ft_atoi(const char *nptr); -void *ft_calloc(size_t nmemb, size_t size); -char *ft_strdup(const char *s); -char *ft_substr(char const *s, unsigned int start, size_t len); -char *ft_strjoin(char const *s1, char const *s2); -char *ft_strtrim(char const *s1, char const *set); -char **ft_split(char const *s, char c); -char *ft_itoa(int n); -char *ft_strmapi(char const *s, char (*f)(unsigned int, char)); -void ft_striteri(char *s, void (*f)(unsigned int, char*)); -void ft_putchar_fd(char c, int fd); -void ft_putstr_fd(char *s, int fd); -void ft_putendl_fd(char *s, int fd); -void ft_putnbr_fd(int n, int fd); -t_list *ft_lstnew(void *content); -void ft_lstadd_front(t_list **lst, t_list *new_); -int ft_lstsize(t_list *lst); -t_list *ft_lstlast(t_list *lst); -void ft_lstadd_back(t_list **lst, t_list *new_); -void ft_lstdelone(t_list *lst, void (*del)(void *)); -void ft_lstclear(t_list **lst, void (*del)(void *)); -void ft_lstiter(t_list *lst, void (*f)(void *)); -t_list *ft_lstmap(t_list *lst, void *(*f)(void *), void (*del)(void *)); -char *ft_lltoa(long long n); +int ft_isalpha(int c); +int ft_isdigit(int c); +int ft_isalnum(int c); +int ft_isascii(int c); +int ft_isprint(int c); +size_t ft_strlen(const char *s); +void *ft_memset(void *s, int c, size_t n); +void ft_bzero(void *s, size_t n); +void *ft_memcpy(void *dest, const void *src, size_t n); +void *ft_memmove(void *dest, const void *src, size_t n); +size_t ft_strlcpy(char *dst, const char *src, size_t size); +size_t ft_strlcat(char *dst, const char *src, size_t size); +int ft_toupper(int c); +int ft_tolower(int c); +char *ft_strchr(const char *s, int c); +char *ft_strrchr(const char *s, int c); +int ft_strncmp(const char *s1, const char *s2, size_t n); +int ft_memcmp(const void *s1, const void *s2, size_t n); +void *ft_memchr(const void *s, int c, size_t n); +char *ft_strnstr(const char *big, const char *little, + size_t len); +int ft_atoi(const char *nptr); +void *ft_calloc(size_t nmemb, size_t size); +char *ft_strdup(const char *s); +char *ft_substr(char const *s, unsigned int start, size_t len); +char *ft_strjoin(char const *s1, char const *s2); +char *ft_strtrim(char const *s1, char const *set); +char **ft_split(char const *s, char c); +char *ft_itoa(int n); +char *ft_strmapi(char const *s, char (*f)(unsigned int, char)); +void ft_striteri(char *s, void (*f)(unsigned int, char *)); +void ft_putchar_fd(char c, int fd); +void ft_putstr_fd(char *s, int fd); +void ft_putendl_fd(char *s, int fd); +void ft_putnbr_fd(int n, int fd); +t_list *ft_lstnew(void *content); +void ft_lstadd_front(t_list **lst, t_list *new_); +int ft_lstsize(t_list *lst); +t_list *ft_lstlast(t_list *lst); +void ft_lstadd_back(t_list **lst, t_list *new_); +void ft_lstdelone(t_list *lst, void (*del)(void *)); +void ft_lstclear(t_list **lst, void (*del)(void *)); +void ft_lstiter(t_list *lst, void (*f)(void *)); +t_list *ft_lstmap(t_list *lst, void *(*f)(void *), + void (*del)(void *)); +char *ft_lltoa(long long n); #endif diff --git a/real_tests/ft_atoi/04_null.c b/real_tests/ft_atoi/04_null.c index 405b819..9692674 100644 --- a/real_tests/ft_atoi/04_null.c +++ b/real_tests/ft_atoi/04_null.c @@ -1,3 +1,15 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* 04_null.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: elagouch +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2026/01/25 17:33:31 by elagouch #+# #+# */ +/* Updated: 2026/01/25 17:33:32 by elagouch ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include "../tests.h" int atoi_null_test(void) diff --git a/real_tests/tests.h b/real_tests/tests.h index 835c397..57a984f 100644 --- a/real_tests/tests.h +++ b/real_tests/tests.h @@ -33,7 +33,7 @@ int atoi_int_max_test(void); int atoi_int_min_test(void); int atoi_null_test(void); -//strncmp +// strncmp int strncmp_basic_test(void); int strncmp_len_test(void); int strncmp_high_len_test(void); diff --git a/tests/libunit/04_sigbus.c b/tests/libunit/04_sigbus.c index 94a4659..d13bfa2 100644 --- a/tests/libunit/04_sigbus.c +++ b/tests/libunit/04_sigbus.c @@ -14,12 +14,12 @@ int test_sigbus(void) { - char *cptr; - int *iptr; + char *cptr; + int *iptr; - __asm__("pushf\norl $0x40000,(%rsp)\npopf"); - cptr = malloc(sizeof(int) + 1); - iptr = (int *)++cptr; - *iptr = 42; - return (1); + __asm__("pushf\norl $0x40000,(%rsp)\npopf"); + cptr = malloc(sizeof(int) + 1); + iptr = (int *)++cptr; + *iptr = 42; + return (1); } diff --git a/tests/libunit/05_sigkill.c b/tests/libunit/05_sigkill.c index 443d266..42a134f 100644 --- a/tests/libunit/05_sigkill.c +++ b/tests/libunit/05_sigkill.c @@ -14,6 +14,6 @@ int test_sigkill(void) { - raise(SIGKILL); - return (1); + raise(SIGKILL); + return (1); } diff --git a/tests/libunit/06_sigabrt.c b/tests/libunit/06_sigabrt.c index 494d836..7aefd82 100644 --- a/tests/libunit/06_sigabrt.c +++ b/tests/libunit/06_sigabrt.c @@ -14,6 +14,6 @@ int test_sigabrt(void) { - raise(SIGABRT); - return (1); + raise(SIGABRT); + return (1); } diff --git a/tests/libunit/07_sigfpe.c b/tests/libunit/07_sigfpe.c index 4cdaf87..8cb80b3 100644 --- a/tests/libunit/07_sigfpe.c +++ b/tests/libunit/07_sigfpe.c @@ -14,6 +14,6 @@ int test_sigfpe(void) { - raise(SIGFPE); - return (1); + raise(SIGFPE); + return (1); } diff --git a/tests/libunit/08_sigpipe.c b/tests/libunit/08_sigpipe.c index 66a212a..bdced07 100644 --- a/tests/libunit/08_sigpipe.c +++ b/tests/libunit/08_sigpipe.c @@ -14,6 +14,6 @@ int test_sigpipe(void) { - raise(SIGPIPE); - return (1); + raise(SIGPIPE); + return (1); } diff --git a/tests/libunit/09_timeout.c b/tests/libunit/09_timeout.c index e66d0c1..d05dd83 100644 --- a/tests/libunit/09_timeout.c +++ b/tests/libunit/09_timeout.c @@ -12,7 +12,8 @@ int test_timeout(void) { - while(1) - {} - return (1); + while (1) + { + } + return (1); }