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