Imported Upstream version 2.9.0
[debian/cc1111] / support / regression / tests / bug-467035.c
1 /* Tests a bug in for loops where b in plot_point is always 1.
2    Stripped down from the gbdk filltest.c
3  */
4 #include <testfwk.h>
5
6 typedef unsigned char UBYTE;
7
8 UBYTE 
9 getpix(UBYTE x, UBYTE y)
10 {
11   UNUSED(x);
12   UNUSED(y);
13
14   return 0;
15 }
16
17 void 
18 color(UBYTE a, UBYTE b, UBYTE c)
19 {
20   UNUSED(a & b & c);
21 }
22
23 void 
24 line(UBYTE a, UBYTE b, UBYTE c, UBYTE d)
25 {
26   UNUSED(a & b & c & d);
27 }
28
29 void 
30 plot_point(UBYTE a, UBYTE b)
31 {
32   static UBYTE ea, eb;
33
34   ASSERT(b == eb);
35   ASSERT(a == ea);
36
37   ea++;
38   if (ea > 12) {
39     ea = 0;
40     eb++;
41   }
42   LOG(("(a, b) -> (%u, %u)\n", (unsigned int)a, (unsigned int)b));
43 }
44
45 void
46 testForMerge(void)
47 {
48   UBYTE  a,b;
49
50   for (b=0; b<=10U; b++) {
51     for (a=0; a<=12U; a++) {
52       color(getpix(a,b+1), 0, 1);
53       plot_point(a,b);
54     }
55     color(0, 0, 1);
56   }
57 }