S390: Move utf8-utf32-z9.c to multiarch folder and use s390_libc_ifunc_expr macro.
[glibc.git] / string / bug-strtok1.c
bloba47b2f3531f887c53e963769e307e7d90fafb8d4
1 /* See BZ #2126. */
2 #include <string.h>
3 #include <stdio.h>
5 int
6 do_test (void)
8 const char str[] = "axaaba";
9 char *token;
10 char *cp;
11 char *l;
12 int result = 0;
14 puts ("test strtok");
15 cp = strdupa (str);
16 printf ("cp = %p, len = %zu\n", cp, strlen (cp));
17 token = strtok (cp, "ab");
18 result |= token == NULL || strcmp (token, "x");
19 printf ("token: %s (%d)\n", token ? token : "NULL", result);
20 token = strtok(0, "ab");
21 result |= token != NULL;
22 printf ("token: %s (%d)\n", token ? token : "NULL", result);
23 token = strtok(0, "a");
24 result |= token != NULL;
25 printf ("token: %s (%d)\n", token ? token : "NULL", result);
27 puts ("test strtok_r");
28 cp = strdupa (str);
29 size_t len = strlen (cp);
30 printf ("cp = %p, len = %zu\n", cp, len);
31 token = strtok_r (cp, "ab", &l);
32 result |= token == NULL || strcmp (token, "x");
33 printf ("token: %s, next = %p (%d)\n", token ? token : "NULL", l, result);
34 token = strtok_r(0, "ab", &l);
35 result |= token != NULL || l != cp + len;
36 printf ("token: %s, next = %p (%d)\n", token ? token : "NULL", l, result);
37 token = strtok_r(0, "a", &l);
38 result |= token != NULL || l != cp + len;
39 printf ("token: %s, next = %p (%d)\n", token ? token : "NULL", l, result);
41 return result;
44 #include <support/test-driver.c>