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