gbdk-releases/sdcc/src/regression/compare3.c
2015-01-10 16:25:09 +01:00

252 lines
2.7 KiB
C

//
// compare3.c
// regression testing program for comparing literals to variables
//
unsigned char success = 0;
unsigned char failures = 0;
unsigned char dummy = 0;
bit bit0 = 0;
unsigned int aint0 = 0;
unsigned int aint1 = 0;
unsigned char achar0 = 0;
unsigned char achar1 = 0;
void
done ()
{
dummy++;
}
// compare to 0
// assumes
// achar0 == 0
// achar1 != 0
// aint0 == 0
// aint1 != 0
void c_0(void)
{
if(achar0 != 0)
failures++;
if(achar0)
failures++;
if(achar1 == 0)
failures++;
if(!achar1)
failures++;
if(aint0 != 0)
failures++;
if(aint0)
failures++;
if(aint1 == 0)
failures++;
if(!aint1)
failures++;
}
// compare to 1
// assumes
// achar0 != 1
// achar1 == 1
// aint0 != 1
// aint1 == 1
void c_1(void)
{
if(achar0 == 1)
failures++;
if(achar1 != 1)
failures++;
if(aint0 == 1)
failures++;
if(aint1 != 1)
failures++;
}
// compare to 2
// assumes
// achar0 == 2
// aint0 == 2
void c_2(void)
{
if(achar0 != 2)
failures++;
if(aint0 != 2)
failures++;
}
// compare to 0xff
// assumes
// achar0 == 0xff
// aint0 == 0xff
void c_ff(void)
{
if(achar0 != 0xff)
failures++;
if(aint0 != 0xff)
failures++;
if(aint0 == 0xfe)
failures++;
if(aint0 == 0xff00)
failures++;
}
// compare to 0x00a5
// assumes
// achar0 == 0xa5
// aint0 == 0x00a5
void c_a5(void)
{
if(achar0 != 0xa5)
failures++;
if(aint0 != 0xa5)
failures++;
if(aint0 == 0xa4)
failures++;
if(aint0 == 0xa500)
failures++;
}
// compare to 0xa500
// assumes
// achar0 == 0xa5
// aint0 == 0xa500
void c_a500(void)
{
if(achar0 == 0xa500)
failures++;
if(aint0 != 0xa500)
failures++;
if(aint0 == 0xa400)
failures++;
if(aint0 == 0x00a5)
failures++;
}
// compare to 0xabcd
// assumes
// achar0 == 0xa5
// aint0 == 0xabcd
void c_abcd(void)
{
if(achar0 == 0xabcd)
failures++;
if(aint0 != 0xabcd)
failures++;
if(aint0 == 0xab00)
failures++;
if(aint0 == 0x00cd)
failures++;
if(aint0 == 0x05cd)
failures++;
if(aint0 == 0xab05)
failures++;
if(aint0 == 0xab01)
failures++;
if(aint0 == 0x01cd)
failures++;
// if(aint0 == 0x1234abcd)
// failures++;
}
// assumes achar1 == 0
void c_ifelse1(void)
{
if(achar0)
achar0 = achar1;
else
achar0 = 0;
if(achar0)
failures++;
}
void
main (void)
{
aint1 = 1;
achar1 = 1;
c_0();
c_1();
aint0 = 2;
achar0 = 2;
c_2();
aint0 = 0xff;
achar0 = 0xff;
c_ff();
aint0 = 0xa5;
achar0 = 0xa5;
c_a5();
aint0 = 0xabcd;
c_abcd();
achar0 = 0;
achar1 = 0;
c_ifelse1();
achar0 = 1;
c_ifelse1();
success = failures;
done ();
}