Added to test bug 609628 ==> x = (x+1) & 0xf
[fw/sdcc] / src / regression / compare.c
1 #define __16F873
2 #include "p16f873.h"
3 /*
4
5    PIC PORT Test code
6
7  */
8
9 /*
10    compare.c test compare
11
12  */
13
14 bit bit0 = 0;
15 bit bit1 = 0;
16
17 unsigned char success = 0;
18 unsigned char failures = 0;
19 unsigned char dummy = 0;
20
21 unsigned char achar0 = 0;
22 unsigned char achar1 = 0;
23 unsigned int aint0 = 0;
24 unsigned int aint1 = 0;
25
26 char schar0 = 0;
27 char schar1 = 0;
28
29 void
30 done ()
31 {
32
33   dummy++;
34
35 }
36
37 /* achar0 should be zero */
38
39 void
40 compare_char_to_lits1 (void)
41 {
42
43   if (achar0)
44     failures++;
45
46   if (achar0 == 1)
47     failures++;
48
49   if (achar0 == 7)
50     failures++;
51
52   if (achar0 != 0)
53     failures++;
54 }
55
56 /* achar0 should be `5' */
57 void
58 compare_char_to_lits2 (void)
59 {
60
61   if (!achar0)
62     failures++;
63
64   if (achar0 == 1)
65     failures++;
66
67   if (achar0 == 7)
68     failures++;
69
70   if (achar0 != 5)
71     failures++;
72 }
73
74
75 /* achar0 should equal achar1 */
76 void
77 compare_char_to_char1 (void)
78 {
79
80   if (achar0 != achar1)
81     failures++;
82
83   if (schar0 != schar1)
84     failures++;
85 }
86
87 /* achar0 should be different than achar1 */
88 void
89 compare_char_to_char2 (void)
90 {
91
92   if (achar0 == achar1)
93     failures++;
94
95 }
96
97 /* aint0 should be zero */
98
99 void
100 compare_int_to_lits1 (void)
101 {
102
103   if (aint0)
104     failures++;
105
106   if (aint0 == 1)
107     failures++;
108
109   if (aint0 == 7)
110     failures++;
111
112   if (aint0 != 0)
113     failures++;
114 }
115
116 /* aint0 should be `5' */
117 void
118 compare_int_to_lits2 (void)
119 {
120
121   if (!aint0)
122     failures++;
123
124   if (aint0 == 1)
125     failures++;
126
127   if (aint0 == 7)
128     failures++;
129
130   if (aint0 != 5)
131     failures++;
132 }
133
134 /* aint0 should be `0x1234' */
135 void
136 compare_int_to_lits3 (void)
137 {
138
139   if (!aint0)
140     failures++;
141
142   if (aint0 == 1)
143     failures++;
144
145   if (aint0 == 7)
146     failures++;
147
148   if (aint0 != 0x1234)
149     failures++;
150 }
151
152 /* aint0 should equal aint1 */
153 void
154 compare_int_to_int1 (void)
155 {
156
157   if (aint0 != aint1)
158     failures++;
159
160 }
161
162 /* aint0 should be different than aint1 */
163 void
164 compare_int_to_int2 (void)
165 {
166
167   if (aint0 == aint1)
168     failures++;
169
170 }
171
172 void
173 main (void)
174 {
175
176   compare_char_to_lits1 ();
177   compare_char_to_char1 ();
178   achar0 = 5;
179   compare_char_to_lits2 ();
180   compare_char_to_char2 ();
181
182
183   compare_int_to_lits1 ();
184   aint0 = 5;
185   compare_int_to_lits2 ();
186   aint0 = 0x1234;
187   compare_int_to_lits3 ();
188   compare_int_to_int2 ();
189   aint0 = 0;
190   compare_int_to_int1 ();
191
192   success = failures;
193   done ();
194 }