Imported Upstream version 2.9.0
[debian/cc1111] / src / regression / switch1.c
1 #include "gpsim_assert.h"
2 unsigned char failures=0;
3
4 unsigned int aint0 = 0;
5 unsigned int aint1 = 0;
6 unsigned char achar0 = 0;
7 unsigned char achar1 = 0;
8
9
10 void
11 done()
12 {
13   ASSERT(MANGLE(failures) == 0);
14   PASSED();
15 }
16
17 void switch1(void)
18 {
19
20
21   switch(achar0) {
22   case 0:
23     achar0 = 9;
24     break;
25   case 1:
26     achar0 = 18;
27     break;
28
29   default:
30     achar0 = 0;
31   }
32
33
34 }
35
36 void switch2(void)
37 {
38
39   switch(achar1) {
40   case 0:    achar0 = 9;    break;
41   case 1:    achar0 = 8;    break;
42   case 2:    achar0 = 7;    break;
43   case 3:    achar0 = 6;    break;
44   case 4:    achar0 = 5;    break;
45   case 5:    achar0 = 4;    break;
46   case 6:    achar0 = 3;    break;
47   case 7:    achar0 = 2;    break;
48   case 8:    achar0 = 1;    break;
49   case 9:    achar0 = 0;    break;
50   case 10:    achar0 = 9;    break;
51   case 11:    achar0 = 8;    break;
52   case 12:    achar0 = 7;    break;
53   default:    achar0 = 0xff;    break;
54   }
55
56 }
57
58 void main(void)
59 {
60
61   achar0 = 0;
62   switch1();
63   if(achar0 != 9)
64     failures++;
65
66   switch1();
67   if(achar0 != 0)
68     failures++;
69
70   achar0++;
71
72   switch1();
73   if(achar0 != 18)
74     failures++;
75
76   for(achar1=0; achar1<10;achar1++){
77     switch2();
78     if(achar0 != (9-achar1))
79       failures++;
80
81   }
82
83   done();
84 }