2021-10-23 23:35:28
This commit is contained in:
110
libft/munit.c
110
libft/munit.c
@@ -6,7 +6,7 @@
|
|||||||
/* By: <gbaconni@student.42lausanne.ch> +#+ +:+ +#+ */
|
/* By: <gbaconni@student.42lausanne.ch> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2021/10/23 16:09:04 by gbaconni #+# #+# */
|
/* Created: 2021/10/23 16:09:04 by gbaconni #+# #+# */
|
||||||
/* Updated: 2021/10/23 16:38:18 by gbaconni ### lausanne.ch */
|
/* Updated: 2021/10/23 23:34:36 by gbaconni ### lausanne.ch */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@@ -18,57 +18,9 @@
|
|||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
#ifdef __GNU_LIBRARY__
|
#ifdef __GNU_LIBRARY__
|
||||||
|
|
||||||
size_t strnlen(const char *s, size_t maxlen);
|
size_t strnlen(const char *s, size_t maxlen);
|
||||||
size_t strlcpy(char *dst, const char *src, size_t dstsize);
|
size_t strlcpy(char *dst, const char *src, size_t dstsize);
|
||||||
size_t strlcat(char *dst, const char *src, size_t dstsize);
|
size_t strlcat(char *dst, const char *src, size_t dstsize);
|
||||||
|
|
||||||
size_t strnlen(const char *s, size_t maxlen)
|
|
||||||
{
|
|
||||||
size_t len;
|
|
||||||
|
|
||||||
len = 0;
|
|
||||||
while (len < maxlen && *s++ != '\0')
|
|
||||||
len++;
|
|
||||||
return (len);
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t strlcpy(char *dst, const char *src, size_t dstsize)
|
|
||||||
{
|
|
||||||
size_t srcsize;
|
|
||||||
|
|
||||||
srcsize = strlen(src);
|
|
||||||
if (srcsize < dstsize)
|
|
||||||
{
|
|
||||||
memcpy(dst, src, srcsize + 1);
|
|
||||||
}
|
|
||||||
else if (dstsize != 0)
|
|
||||||
{
|
|
||||||
memcpy(dst, src, dstsize - 1);
|
|
||||||
dst[dstsize - 1] = '\0';
|
|
||||||
}
|
|
||||||
return (srcsize);
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t strlcat(char *dst, const char *src, size_t dstsize)
|
|
||||||
{
|
|
||||||
size_t srclen;
|
|
||||||
size_t dstlen;
|
|
||||||
size_t cpylen;
|
|
||||||
|
|
||||||
srclen = strlen(src);
|
|
||||||
dstlen = strnlen(dst, dstsize);
|
|
||||||
if (dstlen == dstsize)
|
|
||||||
return (dstsize + srclen);
|
|
||||||
if (srclen < dstsize - dstlen)
|
|
||||||
cpylen = srclen + 1;
|
|
||||||
else
|
|
||||||
cpylen = dstsize - dstlen - 1;
|
|
||||||
memcpy(dst + dstlen, src, cpylen);
|
|
||||||
dst[dstsize - 1] = '\0';
|
|
||||||
return (dstlen + srclen);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static char char_bs[2] = { '\b', '\0' };
|
static char char_bs[2] = { '\b', '\0' };
|
||||||
@@ -477,7 +429,7 @@ static MunitResult test_ft_memchr(const MunitParameter params[], void* user_data
|
|||||||
}
|
}
|
||||||
else if (str == NULL)
|
else if (str == NULL)
|
||||||
{
|
{
|
||||||
munit_assert_null(ft_str);
|
munit_assert_ptr_equal(ft_str, str);
|
||||||
}
|
}
|
||||||
return (MUNIT_OK);
|
return (MUNIT_OK);
|
||||||
}
|
}
|
||||||
@@ -503,7 +455,7 @@ static MunitResult test_ft_strchr(const MunitParameter params[], void* user_data
|
|||||||
}
|
}
|
||||||
else if (str == NULL)
|
else if (str == NULL)
|
||||||
{
|
{
|
||||||
munit_assert_null(ft_str);
|
munit_assert_ptr_equal(ft_str, str);
|
||||||
}
|
}
|
||||||
return (MUNIT_OK);
|
return (MUNIT_OK);
|
||||||
}
|
}
|
||||||
@@ -529,7 +481,7 @@ static MunitResult test_ft_strrchr(const MunitParameter params[], void* user_dat
|
|||||||
}
|
}
|
||||||
else if (str == NULL)
|
else if (str == NULL)
|
||||||
{
|
{
|
||||||
munit_assert_null(ft_str);
|
munit_assert_ptr_equal(ft_str, str);
|
||||||
}
|
}
|
||||||
return (MUNIT_OK);
|
return (MUNIT_OK);
|
||||||
}
|
}
|
||||||
@@ -561,9 +513,9 @@ static MunitResult test_ft_strnstr(const MunitParameter params[], void* user_dat
|
|||||||
munit_assert_string_equal(ft_str, str);
|
munit_assert_string_equal(ft_str, str);
|
||||||
munit_assert_memory_equal(n, ft_str, str);
|
munit_assert_memory_equal(n, ft_str, str);
|
||||||
}
|
}
|
||||||
else if (str == NULL)
|
else
|
||||||
{
|
{
|
||||||
munit_assert_null(ft_str);
|
munit_assert_ptr_equal(ft_str, str);
|
||||||
}
|
}
|
||||||
len--;
|
len--;
|
||||||
}
|
}
|
||||||
@@ -589,7 +541,7 @@ static MunitResult test_ft_strdup(const MunitParameter params[], void* user_data
|
|||||||
}
|
}
|
||||||
else if (str == NULL)
|
else if (str == NULL)
|
||||||
{
|
{
|
||||||
munit_assert_null(ft_str);
|
munit_assert_ptr_equal(ft_str, str);
|
||||||
}
|
}
|
||||||
free(ft_str);
|
free(ft_str);
|
||||||
free(str);
|
free(str);
|
||||||
@@ -881,3 +833,51 @@ int main(int argc, char* argv[MUNIT_ARRAY_PARAM(argc + 1)])
|
|||||||
munit_rand_memory(sizeof(data), data);
|
munit_rand_memory(sizeof(data), data);
|
||||||
return (munit_suite_main(&test_suite, (void *) data, argc, argv));
|
return (munit_suite_main(&test_suite, (void *) data, argc, argv));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __GNU_LIBRARY__
|
||||||
|
size_t strnlen(const char *s, size_t maxlen)
|
||||||
|
{
|
||||||
|
size_t len;
|
||||||
|
|
||||||
|
len = 0;
|
||||||
|
while (len < maxlen && *s++ != '\0')
|
||||||
|
len++;
|
||||||
|
return (len);
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t strlcpy(char *dst, const char *src, size_t dstsize)
|
||||||
|
{
|
||||||
|
size_t srcsize;
|
||||||
|
|
||||||
|
srcsize = strlen(src);
|
||||||
|
if (srcsize < dstsize)
|
||||||
|
{
|
||||||
|
memcpy(dst, src, srcsize + 1);
|
||||||
|
}
|
||||||
|
else if (dstsize != 0)
|
||||||
|
{
|
||||||
|
memcpy(dst, src, dstsize - 1);
|
||||||
|
dst[dstsize - 1] = '\0';
|
||||||
|
}
|
||||||
|
return (srcsize);
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t strlcat(char *dst, const char *src, size_t dstsize)
|
||||||
|
{
|
||||||
|
size_t srclen;
|
||||||
|
size_t dstlen;
|
||||||
|
size_t cpylen;
|
||||||
|
|
||||||
|
srclen = strlen(src);
|
||||||
|
dstlen = strnlen(dst, dstsize);
|
||||||
|
if (dstlen == dstsize)
|
||||||
|
return (dstsize + srclen);
|
||||||
|
if (srclen < dstsize - dstlen)
|
||||||
|
cpylen = srclen + 1;
|
||||||
|
else
|
||||||
|
cpylen = dstsize - dstlen - 1;
|
||||||
|
memcpy(dst + dstlen, src, cpylen);
|
||||||
|
dst[dstsize - 1] = '\0';
|
||||||
|
return (dstlen + srclen);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user