Blob


1 #include <u.h>
2 #include <libc.h>
3 #include <stdio.h>
5 void
6 test(char *fmt, ...)
7 {
8 va_list arg;
9 char fmtbuf[100], stdbuf[100];
11 va_start(arg, fmt);
12 vsnprint(fmtbuf, sizeof fmtbuf, fmt, arg);
13 va_end(arg);
15 va_start(arg, fmt);
16 vsnprint(stdbuf, sizeof stdbuf, fmt, arg);
17 va_end(arg);
19 if(strcmp(fmtbuf, stdbuf) != 0)
20 print("fmt %s: fmt=\"%s\" std=\"%s\"\n", fmt, fmtbuf, stdbuf);
22 print("fmt %s: %s\n", fmt, fmtbuf);
23 }
26 int
27 main(int argc, char *argv[])
28 {
29 test("%f", 3.14159);
30 test("%f", 3.14159e10);
31 test("%f", 3.14159e-10);
33 test("%e", 3.14159);
34 test("%e", 3.14159e10);
35 test("%e", 3.14159e-10);
37 test("%g", 3.14159);
38 test("%g", 3.14159e10);
39 test("%g", 3.14159e-10);
41 test("%g", 2e25);
42 test("%.18g", 2e25);
44 test("%2.18g", 1.0);
45 test("%2.18f", 1.0);
46 test("%f", 3.1415927/4);
48 test("%20.10d", 12345);
49 test("%0.10d", 12345);
51 return 0;
52 }