update from main archive 961214
[kopensolaris-gnu/glibc.git] / string / tst-strlen.c
1 #include <stdio.h>
2 #include <string.h>
3
4 int
5 main(int argc, char *argv[])
6 {
7   static const size_t lens[] = { 0, 1, 0, 2, 0, 1, 0, 3,
8                                  0, 1, 0, 2, 0, 1, 0, 4 };
9   char buf[24];
10   size_t words;
11
12   for (words = 0; words < 4; ++words)
13     {
14       size_t last;
15       memset (buf, 'a', words * 4);
16
17       for (last = 0; last < 16; ++last)
18         {
19           buf[words * 4 + 0] = (last & 1) != 0 ? 'b' : '\0';
20           buf[words * 4 + 1] = (last & 2) != 0 ? 'c' : '\0';
21           buf[words * 4 + 2] = (last & 4) != 0 ? 'd' : '\0';
22           buf[words * 4 + 3] = (last & 8) != 0 ? 'e' : '\0';
23           buf[words * 4 + 4] = '\0';
24
25           if (strlen (buf) != words * 4 + lens[last])
26             {
27               printf ("failed for words=%d and last=%d\n", words, last);
28               return 1;
29             }
30         }
31     }
32   return 0;
33 }