]> git.sur5r.net Git - cc65/blob - test/val/compare1.c
All regression-tests subdirectories are cleaned before the first test starts, so...
[cc65] / test / val / compare1.c
1 /*
2   !!DESCRIPTION!! test compare
3   !!ORIGIN!!      SDCC regression tests
4   !!LICENCE!!     GPL, read COPYING.GPL
5 */
6
7 #include <stdio.h>
8 #include <limits.h>
9
10 /*
11    compare.c
12 */
13
14 #ifdef SUPPORT_BIT_TYPES
15 bit bit0 = 0;
16 bit bit1 = 0;
17 #endif
18
19 unsigned char success = 0;
20 unsigned char failures = 0;
21 unsigned char dummy = 0;
22
23 unsigned char achar0 = 0;
24 unsigned char achar1 = 0;
25 unsigned int aint0 = 0;
26 unsigned int aint1 = 0;
27
28 char schar0 = 0;
29 char schar1 = 0;
30
31 void
32 done ()
33 {
34   dummy++;
35 }
36
37 /* achar0 should be zero */
38
39 void
40 compare_char_to_lits1 (void)
41 {
42   if (achar0)
43     failures++;
44
45   if (achar0 == 1)
46     failures++;
47
48   if (achar0 == 7)
49     failures++;
50
51   if (achar0 != 0)
52     failures++;
53 }
54
55 /* achar0 should be `5' */
56 void
57 compare_char_to_lits2 (void)
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 /* achar0 should equal achar1 */
73 void
74 compare_char_to_char1 (void)
75 {
76   if (achar0 != achar1)
77     failures++;
78
79   if (schar0 != schar1)
80     failures++;
81 }
82
83 /* achar0 should be different than achar1 */
84 void
85 compare_char_to_char2 (void)
86 {
87   if (achar0 == achar1)
88     failures++;
89 }
90
91 /* aint0 should be zero */
92
93 void
94 compare_int_to_lits1 (void)
95 {
96   if (aint0)
97     failures++;
98
99   if (aint0 == 1)
100     failures++;
101
102   if (aint0 == 7)
103     failures++;
104
105   if (aint0 != 0)
106     failures++;
107 }
108
109 /* aint0 should be `5' */
110 void
111 compare_int_to_lits2 (void)
112 {
113   if (!aint0)
114     failures++;
115
116   if (aint0 == 1)
117     failures++;
118
119   if (aint0 == 7)
120     failures++;
121
122   if (aint0 != 5)
123     failures++;
124 }
125
126 /* aint0 should be `0x1234' */
127 void
128 compare_int_to_lits3 (void)
129 {
130   if (!aint0)
131     failures++;
132
133   if (aint0 == 1)
134     failures++;
135
136   if (aint0 == 7)
137     failures++;
138
139   if (aint0 != 0x1234)
140     failures++;
141 }
142
143 /* aint0 should equal aint1 */
144 void
145 compare_int_to_int1 (void)
146 {
147   if (aint0 != aint1)
148     failures++;
149 }
150
151 /* aint0 should be different than aint1 */
152 void
153 compare_int_to_int2 (void)
154 {
155   if (aint0 == aint1)
156     failures++;
157 }
158
159 int
160 main (void)
161 {
162   compare_char_to_lits1 ();
163   compare_char_to_char1 ();
164   achar0 = 5;
165   compare_char_to_lits2 ();
166   compare_char_to_char2 ();
167
168   compare_int_to_lits1 ();
169   aint0 = 5;
170   compare_int_to_lits2 ();
171   aint0 = 0x1234;
172   compare_int_to_lits3 ();
173   compare_int_to_int2 ();
174   aint0 = 0;
175   compare_int_to_int1 ();
176
177   success = failures;
178   done ();
179
180   printf("failures: %d\n",failures);
181
182   return failures;
183 }