]> git.sur5r.net Git - cc65/blob - test/val/bool1.c
All regression-tests subdirectories are cleaned before the first test starts, so...
[cc65] / test / val / bool1.c
1 /*
2   !!DESCRIPTION!!
3   !!ORIGIN!!      SDCC regression tests
4   !!LICENCE!!     GPL, read COPYING.GPL
5 */
6
7 #include <stdio.h>
8 #include <limits.h>
9
10 unsigned char success=0;
11 unsigned char failures=0;
12 unsigned char dummy=0;
13
14 #ifdef SUPPORT_BIT_TYPES
15 bit bit0 = 0;
16 #endif
17 unsigned int aint0 = 0;
18 unsigned int aint1 = 0;
19 unsigned char achar0 = 0;
20 unsigned char achar1 = 0;
21
22 void done()
23 {
24   dummy++;
25 }
26
27 void bool_or1(void)
28 {
29   if( (achar0 >0) || (achar1 >0 ))
30     failures++;
31 }
32
33 void bool_or2(void)
34 {
35   if( achar0 || achar1)
36     failures++;
37 }
38
39 void bool_test1(void)
40 {
41   if( (achar0==0) || achar1)
42     failures++;
43 }
44
45 void bool_test2(void)
46 {
47   if( (achar0==0) || aint0)
48     failures++;
49 }
50
51 void bool_and1(void)
52 {
53   if( achar0 && achar1)
54     failures++;
55 }
56
57 void bin_or1(void)
58 {
59   char t;
60
61   t = achar0 | achar1;
62   if(t)
63     failures++;
64 }
65
66 void bin_xor1(void)
67 {
68   if(achar0 ^ achar1)
69     failures++;
70 }
71
72 void bool_test3(void)
73 {
74   if((achar0 == 0x42) || (achar1 == 42))
75     failures++;
76 }
77
78 void bool_or_lit1(void)
79 {
80   achar0 |= 0x0f;
81
82   if(achar0 > 0x10)
83     failures++;
84
85   if( (achar0 | 0x10) > 0xf0)
86     failures++;
87 }
88
89 void bool_and_lit1(void)
90 {
91   achar0 &= 0xf0;
92
93   if(achar0 > 0x10)
94     failures++;
95
96   if( (achar0 & 0x10) > 0xf0)
97     failures++;
98
99   achar0 &= 0xef;
100 }
101
102 int  main(void)
103 {
104   bool_or1();
105   bool_or2();
106   bool_and1();
107   bin_or1();
108   bin_xor1();
109
110   achar0++;
111   bool_and1();
112   bool_test1();
113   bool_test2();
114   bool_test3();
115
116   achar0--; achar1++;
117   bool_and1();
118
119   achar0=0;
120   achar1=0;
121
122   bool_or_lit1();
123   bool_and_lit1();
124
125   success = failures;
126   done();
127   printf("failures: %d\n",failures);
128
129   return failures;
130 }