Imported Upstream version 2.9.0
[debian/cc1111] / support / regression / tests / bug1057979.c
1 /*
2    bug1057979.c
3 */
4
5 #include <stdlib.h>
6 #include <string.h>
7 #include <stdio.h>
8 #include <testfwk.h>
9
10 char s[12 + 1];
11
12 void
13 test_sprintf (void)
14 {
15   s[12] = 0x12;
16
17   sprintf (s, "%d", 99);
18   ASSERT (0 == strcmp (s, "99"));
19   sprintf (s, "%d", 100);
20   ASSERT (0 == strcmp (s, "100"));
21   sprintf (s, "%d", 2004);
22   ASSERT (0 == strcmp (s, "2004"));
23   sprintf (s, "%ld", 2147483647L);
24   ASSERT (0 == strcmp (s, "2147483647"));
25
26   //and from bug 1073386
27   sprintf (s, "%04X", 0x8765u);
28   ASSERT (0 == strcmp (s, "8765"));
29
30   //and from bug 1193299
31   sprintf (s, "%3.3s", "abcd");
32   ASSERT (0 == strcmp (s, "abc"));
33   sprintf (s, "%-3.3s", "abcd");
34   ASSERT (0 == strcmp (s, "abc"));
35   sprintf (s, "%3.3s", "ab");
36   ASSERT (0 == strcmp (s, " ab"));
37   sprintf (s, "%-3.3s", "ab");
38   ASSERT (0 == strcmp (s, "ab "));
39
40 #if defined(SDCC_ds390) || defined(PORT_HOST)
41   //and from bug 1358192
42   sprintf (s, "%f", 10.1);
43   LOG ((s));
44   ASSERT (0 == strcmp (s, "10.100000"));
45
46   //and from bug 1388703
47   sprintf (s, "%4.1f", 1.36);
48   LOG ((s));
49   ASSERT (0 == strcmp (s, " 1.4"));
50   sprintf (s, "%4.1f", -1.37);
51   LOG ((s));
52   ASSERT (0 == strcmp (s, "-1.4"));
53 #endif
54
55   ASSERT (s[12] == 0x12);
56 }