* device/include/pic16/adc.h,
[fw/sdcc] / src / regression / compare7.c
index 3ea4bd6dbba105ada41f392503acf1a97a49a2b1..5f0f6ad5aa29cce340ba28844fa00f3f5c9a65f3 100644 (file)
@@ -1,3 +1,5 @@
+#include "gpsim_assert.h"
+#include "picregs.h"
 // Signed comparisons of the form:  (variable<LIT)
 //
 // This regression test exercises all of the boundary
@@ -6,26 +8,34 @@
 // and each one has an astonishing capability of failing
 // a boundary condition.
 
-unsigned char success = 0;
 unsigned char failures = 0;
-unsigned char dummy = 0;
 unsigned char result = 0;
 
 //bit bit0 = 0;
-long int0 = 0;
-long int1 = 0;
+int int0 = 0;
+int int1 = 0;
 signed char char0 = 0;
 signed char char1 = 0;
 char long0 = 0;
 char long1 = 0;
 
+
+/* *** NOTE ***  This particular test takes quite a while to run 
+ * ~ 10,000,000 instruction cycles. (2.5 seconds on a 20Mhz PIC).
+ * The WDT will reset the CPU if it's enabled. So disable it...
+*/
+
+typedef unsigned int word;
+
+//word at 0x2007  CONFIG = wdt_off & pwrte_on;
+
 void
-done ()
+done()
 {
-  dummy++;
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
-
 void c_char_lt_lit1(unsigned char expected_result)
 {
   result = 0;
@@ -188,6 +198,7 @@ void int_compare1(void)
 
   for(int0 = 0x201; int0 != 0x7fff; int0++)
     c_int_lt_lit1(0);
+
 }
 
 
@@ -293,6 +304,5 @@ main (void)
   int_compare1();
   int_compare2();
 
-  success = failures;
   done ();
 }