1 /**
2    compare3.c
3    regression testing program for comparing literals to variables
4 */
5 #include <testfwk.h>
6 
7 unsigned int aint0 = 0;
8 unsigned int aint1 = 0;
9 unsigned char achar0 = 0;
10 unsigned char achar1 = 0;
11 
12 // compare to 0
13 // assumes
14 // achar0 == 0
15 // achar1 != 0
16 // aint0  == 0
17 // aint1  != 0
18 
c_0(void)19 void c_0(void)
20 {
21 
22   ASSERT(!(achar0 != 0));
23 
24   ASSERT(!(achar0));
25 
26   ASSERT(!(achar1 == 0));
27 
28   ASSERT(!(!achar1));
29 
30   ASSERT(!(aint0 != 0));
31 
32   ASSERT(!(aint0));
33 
34   ASSERT(!(aint1 == 0));
35 
36   ASSERT(!(!aint1));
37 
38 }
39 
40 // compare to 1
41 // assumes
42 // achar0 != 1
43 // achar1 == 1
44 // aint0  != 1
45 // aint1  == 1
46 
c_1(void)47 void c_1(void)
48 {
49 
50   ASSERT(!(achar0 == 1));
51 
52   ASSERT(!(achar1 != 1));
53 
54   ASSERT(!(aint0 == 1));
55 
56   ASSERT(!(aint1 != 1));
57 
58 }
59 
60 // compare to 2
61 // assumes
62 // achar0 == 2
63 // aint0  == 2
64 
c_2(void)65 void c_2(void)
66 {
67 
68   ASSERT(!(achar0 != 2));
69 
70   ASSERT(!(aint0 != 2));
71 
72 }
73 
74 // compare to 0xff
75 // assumes
76 // achar0 == 0xff
77 // aint0  == 0xff
78 
c_ff(void)79 void c_ff(void)
80 {
81 
82   ASSERT(!(achar0 != 0xff));
83 
84   ASSERT(!(aint0 != 0xff));
85 
86   ASSERT(!(aint0 == 0xfe));
87 
88   ASSERT(!(aint0 == 0xff00U));
89 
90 }
91 
92 
93 // compare to 0x00a5
94 // assumes
95 // achar0  == 0xa5
96 // aint0  == 0x00a5
97 
c_a5(void)98 void c_a5(void)
99 {
100 
101   ASSERT(!(achar0 != 0xa5));
102 
103   ASSERT(!(aint0 != 0xa5));
104 
105   ASSERT(!(aint0 == 0xa4));
106 
107   ASSERT(!(aint0 == 0xa500U));
108 
109 }
110 
111 // compare to 0xa500
112 // assumes
113 // achar0  == 0xa5
114 // aint0  == 0xa500
115 
c_a500(void)116 void c_a500(void)
117 {
118 
119   ASSERT(!(achar0 == (unsigned char)0xa500U));
120 
121   ASSERT(!(aint0 != 0xa500U));
122 
123   ASSERT(!(aint0 == 0xa400U));
124 
125   ASSERT(!(aint0 == 0x00a5));
126 
127 }
128 
129 // compare to 0xabcd
130 // assumes
131 // achar0  == 0xa5
132 // aint0  == 0xabcd
133 
134 #ifndef __SDCC_pdk14 // Lack of memory
c_abcd(void)135 void c_abcd(void)
136 {
137 
138   ASSERT(!(achar0 == (unsigned char)0xabcdU));
139 
140   ASSERT(!(aint0 != 0xabcdU));
141 
142   ASSERT(!(aint0 == 0xab00U));
143 
144   ASSERT(!(aint0 == 0x00cd));
145 
146   ASSERT(aint0 == (unsigned short int)0x1234abcdU);
147 
148 }
149 #endif
150 
151 void
testCompare3(void)152 testCompare3 (void)
153 {
154 #ifndef __SDCC_pdk14 // Lack of memory
155   aint1 = 1;
156   achar1 = 1;
157   c_0();
158   c_1();
159 
160   aint0 = 2;
161   achar0 = 2;
162   c_2();
163 
164   aint0 = 0xff;
165   achar0 = 0xff;
166   c_ff();
167 
168   aint0 = 0xa5;
169   achar0 = 0xa5;
170   c_a5();
171 
172   aint0 = 0xabcd;
173   c_abcd();
174 #endif
175 }
176