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