added tests as prepared by oliver
This commit is contained in:
91
test/val/switch1.c
Normal file
91
test/val/switch1.c
Normal file
@@ -0,0 +1,91 @@
|
||||
/*
|
||||
!!DESCRIPTION!!
|
||||
!!ORIGIN!! SDCC regression tests
|
||||
!!LICENCE!! GPL, read COPYING.GPL
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <limits.h>
|
||||
|
||||
unsigned char success=0;
|
||||
unsigned char failures=0;
|
||||
unsigned char dummy=0;
|
||||
|
||||
#ifdef SUPPORT_BIT_TYPES
|
||||
bit bit0 = 0;
|
||||
#endif
|
||||
unsigned int aint0 = 0;
|
||||
unsigned int aint1 = 0;
|
||||
unsigned char achar0 = 0;
|
||||
unsigned char achar1 = 0;
|
||||
|
||||
void done()
|
||||
{
|
||||
dummy++;
|
||||
}
|
||||
|
||||
void switch1(void)
|
||||
{
|
||||
switch(achar0) {
|
||||
case 0:
|
||||
achar0 = 9;
|
||||
break;
|
||||
case 1:
|
||||
achar0 = 18;
|
||||
break;
|
||||
|
||||
default:
|
||||
achar0 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void switch2(void)
|
||||
{
|
||||
switch(achar1) {
|
||||
case 0: achar0 = 9; break;
|
||||
case 1: achar0 = 8; break;
|
||||
case 2: achar0 = 7; break;
|
||||
case 3: achar0 = 6; break;
|
||||
case 4: achar0 = 5; break;
|
||||
case 5: achar0 = 4; break;
|
||||
case 6: achar0 = 3; break;
|
||||
case 7: achar0 = 2; break;
|
||||
case 8: achar0 = 1; break;
|
||||
case 9: achar0 = 0; break;
|
||||
case 10: achar0 = 9; break;
|
||||
case 11: achar0 = 8; break;
|
||||
case 12: achar0 = 7; break;
|
||||
default: achar0 = 0xff; break;
|
||||
}
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
achar0 = 0;
|
||||
switch1();
|
||||
if(achar0 != 9)
|
||||
failures++;
|
||||
|
||||
switch1();
|
||||
if(achar0 != 0)
|
||||
failures++;
|
||||
|
||||
achar0++;
|
||||
|
||||
switch1();
|
||||
if(achar0 != 18)
|
||||
failures++;
|
||||
|
||||
for(achar1=0; achar1<10;achar1++){
|
||||
switch2();
|
||||
if(achar0 != (9-achar1))
|
||||
failures++;
|
||||
|
||||
}
|
||||
|
||||
success=failures;
|
||||
done();
|
||||
printf("failures: %d\n",failures);
|
||||
|
||||
return failures;
|
||||
}
|
||||
Reference in New Issue
Block a user