Annotation of /trunk/mkinitrd-magellan/klibc/usr/klibc/tests/testvsnp.c
Parent Directory | Revision Log
Revision 1297 -
(hide annotations)
(download)
Fri May 27 15:12:11 2011 UTC (12 years, 11 months ago) by niro
File MIME type: text/plain
File size: 4367 byte(s)
Fri May 27 15:12:11 2011 UTC (12 years, 11 months ago) by niro
File MIME type: text/plain
File size: 4367 byte(s)
-updated to klibc-1.5.22 with mntproc definitions patch included
1 | niro | 532 | #include <assert.h> |
2 | #include <stddef.h> | ||
3 | #include <stdint.h> | ||
4 | #include <string.h> | ||
5 | #include <stdio.h> | ||
6 | |||
7 | int main(void) | ||
8 | { | ||
9 | int r, i; | ||
10 | char buffer[512]; | ||
11 | |||
12 | r = snprintf(buffer, 512, "Hello, %d", 37); | ||
13 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
14 | |||
15 | r = snprintf(buffer, 512, "Hello, %'d", 37373737); | ||
16 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
17 | |||
18 | r = snprintf(buffer, 512, "Hello, %'x", 0xdeadbeef); | ||
19 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
20 | |||
21 | r = snprintf(buffer, 512, "Hello, %'#X", 0xdeadbeef); | ||
22 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
23 | |||
24 | r = snprintf(buffer, 512, "Hello, %'#llo", 0123456701234567ULL); | ||
25 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
26 | |||
27 | /* Make sure overflow works correctly */ | ||
28 | memset(buffer, '\xff', 512); | ||
29 | r = snprintf(buffer, 16, "Hello, %'#llo", 0123456701234567ULL); | ||
30 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
31 | for (i = 16; i < 512; i++) | ||
32 | assert(buffer[i] == '\xff'); | ||
33 | |||
34 | r = snprintf(buffer, 512, "Hello, %'#40.20llo", 0123456701234567ULL); | ||
35 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
36 | |||
37 | r = snprintf(buffer, 512, "Hello, %'#-40.20llo", 0123456701234567ULL); | ||
38 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
39 | |||
40 | r = snprintf(buffer, 512, "Hello, %'#*.*llo", 40, 20, | ||
41 | 0123456701234567ULL); | ||
42 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
43 | |||
44 | r = snprintf(buffer, 512, "Hello, %'#*.*llo", -40, 20, | ||
45 | 0123456701234567ULL); | ||
46 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
47 | |||
48 | r = snprintf(buffer, 512, "Hello, %'#*.*llo", -40, -20, | ||
49 | 0123456701234567ULL); | ||
50 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
51 | |||
52 | r = snprintf(buffer, 512, "Hello, %'#*.*llx", -40, -20, | ||
53 | 0123456701234567ULL); | ||
54 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
55 | |||
56 | r = snprintf(buffer, 512, "Hello, %p", &buffer); | ||
57 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
58 | |||
59 | r = snprintf(buffer, 512, "Hello, %P", &buffer); | ||
60 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
61 | |||
62 | r = snprintf(buffer, 512, "Hello, %20p", &buffer); | ||
63 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
64 | |||
65 | r = snprintf(buffer, 512, "Hello, %-20p", &buffer); | ||
66 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
67 | |||
68 | r = snprintf(buffer, 512, "Hello, %-20p", NULL); | ||
69 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
70 | |||
71 | r = snprintf(buffer, 20, "Hello, %'-20p", NULL); | ||
72 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
73 | |||
74 | r = snprintf(buffer, 15, "Hello, %'-20p", NULL); | ||
75 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
76 | |||
77 | r = snprintf(buffer, 3, "Hello, %'-20p", NULL); | ||
78 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
79 | |||
80 | /* This shouldn't change buffer in any way! */ | ||
81 | r = snprintf(buffer, 0, "Hello, %'-20p", NULL); | ||
82 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
83 | |||
84 | for (i = -30; i <= 30; i++) { | ||
85 | r = snprintf(buffer, 40, "Hello, %'*p", i, NULL); | ||
86 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), | ||
87 | r); | ||
88 | } | ||
89 | |||
90 | r = snprintf(buffer, 40, "Hello, %'-20s", "String"); | ||
91 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
92 | |||
93 | r = snprintf(buffer, 40, "Hello, %'20s", "String"); | ||
94 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
95 | |||
96 | r = snprintf(buffer, 40, "Hello, %'020s", "String"); | ||
97 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
98 | |||
99 | r = snprintf(buffer, 40, "Hello, %'-20s", NULL); | ||
100 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
101 | |||
102 | r = snprintf(buffer, 40, "Hello, %'20s", NULL); | ||
103 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
104 | |||
105 | r = snprintf(buffer, 40, "Hello, %'020s", NULL); | ||
106 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
107 | |||
108 | r = snprintf(buffer, 40, "Hello, %'-20c", '*'); | ||
109 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
110 | |||
111 | r = snprintf(buffer, 40, "Hello, %'20c", '*'); | ||
112 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
113 | |||
114 | r = snprintf(buffer, 40, "Hello, %'020c", '*'); | ||
115 | printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r); | ||
116 | |||
117 | return 0; | ||
118 | } |