chiark / gitweb /
[PATCH] support log-priority levels in udev.conf
[elogind.git] / klibc / klibc / tests / testvsnp.c
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, 0123456701234567ULL);
42   printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
43
44   r = snprintf(buffer, 512, "Hello, %'#*.*llo", -40, 20, 0123456701234567ULL);
45   printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
46
47   r = snprintf(buffer, 512, "Hello, %'#*.*llo", -40, -20, 0123456701234567ULL);
48   printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
49
50   r = snprintf(buffer, 512, "Hello, %'#*.*llx", -40, -20, 0123456701234567ULL);
51   printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
52
53   r = snprintf(buffer, 512, "Hello, %p", &buffer);
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, %20p", &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", NULL);
66   printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
67
68   r = snprintf(buffer, 20, "Hello, %'-20p", NULL);
69   printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
70
71   r = snprintf(buffer, 15, "Hello, %'-20p", NULL);
72   printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
73
74   r = snprintf(buffer, 3, "Hello, %'-20p", NULL);
75   printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
76
77   /* This shouldn't change buffer in any way! */
78   r = snprintf(buffer, 0, "Hello, %'-20p", NULL);
79   printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
80
81   for ( i = -30 ; i <= 30 ; i++ ) {
82     r = snprintf(buffer, 40, "Hello, %'*p", i, NULL);
83     printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
84   }
85
86   r = snprintf(buffer, 40, "Hello, %'-20s", "String");
87   printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
88
89   r = snprintf(buffer, 40, "Hello, %'20s", "String");
90   printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
91
92   r = snprintf(buffer, 40, "Hello, %'020s", "String");
93   printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
94
95   r = snprintf(buffer, 40, "Hello, %'-20s", NULL);
96   printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
97
98   r = snprintf(buffer, 40, "Hello, %'20s", NULL);
99   printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
100
101   r = snprintf(buffer, 40, "Hello, %'020s", NULL);
102   printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
103
104   r = snprintf(buffer, 40, "Hello, %'-20c", '*');
105   printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
106
107   r = snprintf(buffer, 40, "Hello, %'20c", '*');
108   printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
109
110   r = snprintf(buffer, 40, "Hello, %'020c", '*');
111   printf("buffer = \"%s\" (%d), r = %d\n", buffer, strlen(buffer), r);
112
113   return 0;
114 }
115