Contents of /trunk/mkinitrd-magellan/klibc/usr/klibc/tests/testvsnp.c
Parent Directory | Revision Log
Revision 1297 -
(show 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 | #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 | } |