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