]> git.sur5r.net Git - cc65/blob - test/val/xor.c
All regression-tests subdirectories are cleaned before the first test starts, so...
[cc65] / test / val / xor.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 unsigned char achar0 = 0;
15 unsigned char achar1 = 0;
16 unsigned char achar2 = 0;
17
18 void done()
19 {
20   dummy++;
21 }
22
23 void xor_chars_0_1(void)
24 {
25   achar2 = achar0 ^ achar1;
26
27   achar0 = achar0 ^ 0x1;
28
29   achar1 = achar0 ^ achar1 ^ 4;
30 }
31
32 void xor_if(void)
33 {
34   if(achar0 ^ achar1) 
35     failures++;
36
37   achar0 ^= 0xff;
38
39   if( !(achar0 ^ achar1) ) 
40     failures++;
41 }
42
43 int  main(void)
44 {
45   xor_chars_0_1();
46
47   if(achar2)
48     failures++;
49
50   if(achar0 != 1)
51     failures++;
52
53   if(achar1 != 5)
54     failures++;
55
56   achar0 = achar1;
57   xor_if();
58
59   success = failures;
60   done();
61   printf("failures: %d\n",failures);
62
63   return failures;
64 }