string: add tests for a bunch of naive str functions
This commit is contained in:
parent
32b2bad9fc
commit
0048fb03ee
|
@ -36,6 +36,7 @@ set(SOURCES
|
|||
src/string/core.c
|
||||
src/string/memarray.c
|
||||
src/string/misc.c
|
||||
src/string/naive.c
|
||||
)
|
||||
# fx-9860G-only assets and fx-CG-50-only assets
|
||||
set(ASSETS_fx
|
||||
|
|
|
@ -29,5 +29,7 @@ extern ft_test ft_string_memmove;
|
|||
extern ft_test ft_string_memcmp;
|
||||
extern ft_test ft_string_memchr;
|
||||
extern ft_test ft_string_strlen;
|
||||
extern ft_test ft_string_naive;
|
||||
extern ft_test ft_string_strerror;
|
||||
|
||||
#endif /* _FT_ALL_TESTS_H_ */
|
||||
|
|
|
@ -30,11 +30,7 @@ ft_list headers_libc[] = {
|
|||
{ "<locale.h>", NULL },
|
||||
{ "<setjmp.h>", NULL },
|
||||
{ "<signal.h>", NULL },
|
||||
{ "<stdio.h>", NULL },/*(ft_test[]){
|
||||
{ "Formatted printing basics", NULL, NULL },
|
||||
{ "Format types and options", NULL, NULL },
|
||||
{ NULL },
|
||||
}}, */
|
||||
{ "<stdio.h>", NULL },
|
||||
{ "<stdlib.h>", (ft_test*[]){
|
||||
&ft_stdlib_arith,
|
||||
&ft_stdlib_sizes,
|
||||
|
@ -50,6 +46,8 @@ ft_list headers_libc[] = {
|
|||
&ft_string_memcmp,
|
||||
&ft_string_memchr,
|
||||
&ft_string_strlen,
|
||||
&ft_string_naive,
|
||||
&ft_string_strerror,
|
||||
NULL,
|
||||
}},
|
||||
{ "<time.h>", NULL },
|
||||
|
|
|
@ -0,0 +1,71 @@
|
|||
#include <ft/test.h>
|
||||
#include <ft/all-tests.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
static void _ft_string_naive(ft_test *t)
|
||||
{
|
||||
char const *s1;
|
||||
char s2[64];
|
||||
|
||||
s1 = "xyztuvxyztuv";
|
||||
ft_assert(t, strchr(s1, 'z') == s1 + 2);
|
||||
ft_assert(t, strchr(s1, 'w') == NULL);
|
||||
ft_assert(t, strrchr(s1, 'u') == s1 + 10);
|
||||
ft_assert(t, strrchr(s1, 'x') == s1 + 6);
|
||||
ft_assert(t, strrchr(s1, 'w') == NULL);
|
||||
ft_assert(t, strchrnul(s1, 't') == s1 + 3);
|
||||
ft_assert(t, strchrnul(s1, 'w') == s1 + 12);
|
||||
|
||||
ft_assert(t, strcmp("xyz", "xyz") == 0);
|
||||
ft_assert(t, strcmp("xyz\0t", "xyz\0v") == 0);
|
||||
ft_assert(t, strcmp("xyz", "xyt") == 6);
|
||||
ft_assert(t, strcmp("xyt", "xyz") == -6);
|
||||
ft_assert(t, strcmp("ab", "abc") == -'c');
|
||||
ft_assert(t, strcmp("", "") == 0);
|
||||
ft_assert(t, strcmp("x", "") == 'x');
|
||||
ft_assert(t, strncmp("xyz", "xyt", 2) == 0);
|
||||
ft_assert(t, strncmp("xyz\0t", "xyz\0v", 5) == 0);
|
||||
|
||||
strcpy(s2, s1);
|
||||
ft_assert(t, strcmp(s1, s2) == 0);
|
||||
|
||||
memset(s2, 0x55, sizeof s2);
|
||||
strncpy(s2, s1, 10);
|
||||
ft_assert(t, strcmp(s1, s2) != 0 && strncmp(s1, s2, 10) == 0);
|
||||
|
||||
strncpy(s2, s1, 15);
|
||||
ft_assert(t, memcmp(s2, "xyztuvxyztuv\0\0\0", 15) == 0);
|
||||
|
||||
strncpy(s2, s1, 5);
|
||||
s2[5] = 0;
|
||||
strcat(s2, s1 + 5);
|
||||
ft_assert(t, strcmp(s1, s2) == 0);
|
||||
|
||||
memset(s2, 0x55, sizeof s2);
|
||||
strncpy(s2, s1, 4);
|
||||
s2[4] = 0;
|
||||
strncat(s2, s1 + 4, 4);
|
||||
ft_assert(t, strcmp(s1, s2) != 0 && strncmp(s1, s2, 8) == 0);
|
||||
ft_assert(t, strcmp(s2, "xyztuvxy") == 0);
|
||||
}
|
||||
|
||||
ft_test ft_string_naive = {
|
||||
.name = "Naive string functions",
|
||||
.function = _ft_string_naive,
|
||||
};
|
||||
|
||||
static void _ft_string_strerror(ft_test *t)
|
||||
{
|
||||
ft_log(t, "0: %s\n", strerror(0));
|
||||
ft_log(t, "EDOM: %s\n", strerror(EDOM));
|
||||
ft_log(t, "EILSEQ: %s\n", strerror(EILSEQ));
|
||||
ft_log(t, "ERANGE: %s\n", strerror(ERANGE));
|
||||
ft_log(t, "-1: %s\n", strerror(-1));
|
||||
ft_log(t, "999999: %s\n", strerror(999999));
|
||||
}
|
||||
|
||||
ft_test ft_string_strerror = {
|
||||
.name = "strerror messages",
|
||||
.function = _ft_string_strerror,
|
||||
};
|
Loading…
Reference in New Issue