1 /** constant range tests.
23 testConstantRange (void)
25 ASSERT (! (INT8_MIN - 1 == s8));
26 ASSERT (! (INT8_MAX + 1 == s8));
27 ASSERT ( (INT8_MIN - 1 != s8));
28 ASSERT ( (INT8_MAX + 1 != s8));
29 ASSERT ( (INT8_MIN - 1 < s8));
30 ASSERT (! (INT8_MAX < s8));
31 ASSERT ( (INT8_MIN <= s8));
32 ASSERT (! (INT8_MAX <= s8));
33 ASSERT (! (INT8_MIN > s8));
34 ASSERT ( (INT8_MAX + 1 > s8));
35 ASSERT (! (INT8_MIN - 1 >= s8));
36 ASSERT ( (INT8_MAX >= s8));
38 ASSERT (! ( 0 - 1 == u8));
39 ASSERT (! (UINT8_MAX + 1 == u8));
40 ASSERT ( ( 0 - 1 != u8));
41 ASSERT ( (UINT8_MAX + 1 != u8));
42 ASSERT ( ( 0 - 1 < u8));
43 ASSERT (! (UINT8_MAX < u8));
45 ASSERT (! (UINT8_MAX + 1 <= u8));
47 ASSERT ( (UINT8_MAX + 1 > u8));
48 ASSERT (! ( 0 - 1 >= u8));
49 ASSERT ( (UINT8_MAX >= u8));
51 /* force extension to long to avoid int (16 bit) overflow */
52 ASSERT (! (INT16_MIN - 1L == s16));
53 ASSERT (! (INT16_MAX + 1L == s16));
54 ASSERT ( (INT16_MIN - 1L != s16));
55 ASSERT ( (INT16_MAX + 1L != s16));
56 ASSERT ( (INT16_MIN - 1L < s16));
57 ASSERT (! (INT16_MAX < s16));
58 ASSERT ( (INT16_MIN <= s16));
59 ASSERT (! (INT16_MAX <= s16));
60 ASSERT (! (INT16_MIN > s16));
61 ASSERT ( (INT16_MAX + 1L > s16));
62 ASSERT (! (INT16_MIN - 1L >= s16));
63 ASSERT ( (INT16_MAX >= s16));
65 ASSERT (! ( 0 - 1 == u16));
66 ASSERT (! (UINT16_MAX + 1L == u16));
67 ASSERT ( ( 0 - 1 != u16));
68 ASSERT ( (UINT16_MAX + 1L != u16));
69 ASSERT ( ( 0 - 1 < u16));
70 ASSERT (! (UINT16_MAX < u16));
71 ASSERT ( ( 0 <= u16));
72 ASSERT (! (UINT16_MAX + 1L <= u16));
73 ASSERT (! ( 0 > u16));
74 ASSERT ( (UINT16_MAX + 1L > u16));
75 ASSERT (! ( 0 - 1 >= u16));
76 ASSERT ( (UINT16_MAX >= u16));
78 /* sdcc can't hold a number (INT32_MIN - 1) or (INT32_MAX + 1),
79 there's no 'double' or 'long long' */
80 /* ASSERT (! (INT32_MIN - 1 == s32)); */
81 /* ASSERT (! (INT32_MAX + 1 == s32)); */
82 /* ASSERT ( (INT32_MIN - 1 != s32)); */
83 /* ASSERT ( (INT32_MAX + 1 != s32)); */
84 /* ASSERT ( (INT32_MIN - 1 < s32)); */
85 ASSERT (! (INT32_MAX < s32));
86 ASSERT ( (INT32_MIN <= s32));
87 ASSERT (! (INT32_MAX <= s32));
88 ASSERT (! (INT32_MIN > s32));
89 /* ASSERT ( (INT32_MAX + 1 > s32)); */
90 /* ASSERT (! (INT32_MIN - 1 >= s32)); */
91 ASSERT ( (INT32_MAX >= s32));
93 ASSERT (! ( 0 - 1 == u32));
94 /* ASSERT (! (UINT32_MAX + 1 == u32)); */
95 ASSERT ( ( 0 - 1 != u32));
96 /* ASSERT ( (UINT32_MAX + 1 != u32)); */
97 ASSERT ( ( 0 - 1 < u32));
98 ASSERT (! (UINT32_MAX < u32));
99 ASSERT ( ( 0 <= u32));
100 /* ASSERT (! (UINT32_MAX + 1 <= u32)); */
101 ASSERT (! ( 0 > u32));
102 /* ASSERT ( (UINT32_MAX + 1 > u32)); */
103 ASSERT (! ( 0 - 1 >= u32));
104 ASSERT ( (UINT32_MAX >= u32));
110 #if defined(PORT_HOST)
111 volatile bool sb, ub;
113 volatile signed bool sb;
114 volatile unsigned bool ub;
120 ASSERT (! (-1 == sb));
121 ASSERT ( ( 0 == sb));
122 ASSERT (! ( 1 == sb));
124 ASSERT ( (-1 != sb));
125 ASSERT (! ( 0 != sb));
126 ASSERT ( ( 1 != sb));
129 ASSERT (! ( 0 < sb));
131 ASSERT ( ( 0 <= sb));
132 ASSERT (! ( 1 <= sb));
134 ASSERT (! ( 0 > sb));
137 ASSERT (! (-1 >= sb));
138 ASSERT ( ( 0 >= sb));
141 ASSERT (! (-1 == ub));
142 ASSERT ( ( 0 == ub));
143 ASSERT (! ( 1 == ub));
145 ASSERT ( (-1 != ub));
146 ASSERT (! ( 0 != ub));
147 ASSERT ( ( 1 != ub));
150 ASSERT (! ( 0 < ub));
152 ASSERT ( ( 0 <= ub));
153 ASSERT (! ( 1 <= ub));
155 ASSERT (! ( 0 > ub));
158 ASSERT (! (-1 >= ub));
159 ASSERT ( ( 0 >= ub));
177 ASSERT (! (-2 == str.sb1));
178 ASSERT (! (-1 == str.sb1));
179 ASSERT ( ( 0 == str.sb1));
180 ASSERT (! ( 1 == str.sb1));
182 ASSERT (! (-1 == str.ub1));
183 ASSERT ( ( 0 == str.ub1));
184 ASSERT (! ( 1 == str.ub1));
185 ASSERT (! ( 2 == str.ub1));
187 ASSERT (! (-5 == str.sb3));
188 ASSERT (! (-4 == str.sb3));
189 ASSERT ( ( 0 == str.sb3));
190 ASSERT (! ( 3 == str.sb3));
191 ASSERT (! ( 4 == str.sb3));
193 ASSERT (! (-1 == str.ub3));
194 ASSERT ( ( 0 == str.ub3));
195 ASSERT (! ( 7 == str.ub3));
196 ASSERT (! ( 8 == str.ub3));