6ff0cd5d3c14ad61a29a65f0d7fd65519566fa21
[fw/sdcc] / src / regression / compare3.c
1 //
2 // compare3.c
3 // regression testing program for comparing literals to variables
4 //
5
6
7 unsigned char success = 0;
8 unsigned char failures = 0;
9 unsigned char dummy = 0;
10
11 bit bit0 = 0;
12 unsigned int aint0 = 0;
13 unsigned int aint1 = 0;
14 unsigned char achar0 = 0;
15 unsigned char achar1 = 0;
16
17 void
18 done ()
19 {
20
21   dummy++;
22
23 }
24
25 // compare to 0
26 // assumes
27 // achar0 == 0
28 // achar1 != 0
29 // aint0  == 0
30 // aint1  != 0
31
32 void c_0(void)
33 {
34
35   if(achar0 != 0)
36     failures++;
37
38   if(achar0)
39     failures++;
40
41   if(achar1 == 0)
42     failures++;
43
44   if(!achar1)
45     failures++;
46
47   if(aint0 != 0)
48     failures++;
49
50   if(aint0)
51     failures++;
52
53   if(aint1 == 0)
54     failures++;
55
56   if(!aint1)
57     failures++;
58
59 }
60
61 // compare to 1
62 // assumes
63 // achar0 != 1
64 // achar1 == 1
65 // aint0  != 1
66 // aint1  == 1
67
68 void c_1(void)
69 {
70
71   if(achar0 == 1)
72     failures++;
73
74   if(achar1 != 1)
75     failures++;
76
77   if(aint0 == 1)
78     failures++;
79
80   if(aint1 != 1)
81     failures++;
82
83 }
84
85 // compare to 2
86 // assumes
87 // achar0 == 2
88 // aint0  == 2
89
90 void c_2(void)
91 {
92
93   if(achar0 != 2)
94     failures++;
95
96   if(aint0 != 2)
97     failures++;
98
99 }
100
101 // compare to 0xff
102 // assumes
103 // achar0 == 0xff
104 // aint0  == 0xff
105
106 void c_ff(void)
107 {
108
109   if(achar0 != 0xff)
110     failures++;
111
112   if(aint0 != 0xff)
113     failures++;
114
115   if(aint0 == 0xfe)
116     failures++;
117
118   if(aint0 == 0xff00)
119     failures++;
120
121 }
122
123
124 // compare to 0x00a5
125 // assumes
126 // achar0  == 0xa5
127 // aint0  == 0x00a5
128
129 void c_a5(void)
130 {
131
132   if(achar0 != 0xa5)
133     failures++;
134
135   if(aint0 != 0xa5)
136     failures++;
137
138   if(aint0 == 0xa4)
139     failures++;
140
141   if(aint0 == 0xa500)
142     failures++;
143
144 }
145
146 // compare to 0xa500
147 // assumes
148 // achar0  == 0xa5
149 // aint0  == 0xa500
150
151 void c_a500(void)
152 {
153
154   if(achar0 == 0xa500)
155     failures++;
156
157   if(aint0 != 0xa500)
158     failures++;
159
160   if(aint0 == 0xa400)
161     failures++;
162
163   if(aint0 == 0x00a5)
164     failures++;
165
166 }
167
168 // compare to 0xabcd
169 // assumes
170 // achar0  == 0xa5
171 // aint0  == 0xabcd
172
173 void c_abcd(void)
174 {
175
176   if(achar0 == 0xabcd)
177     failures++;
178
179   if(aint0 != 0xabcd)
180     failures++;
181
182   if(aint0 == 0xab00)
183     failures++;
184
185   if(aint0 == 0x00cd)
186     failures++;
187
188   if(aint0 == 0x05cd)
189     failures++;
190
191   if(aint0 == 0xab05)
192     failures++;
193
194   if(aint0 == 0xab01)
195     failures++;
196
197   if(aint0 == 0x01cd)
198     failures++;
199
200   //  if(aint0 == 0x1234abcd)
201     //    failures++;
202
203 }
204
205 // assumes achar1 == 0
206 void c_ifelse1(void)
207 {
208
209   if(achar0)
210     achar0 = achar1;
211   else
212     achar0 = 0;
213
214   if(achar0)
215     failures++;
216 }
217
218 void
219 main (void)
220 {
221
222   aint1 = 1;
223   achar1 = 1;
224   c_0();
225   c_1();
226
227   aint0 = 2;
228   achar0 = 2;
229   c_2();
230
231   aint0 = 0xff;
232   achar0 = 0xff;
233   c_ff();
234
235   aint0 = 0xa5;
236   achar0 = 0xa5;
237   c_a5();
238
239   aint0 = 0xabcd;
240   c_abcd();
241
242   achar0 = 0;
243   achar1 = 0;
244   c_ifelse1();
245
246   achar0 = 1;
247   c_ifelse1();
248
249   success = failures;
250   done ();
251 }