mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
2.5-18.1
This commit is contained in:
45
string/bug-strtok1.c
Normal file
45
string/bug-strtok1.c
Normal file
@ -0,0 +1,45 @@
|
||||
/* See BZ #2126. */
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
static int
|
||||
do_test (void)
|
||||
{
|
||||
const char str[] = "axaaba";
|
||||
char *token;
|
||||
char *cp;
|
||||
char *l;
|
||||
int result = 0;
|
||||
|
||||
puts ("test strtok");
|
||||
cp = strdupa (str);
|
||||
printf ("cp = %p, len = %zu\n", cp, strlen (cp));
|
||||
token = strtok (cp, "ab");
|
||||
result |= token == NULL || strcmp (token, "x");
|
||||
printf ("token: %s (%d)\n", token ? token : "NULL", result);
|
||||
token = strtok(0, "ab");
|
||||
result |= token != NULL;
|
||||
printf ("token: %s (%d)\n", token ? token : "NULL", result);
|
||||
token = strtok(0, "a");
|
||||
result |= token != NULL;
|
||||
printf ("token: %s (%d)\n", token ? token : "NULL", result);
|
||||
|
||||
puts ("test strtok_r");
|
||||
cp = strdupa (str);
|
||||
size_t len = strlen (cp);
|
||||
printf ("cp = %p, len = %zu\n", cp, len);
|
||||
token = strtok_r (cp, "ab", &l);
|
||||
result |= token == NULL || strcmp (token, "x");
|
||||
printf ("token: %s, next = %p (%d)\n", token ? token : "NULL", l, result);
|
||||
token = strtok_r(0, "ab", &l);
|
||||
result |= token != NULL || l != cp + len;
|
||||
printf ("token: %s, next = %p (%d)\n", token ? token : "NULL", l, result);
|
||||
token = strtok_r(0, "a", &l);
|
||||
result |= token != NULL || l != cp + len;
|
||||
printf ("token: %s, next = %p (%d)\n", token ? token : "NULL", l, result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#define TEST_FUNCTION do_test ()
|
||||
#include "../test-skeleton.c"
|
Reference in New Issue
Block a user