ft_strlcat()
This commit is contained in:
parent
d28b6d961d
commit
8b4b983f93
4 changed files with 116 additions and 10 deletions
6
Makefile
6
Makefile
|
|
@ -6,7 +6,7 @@
|
||||||
# By: lalgarra <lalgarra@student.42madrid.com> +#+ +:+ +#+ #
|
# By: lalgarra <lalgarra@student.42madrid.com> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2025/10/03 18:03:12 by lalgarra #+# #+# #
|
# Created: 2025/10/03 18:03:12 by lalgarra #+# #+# #
|
||||||
# Updated: 2025/10/05 14:41:54 by lalgarra ### ########.fr #
|
# Updated: 2025/10/05 20:42:03 by lalgarra ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
|
@ -20,13 +20,13 @@ CFLAGS += -Wall -Wextra -Werror -g3 -iquote $(LIBDIR) \
|
||||||
TESTS := ft_isalpha_test ft_isdigit_test ft_isalnum_test ft_isascii_test \
|
TESTS := ft_isalpha_test ft_isdigit_test ft_isalnum_test ft_isascii_test \
|
||||||
ft_isprint_test ft_toupper_test ft_tolower_test ft_strlen_test \
|
ft_isprint_test ft_toupper_test ft_tolower_test ft_strlen_test \
|
||||||
ft_memset_test ft_bzero_test ft_memcpy_test ft_calloc_test \
|
ft_memset_test ft_bzero_test ft_memcpy_test ft_calloc_test \
|
||||||
ft_memmove_test ft_strlcpy_test
|
ft_memmove_test ft_strlcpy_test ft_strlcat_test
|
||||||
|
|
||||||
%_test : %_test.c
|
%_test : %_test.c
|
||||||
$(CC) $(CFLAGS) $*_test.c -L$(LIBDIR) -lft -o $*_test
|
$(CC) $(CFLAGS) $*_test.c -L$(LIBDIR) -lft -o $*_test
|
||||||
|
|
||||||
%_actual.output : %_test
|
%_actual.output : %_test
|
||||||
@./$*_test > ./$*_actual.output ;
|
@./$*_test 2>&1 > ./$*_actual.output ;
|
||||||
|
|
||||||
%_report : %_test %_actual.output
|
%_report : %_test %_actual.output
|
||||||
-(diff -a $*_expected.output $*_actual.output \
|
-(diff -a $*_expected.output $*_actual.output \
|
||||||
|
|
|
||||||
4
ft_strlcat_expected.output
Normal file
4
ft_strlcat_expected.output
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
test 1: size:[10], src:[ ips], dest:[Lorem], result:[9], dest:[Lorem ips]
|
||||||
|
test 2: size:[10], src:[ ipsu], dest:[Lorem], result:[10], dest:[Lorem ips]
|
||||||
|
test 3: size:[5], src:[XXXXXXXX], dest:[Lorem ip], result:[13], dest:[Lorem ip]
|
||||||
|
test 4: size:[0], src:[XXXXXXXX], dest:[Lorem ip], result:[8], dest:[Lorem ip]
|
||||||
100
ft_strlcat_test.c
Normal file
100
ft_strlcat_test.c
Normal file
|
|
@ -0,0 +1,100 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* 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);
|
||||||
|
}
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: lalgarra <lalgarra@student.42madrid.com> +#+ +:+ +#+ */
|
/* By: lalgarra <lalgarra@student.42madrid.com> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/10/05 13:21:43 by lalgarra #+# #+# */
|
/* Created: 2025/10/05 13:21:43 by lalgarra #+# #+# */
|
||||||
/* Updated: 2025/10/05 19:49:14 by lalgarra ### ########.fr */
|
/* Updated: 2025/10/05 20:48:01 by lalgarra ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
|
@ -35,7 +35,7 @@ static void test(char *prefix, char src[], char dest[], size_t size)
|
||||||
ft_putendl_fd("]", fd);
|
ft_putendl_fd("]", fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void zero(char src[], char dest[])
|
static void zero(char src[], char dest[])
|
||||||
{
|
{
|
||||||
bzero(src, 128);
|
bzero(src, 128);
|
||||||
bzero(dest, 128);
|
bzero(dest, 128);
|
||||||
|
|
@ -46,7 +46,7 @@ static void do_test1(char *prefix, char src[], char dest[])
|
||||||
size_t size;
|
size_t size;
|
||||||
|
|
||||||
size = 10;
|
size = 10;
|
||||||
zero(src, dest);
|
zero(src, dest);
|
||||||
memcpy(src, "Lorem ipsum dolor sit amet consectetur adipiscing elit.", 56);
|
memcpy(src, "Lorem ipsum dolor sit amet consectetur adipiscing elit.", 56);
|
||||||
memset(dest, 'X', size + 2);
|
memset(dest, 'X', size + 2);
|
||||||
test(prefix, src, dest, size);
|
test(prefix, src, dest, size);
|
||||||
|
|
@ -56,9 +56,10 @@ static void do_test2(char *prefix, char src[], char dest[])
|
||||||
{
|
{
|
||||||
size_t size;
|
size_t size;
|
||||||
|
|
||||||
zero(src, dest);
|
zero(src, dest);
|
||||||
size = 10;
|
size = 10;
|
||||||
memcpy(src, "Lorem ipsum dolor sit amet consectetur adipiscing elit.", size - 3);
|
memcpy(src, "Lorem ipsum dolor sit amet consectetur adipiscing elit.",
|
||||||
|
size - 3);
|
||||||
memset(dest, 'X', size + 2);
|
memset(dest, 'X', size + 2);
|
||||||
test(prefix, src, dest, size);
|
test(prefix, src, dest, size);
|
||||||
}
|
}
|
||||||
|
|
@ -67,9 +68,10 @@ static void do_test3(char *prefix, char src[], char dest[])
|
||||||
{
|
{
|
||||||
size_t size;
|
size_t size;
|
||||||
|
|
||||||
zero(src, dest);
|
zero(src, dest);
|
||||||
size = 5;
|
size = 5;
|
||||||
memcpy(src, "Lorem ipsum dolor sit amet consectetur adipiscing elit.", size + 3);
|
memcpy(src, "Lorem ipsum dolor sit amet consectetur adipiscing elit.",
|
||||||
|
size + 3);
|
||||||
memset(dest, 'X', size + 3);
|
memset(dest, 'X', size + 3);
|
||||||
test(prefix, src, dest, size);
|
test(prefix, src, dest, size);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue