-//#include "p16c84.h"
+#include "gpsim_assert.h"
+
// Addition tests
/* bit types are not ANSI - so provide a way of disabling bit types
* if this file is used to test other compilers besides SDCC */
-#define SUPPORT_BIT_TYPES 1
+#define SUPPORT_BIT_TYPES 0
/* Some compilers that support bit types do not support bit arithmetic
* (like bitx = bity + bitz;) */
#define SUPPORT_BIT_ARITHMETIC 1
-unsigned char success=0;
unsigned char failures=0;
-unsigned char dummy=0;
#if SUPPORT_BIT_TYPES
unsigned char achar3 = 0;
unsigned char *acharP = 0;
-void done()
+void
+done()
{
-
- dummy++;
-
+ ASSERT(MANGLE(failures) == 0);
+ PASSED();
}
void add_lit2uchar(void)
void add_uchar2uchar2(void)
{
-
-
achar0++;
achar0 = achar0 + 1;
achar0 = achar0 + 2;
achar3 = achar2 + achar1 + achar0;
if(achar3 != 92)
failures++;
-
}
#if SUPPORT_BIT_TYPES
void add_bits(void)
{
-
bit1 = bit0;
bit0 = 1;
#if SUPPORT_BIT_ARITHMETIC
bit2 = bit1+bit3;
- if(bit2)
+ if(!bit2)
failures++;
bit3 = bit4+bit5+bit6+bit7+bit0;
/* add_bit2uchar(void) - assumes bit0 = 1, achar0 = 7 */
+#if SUPPORT_BIT_TYPES
void add_bit2uchar(void)
{
-
achar0 += bit0;
if(achar0 != 8)
if(achar0 == bit0)
failures++;
-
}
void add_bit2uint(void)
{
-
if(aint0 != bit11)
failures++;
aint0 += bit0;
if(aint0!=1)
failures++;
-
}
+#endif
+
void main(void)
{
-
add_lit2uchar();
+ ASSERT(MANGLE(failures) == 0);
achar0=16;
achar1=0;
add_uchar2uchar();
+ ASSERT(MANGLE(failures) == 0);
achar0 = 0;
achar1 = 32;
add_uchar2uchar2();
+ ASSERT(MANGLE(failures) == 0);
#if SUPPORT_BIT_TYPES
add_bits();
add_bit2uchar();
add_bit2uint();
#endif
+ ASSERT(MANGLE(failures) == 0);
-
- success = failures;
done();
}