libft_testing/ft_strnstr_test.c
2025-10-07 18:09:08 +02:00

131 lines
3.1 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strnstr_test.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: lalgarra <lalgarra@student.42madrid.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2025/10/06 20:46:15 by lalgarra #+# #+# */
/* Updated: 2025/10/07 18:00:51 by lalgarra ### ########.fr */
/* */
/* ************************************************************************** */
#include "libft.h"
#include <stdio.h>
#include <string.h>
static void test(char *prefix, char big[], char litl[], size_t len)
{
char *res;
int fd;
fd = STDOUT_FILENO;
ft_putstr_fd(prefix, fd);
ft_putstr_fd("len:[", fd);
ft_putnbr_fd((int) len, fd);
ft_putstr_fd("], big:[", fd);
ft_putstr_fd(big, fd);
ft_putstr_fd("], litl:[", fd);
ft_putstr_fd(litl, fd);
res = ft_strnstr(big, litl, len);
ft_putstr_fd("], result:[", fd);
if (res == NULL)
ft_putstr_fd("-NULL-", fd);
else
ft_putstr_fd(res, fd);
ft_putendl_fd("]", fd);
}
static void zero(char big[], char littl[])
{
bzero(big, 128);
bzero(littl, 128);
}
static void do_test1(char *prefix, char big[], char littl[])
{
size_t size;
size = 40;
zero(big, littl);
memcpy(big, "Lorem ipsum dolor sit amet consectetur adipiscing elit.", 56);
memcpy(littl, "ipsum dolor", 11);
test(prefix, big, littl, size);
}
static void do_test2(char *prefix, char big[], char littl[])
{
size_t size;
zero(big, littl);
size = 15;
memcpy(big, "Lorem ipsum", 11);
memcpy(littl, "z", 1);
test(prefix, big, littl, size);
}
static void do_test3(char *prefix, char big[], char littl[])
{
size_t size;
zero(big, littl);
size = 5;
test(prefix, big, littl, size);
}
static void do_test4(char *prefix, char big[], char littl[])
{
size_t size;
zero(big, littl);
size = 0;
memcpy(littl, "Lorem ipsum dolor sit amet consectetur adipiscing elit.",
8);
test(prefix, big, littl, size);
}
static void do_test5(char *prefix, char big[], char littl[])
{
size_t size;
zero(big, littl);
size = 4;
memcpy(littl, "\xff\xaa\xde\x12", 5);
memcpy(big, "\xff\xaa\xde\x12XABC", 5);
test(prefix, big, littl, size);
}
static void do_test6(char *prefix, char big[], char littl[])
{
size_t size;
zero(big, littl);
size = 20;
memcpy(littl, "e\x00g", 3);
memcpy(big, "is there\x00 a nyacat ?",20);
test(prefix, big, littl, size);
}
static void do_test7(char *prefix)
{
size_t size;
size = 3;
test(prefix, "abcdefgh", "abc", size);
}
int main(void)
{
char big[128];
char littl[128];
do_test1("test 1: ", big, littl);
do_test2("test 2: ", big, littl);
do_test3("test 3: ", big, littl);
do_test4("test 4: ", big, littl);
do_test5("test 5: ", big, littl);
do_test6("test 6: ", big, littl);
do_test7("test 7: ");
return (0);
}