Update.
[glibc.git] / string / tst-strlen.c
blobb9efe1da2908e14d52978c0911008ef25709172b
1 #include <stdio.h>
2 #include <string.h>
4 int
5 main(int argc, char *argv[])
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 basebuf[24 + 32];
10 size_t base;
12 for (base = 0; base < 32; ++base)
14 char *buf = basebuf + base;
15 size_t words;
17 for (words = 0; words < 4; ++words)
19 size_t last;
20 memset (buf, 'a', words * 4);
22 for (last = 0; last < 16; ++last)
24 buf[words * 4 + 0] = (last & 1) != 0 ? 'b' : '\0';
25 buf[words * 4 + 1] = (last & 2) != 0 ? 'c' : '\0';
26 buf[words * 4 + 2] = (last & 4) != 0 ? 'd' : '\0';
27 buf[words * 4 + 3] = (last & 8) != 0 ? 'e' : '\0';
28 buf[words * 4 + 4] = '\0';
30 if (strlen (buf) != words * 4 + lens[last])
32 printf ("failed for base=%d, words=%d, and last=%d\n",
33 base, words, last);
34 return 1;
39 return 0;