100 lines
2.7 KiB
C
100 lines
2.7 KiB
C
/* ************************************************************************** */
|
|
/* */
|
|
/* ::: :::::::: */
|
|
/* ft_strlcat_test.c :+: :+: :+: */
|
|
/* +:+ +:+ +:+ */
|
|
/* By: lalgarra <lalgarra@student.42madrid.com> +#+ +:+ +#+ */
|
|
/* +#+#+#+#+#+ +#+ */
|
|
/* Created: 2025/10/05 13:21:43 by lalgarra #+# #+# */
|
|
/* Updated: 2025/10/05 21:13:00 by lalgarra ### ########.fr */
|
|
/* */
|
|
/* ************************************************************************** */
|
|
|
|
#include "libft.h"
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
|
|
static void test(char *prefix, char src[], char dest[], size_t size)
|
|
{
|
|
size_t res;
|
|
int fd;
|
|
|
|
fd = STDOUT_FILENO;
|
|
ft_putstr_fd(prefix, fd);
|
|
ft_putstr_fd("size:[", fd);
|
|
ft_putnbr_fd((int) size, fd);
|
|
ft_putstr_fd("], src:[", fd);
|
|
ft_putstr_fd(src, fd);
|
|
ft_putstr_fd("], dest:[", fd);
|
|
ft_putstr_fd(dest, fd);
|
|
res = ft_strlcat(dest, src, size);
|
|
ft_putstr_fd("], result:[", fd);
|
|
ft_putnbr_fd((int) res, fd);
|
|
ft_putstr_fd("], dest:[", fd);
|
|
ft_putstr_fd(dest, fd);
|
|
ft_putendl_fd("]", fd);
|
|
}
|
|
|
|
static void zero(char src[], char dest[])
|
|
{
|
|
bzero(src, 128);
|
|
bzero(dest, 128);
|
|
}
|
|
|
|
static void do_test1(char *prefix, char src[], char dest[])
|
|
{
|
|
size_t size;
|
|
|
|
size = 10;
|
|
zero(src, dest);
|
|
memcpy(dest, "Lorem ipsum dolor sit amet consectetur adipiscing elit.", 5);
|
|
memcpy(src, " ipsum dolor sit amet consectetur adipiscing elit.", 4);
|
|
test(prefix, src, dest, size);
|
|
}
|
|
|
|
static void do_test2(char *prefix, char src[], char dest[])
|
|
{
|
|
size_t size;
|
|
|
|
zero(src, dest);
|
|
size = 10;
|
|
memcpy(dest, "Lorem ipsum dolor sit amet consectetur adipiscing elit.", 5);
|
|
memcpy(src, " ipsum dolor sit amet consectetur adipiscing elit.", 5);
|
|
test(prefix, src, dest, size);
|
|
}
|
|
|
|
static void do_test3(char *prefix, char src[], char dest[])
|
|
{
|
|
size_t size;
|
|
|
|
zero(src, dest);
|
|
size = 5;
|
|
memcpy(dest, "Lorem ipsum dolor sit amet consectetur adipiscing elit.",
|
|
size + 3);
|
|
memset(src, 'X', size + 3);
|
|
test(prefix, src, dest, size);
|
|
}
|
|
|
|
static void do_test4(char *prefix, char src[], char dest[])
|
|
{
|
|
size_t size;
|
|
|
|
zero(src, dest);
|
|
size = 0;
|
|
memcpy(dest, "Lorem ipsum dolor sit amet consectetur adipiscing elit.",
|
|
8);
|
|
memset(src, 'X', 8);
|
|
test(prefix, src, dest, size);
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
char src[128];
|
|
char dest[128];
|
|
|
|
do_test1("test 1: ", src, dest);
|
|
do_test2("test 2: ", src, dest);
|
|
do_test3("test 3: ", src, dest);
|
|
do_test4("test 4: ", src, dest);
|
|
return (0);
|
|
}
|