mirror of
git://sourceware.org/git/glibc.git
synced 2025-01-24 12:25:35 +08:00
* string/tester.c (test_strnlen): New function.
(test_strchr): Call it. (test_strncat): Test lengths where the sign bit is set. (test_strncmp): Likewise.
This commit is contained in:
parent
25bc77e6da
commit
24d58fb41d
@ -1,3 +1,10 @@
|
||||
2006-02-13 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* string/tester.c (test_strnlen): New function.
|
||||
(test_strchr): Call it.
|
||||
(test_strncat): Test lengths where the sign bit is set.
|
||||
(test_strncmp): Likewise.
|
||||
|
||||
2006-02-17 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* include/atomic.h (atomic_and, atomic_or): Define.
|
||||
|
@ -344,6 +344,9 @@ test_strncat (void)
|
||||
|
||||
(void) strncat (one, "gh", 2);
|
||||
equal (one, "abcdgh", 12); /* Count and length equal. */
|
||||
|
||||
(void) strncat (one, "ij", (size_t)-1); /* set sign bit in count */
|
||||
equal (one, "abcdghij", 13);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -364,6 +367,8 @@ test_strncmp (void)
|
||||
check (strncmp ("abce", "abc", 3) == 0, 11); /* Count == length. */
|
||||
check (strncmp ("abcd", "abce", 4) < 0, 12); /* Nudging limit. */
|
||||
check (strncmp ("abc", "def", 0) == 0, 13); /* Zero count. */
|
||||
check (strncmp ("abc", "", (size_t)-1) > 0, 14); /* set sign bit in count */
|
||||
check (strncmp ("abc", "abc", (size_t)-2) == 0, 15);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -429,6 +434,29 @@ test_strlen (void)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
test_strnlen (void)
|
||||
{
|
||||
it = "strnlen";
|
||||
check (strnlen ("", 10) == 0, 1); /* Empty. */
|
||||
check (strnlen ("a", 10) == 1, 2); /* Single char. */
|
||||
check (strnlen ("abcd", 10) == 4, 3); /* Multiple chars. */
|
||||
check (strnlen ("foo", (size_t)-1) == 3, 4); /* limits of n. */
|
||||
|
||||
{
|
||||
char buf[4096];
|
||||
int i;
|
||||
char *p;
|
||||
for (i=0; i < 0x100; i++)
|
||||
{
|
||||
p = (char *) ((unsigned long int)(buf + 0xff) & ~0xff) + i;
|
||||
strcpy (p, "OK");
|
||||
strcpy (p+3, "BAD/WRONG");
|
||||
check (strnlen (p, 100) == 2, 5+i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
test_strchr (void)
|
||||
{
|
||||
@ -1382,6 +1410,9 @@ main (void)
|
||||
/* strlen. */
|
||||
test_strlen ();
|
||||
|
||||
/* strnlen. */
|
||||
test_strnlen ();
|
||||
|
||||
/* strchr. */
|
||||
test_strchr ();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user