* src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
authorborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 1 Feb 2006 21:14:02 +0000 (21:14 +0000)
committerborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 1 Feb 2006 21:14:02 +0000 (21:14 +0000)
  src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
  src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
  src/regression/bool1.c, src/regression/bool2.c,
  src/regression/bool3.c, src/regression/call1.c,
  src/regression/compare.c, src/regression/compare10.c,
  src/regression/compare2.c, src/regression/compare3.c,
  src/regression/compare4.c, src/regression/compare5.c,
  src/regression/compare6.c, src/regression/compare7.c,
  src/regression/compare8.c, src/regression/compare9.c,
  src/regression/configword.c, src/regression/for.c,
  src/regression/inline.c, src/regression/mult1.c,
  src/regression/nestfor.c, src/regression/or1.c,
  src/regression/pointer1.c, src/regression/ptrfunc.c,
  src/regression/rotate1.c, src/regression/rotate2.c,
  src/regression/rotate3.c, src/regression/rotate4.c,
  src/regression/rotate5.c, src/regression/rotate6.c,
  src/regression/rotate7.c, src/regression/string1.c,
  src/regression/struct1.c, src/regression/sub.c,
  src/regression/sub2.c, src/regression/switch1.c,
  src/regression/while.c, src/regression/xor.c,
  src/regression/create_stc, src/regression/simulate,
  src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
  regression tests
* src/regression/gpsim_assert.h: added

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4030 4a8a32a2-be11-0410-ad9d-d568d2c75423

51 files changed:
ChangeLog
src/regression/Makefile
src/regression/add.c
src/regression/add2.c
src/regression/add3.c
src/regression/add4.c
src/regression/and1.c
src/regression/and2.c
src/regression/arrays.c
src/regression/b.c
src/regression/bank1.c
src/regression/bool1.c
src/regression/bool2.c
src/regression/bool3.c
src/regression/call1.c
src/regression/compare.c
src/regression/compare10.c
src/regression/compare2.c
src/regression/compare3.c
src/regression/compare4.c
src/regression/compare5.c
src/regression/compare6.c
src/regression/compare7.c
src/regression/compare8.c
src/regression/compare9.c
src/regression/configword.c
src/regression/create_stc
src/regression/for.c
src/regression/gpsim_assert.h [new file with mode: 0644]
src/regression/inline.c
src/regression/mult1.c
src/regression/nestfor.c
src/regression/or1.c
src/regression/pointer1.c
src/regression/ptrfunc.c
src/regression/rotate1.c
src/regression/rotate2.c
src/regression/rotate3.c
src/regression/rotate4.c
src/regression/rotate5.c
src/regression/rotate6.c
src/regression/rotate7.c
src/regression/rt.sh
src/regression/simulate
src/regression/string1.c
src/regression/struct1.c
src/regression/sub.c
src/regression/sub2.c
src/regression/switch1.c
src/regression/while.c
src/regression/xor.c

index 0e4e6e4889c5aaa10e115ecbdbf0762645c82f98..26df37afac9c6d8aab0f12af08282bf1235b40b2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+2006-02-01 Borut Razem <borut.razem AT siol.net>
+
+       * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
+         src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
+         src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
+         src/regression/bool1.c, src/regression/bool2.c,
+         src/regression/bool3.c, src/regression/call1.c,
+         src/regression/compare.c, src/regression/compare10.c,
+         src/regression/compare2.c, src/regression/compare3.c,
+         src/regression/compare4.c, src/regression/compare5.c,
+         src/regression/compare6.c, src/regression/compare7.c,
+         src/regression/compare8.c, src/regression/compare9.c,
+         src/regression/configword.c, src/regression/for.c,
+         src/regression/inline.c, src/regression/mult1.c,
+         src/regression/nestfor.c, src/regression/or1.c,
+         src/regression/pointer1.c, src/regression/ptrfunc.c,
+         src/regression/rotate1.c, src/regression/rotate2.c,
+         src/regression/rotate3.c, src/regression/rotate4.c,
+         src/regression/rotate5.c, src/regression/rotate6.c,
+         src/regression/rotate7.c, src/regression/string1.c,
+         src/regression/struct1.c, src/regression/sub.c,
+         src/regression/sub2.c, src/regression/switch1.c,
+         src/regression/while.c, src/regression/xor.c,
+         src/regression/create_stc, src/regression/simulate,
+         src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
+         regression tests
+       * src/regression/gpsim_assert.h: added
+
 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
 
        * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
index 3e096e7817eac2e18f72b01a00c0107d738dc7ba..c072227d0e7071899cf4838a2231cbbac5cef3b6 100644 (file)
 # make cleano
 #  - removes either the .stc, .asm, .cod or .o files
 
+# verboseness
+#Q ?= # be verbose
+Q ?= @ # be quiet
 
-CC = ../../bin/sdcc
+CC = sdcc
 LINKER = gplink
-TARGETPIC = 16f873
-TARGETPIC2 = 16f877
-CFLAGS = -mpic14 -c -pp$(TARGETPIC)
+TARGETPIC = 16f877
+CFLAGS = -I ../../device/include/pic -mpic14 -c -pp$(TARGETPIC)
 
 .SUFFIXES: .asm .c .cod .stc
 
@@ -111,12 +113,12 @@ all:      test
 
 # The asm files are generated by sdcc
 .c.o:
-       $(CC) $(CFLAGS)  $*.c
+       $(Q)$(CC) $(CFLAGS)  $*.c
 
 # The .cod files are generated by gpasm
 # these get loaded by gpsim.
 .o.cod:
-       $(LINKER) --map -c -s $(TARGETPIC2).lkr -o $*.o $*.o
+       $(Q)$(LINKER) --map -c -o $*.o $*.o
 
 #      gpasm $*.asm
 
@@ -125,8 +127,8 @@ all:        test
 
 # The .stc files are script files for gpsim
 .cod.stc:
-       ./$(CREATESTC) $*.cod $*.stc
-       ./$(SIMULATE) $*.stc $(LOGFILE)
+       $(Q)./$(CREATESTC) $*.cod $*.stc
+       $(Q)./$(SIMULATE) $*.stc $(LOGFILE)
 
 # this will also make .stc files
 #%.stc : %.cod
@@ -144,7 +146,7 @@ stc : $(STC)
        echo $(STC)
 
 test:  $(STC)
-       echo "Done - Results are in $(LOGFILE)"
+       $(Q)echo "Done - Results are in $(LOGFILE)"
 
 cleancod:
        files="$(COD)" ; \
index 6d8aafa18dc1c211171f6a1c40342dc4271fb19a..d3e1406bd0cf2731ae40c2a60b37e9f91854e7f8 100644 (file)
@@ -1,6 +1,5 @@
-#define __16F873
-#include "p16f873.h"
-//#include "p16c84.h"
+#include "gpsim_assert.h"
+
 // Addition tests
 
 /* bit types are not ANSI - so provide a way of disabling bit types
@@ -11,9 +10,7 @@
  * (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
 
@@ -40,11 +37,11 @@ unsigned char achar2 = 0;
 unsigned char achar3 = 0;
 unsigned char *acharP = 0;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void add_lit2uchar(void)
@@ -95,8 +92,6 @@ void add_uchar2uchar(void)
 
 void add_uchar2uchar2(void)
 {
-
-
   achar0++;
   achar0 = achar0 + 1;
   achar0 = achar0 + 2;
@@ -115,13 +110,11 @@ void add_uchar2uchar2(void)
   achar3 = achar2 + achar1 + achar0;
   if(achar3 != 92)
     failures++;
-
 }
 
 #if SUPPORT_BIT_TYPES
 void add_bits(void)
 {
-
   bit1 = bit0;
 
   bit0 = 1;
@@ -147,9 +140,9 @@ void add_bits(void)
 
 /* add_bit2uchar(void) - assumes bit0 = 1, achar0 = 7  */
 
+#if SUPPORT_BIT_TYPES
 void add_bit2uchar(void)
 {
-
   achar0 += bit0;
 
   if(achar0 != 8)
@@ -157,33 +150,34 @@ void add_bit2uchar(void)
 
   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(_failures == 0);
 
   achar0=16;
   achar1=0;
   add_uchar2uchar();
+  ASSERT(_failures == 0);
 
 
   achar0 = 0;
   achar1 = 32;
   add_uchar2uchar2();
+  ASSERT(_failures == 0);
 
 #if SUPPORT_BIT_TYPES
   add_bits();
@@ -191,8 +185,7 @@ void main(void)
   add_bit2uchar();
   add_bit2uint();
 #endif
+  ASSERT(_failures == 0);
 
-
-  success = failures;
   done();
 }
index bb60d0a0c6962a95cbb3d4abb8d82cfd13473082..f802f03e4dc32d930d9dadacb26c608b29ab9d86 100644 (file)
@@ -1,5 +1,4 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 
 // Addition tests - mostly int's
 
@@ -8,9 +7,7 @@
 #define SUPPORT_BIT_TYPES 1
 
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 
 unsigned int aint0 = 0;
@@ -41,11 +38,11 @@ bit bit11 = 0;
 #endif
 
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void add_lit2uint(void)
@@ -163,6 +160,7 @@ void add_bits(void)
 
 /* add_bit2uchar(void) - assumes bit0 = 1, aint0 = 7  */
 
+#if SUPPORT_BIT_TYPES
 void add_bit2uchar(void)
 {
 
@@ -187,6 +185,7 @@ void add_bit2uint(void)
     failures++;
 
 }
+#endif
 
 /***********************************/
 
@@ -323,6 +322,5 @@ void main(void)
   aint0 = 0;
   addlits();
 
-  success = failures;
   done();
 }
index f0b0033bbe6f8f9b438570bae7ddaca17f510306..69597acf8c7807ac908a56c90cc1441d09bdd059 100644 (file)
@@ -1,5 +1,4 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 
 // Addition tests - mostly int's
 
@@ -8,9 +7,7 @@
 #define SUPPORT_BIT_TYPES 1
 
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 
 char char0 = 0;
@@ -41,11 +38,11 @@ bit bit11 = 0;
 #endif
 
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void add_char2char(void)
@@ -217,6 +214,5 @@ void main(void)
   add_lit2long();
   add_lit2ulong();
 
-  success = failures;
   done();
 }
index d6721893afd4f45f2eef023e9b14a3eecad638e5..ca370c522897fdadc4a6f02eda7a25df25bf5fc4 100644 (file)
@@ -1,9 +1,6 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 
-unsigned char success = 0;
 unsigned char failures = 0;
-unsigned char dummy = 0;
 
 //bit bit0 = 0;
 int int0 = 0;
@@ -21,14 +18,12 @@ int *iP0=NULL;
 int *iP1=NULL;
 
 void
-done ()
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
-
 /* pointer to char arithmetic */
 
 void pc_add(void)
@@ -83,6 +78,5 @@ void main(void)
   iP0 = &int0;
   pi_add();
 
-  success = failures;
   done();
 }
index b2bc764c05e7b382ea77805b251a59ffb43c625c..bf9ecaed8ad1317ddc6a570280285419ba266731 100644 (file)
@@ -1,9 +1,6 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 
 unsigned int uint0 = 0;
@@ -12,11 +9,11 @@ unsigned char uchar0 = 0;
 unsigned char uchar1 = 0;
 unsigned long ulong0 = 0;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 // uchar0 = 0xff;
@@ -140,6 +137,5 @@ void main(void)
   uchar1 = 0x0f;
   and_uchar2uchar();
 
-  success = failures;
   done();
 }
index 3cfcff219f4be8104d326c68cc1cfb0b0b25035c..c667bad435d46d99220756e475834a512a71670f 100644 (file)
@@ -1,9 +1,6 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 
 unsigned int uint0 = 0;
@@ -12,11 +9,11 @@ unsigned char uchar0 = 0;
 unsigned char uchar1 = 0;
 unsigned long ulong0 = 0;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 // uchar0 = 0x13;
@@ -114,6 +111,5 @@ void main(void)
   uchar0 = 0x13;
   neg_compound1();
 
-  success = failures;
   done();
 }
index 72dc7e4fff1be3f0ee571d6834a9ceb92ec58475..fc04ddba266c8b9dde5da86d5b6c67dd217e0eb2 100644 (file)
@@ -1,10 +1,6 @@
-#define __16F873
-#include "p16f873.h"
-//#include "p16c84.h"
+#include "gpsim_assert.h"
 
-unsigned char success = 0;
 unsigned char failures = 0;
-unsigned char dummy = 0;
 
 bit bit0 = 0;
 unsigned int aint0 = 0;
@@ -13,11 +9,10 @@ unsigned char achar0 = 0;
 unsigned char achar1 = 0;
 
 void
-done ()
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void
@@ -147,6 +142,5 @@ main (void)
   bool_or_lit1 ();
   bool_and_lit1 ();
 
-  success = failures;
   done ();
 }
index 37df0f8c5f077856ea8daa5a8d6354f7b63ba3ec..dd45f6cc61e3fc3b5aa825f54f108921a41ca00f 100644 (file)
@@ -1,18 +1,19 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 
 unsigned char failures = 0;
-unsigned char dummy = 0;
 
 unsigned char uchar0=0;
 unsigned char uchar1=0;
 unsigned char uchar2=0;
 
 
-void done(void)
+void
+done()
 {
-  dummy++;
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
+
 /*
 void incptr(unsigned char *ucP)
 {
index 5498e2c0761e920c8ecaeaec60b4fc4e21492e92..c52c6dc779165f9dd982ce38a8c3d0bbbe02206f 100644 (file)
@@ -1,5 +1,4 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 
 unsigned char success=0;
 unsigned char failures=0;
@@ -15,11 +14,12 @@ unsigned char uchar0 = 0xa5;
 data at 0xa0 unsigned char  uc_bank1_temp=0x42;
 data at 0xa2 unsigned int  ui_bank1_temp=0;
 
-void done()
+void
+done()
 {
-
   dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void main(void)
index b5ac521f386d1f01cb28549e25399242357321eb..bc7c602cf0691ad2fed0e0d175e0d3e0c170f0fa 100644 (file)
@@ -1,10 +1,6 @@
-#define __16F873
-#include "p16f873.h"
-//#include "p16c84.h"
+#include "gpsim_assert.h"
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 bit bit0 = 0;
 unsigned int aint0 = 0;
@@ -12,11 +8,11 @@ unsigned int aint1 = 0;
 unsigned char achar0 = 0;
 unsigned char achar1 = 0;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void bool_or1(void)
@@ -134,6 +130,5 @@ void main(void)
   bool_or_lit1();
   bool_and_lit1();
 
-  success = failures;
   done();
 }
index e1062c20dfdc4e6c0181660edf474c703c3e0312..6b977be18e7c7902940c2b3c0b35a09709b86917 100644 (file)
@@ -1,10 +1,6 @@
-#define __16F873
-#include "p16f873.h"
-//#include "p16c84.h"
+#include "gpsim_assert.h"
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 bit bit0 = 0;
 bit bit1 = 0;
@@ -13,15 +9,13 @@ unsigned int aint1 = 0;
 unsigned char achar0 = 0;
 unsigned char achar1 = 0;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
-
-
 void bit_invert(void)
 {
 
@@ -46,6 +40,5 @@ void main(void)
   bit_invert();
   bit_copy();
 
-  success = failures;
   done();
 }
index 4c3e358b4508e9e0fc9ff9f5be9b0f52074cd8a3..2bbbea4fbe8ba622687f3cfb43ba13530515833f 100644 (file)
@@ -1,13 +1,10 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 
 
 /* Compound comparisons */
 
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 bit bit0 = 0;
 bit bit1 = 0;
@@ -18,15 +15,13 @@ unsigned char uc1 = 0;
 unsigned long uL0 = 0;
 unsigned long uL1 = 0;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
-
-
 void compound_compare_uc(void)
 {
 
@@ -68,6 +63,5 @@ void main(void)
   uc0 = 0xff;
   compound_compare_uc_lit();
 
-  success = failures;
   done();
 }
index 4c6bfc37abd5be970c8e3a844d292f5b6f0ed87a..76d6278b82b2153c7cbd11b28e61fa1481325e61 100644 (file)
@@ -1,10 +1,6 @@
-#define __16F873
-#include "p16f873.h"
-//#include "p16c84.h"
+#include "gpsim_assert.h"
 
-unsigned char success = 0;
 unsigned char failures = 0;
-unsigned char dummy = 0;
 
 bit bit0 = 0;
 unsigned int uint0 = 0;
@@ -15,11 +11,10 @@ unsigned char uchar1 = 0;
 unsigned char call3 (void);
 
 void
-done ()
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void
@@ -159,6 +154,5 @@ main (void)
 
   call9(0x1234,0x5678);
 
-  success = failures;
   done ();
 }
index 820e0b123d54035e0f30affe3221ad475d7c4106..bba72f6a1f1bb3ade5152658e8633603f91761fb 100644 (file)
@@ -1,5 +1,4 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 /*
 
    PIC PORT Test code
@@ -14,9 +13,7 @@
 bit bit0 = 0;
 bit bit1 = 0;
 
-unsigned char success = 0;
 unsigned char failures = 0;
-unsigned char dummy = 0;
 
 unsigned char achar0 = 0;
 unsigned char achar1 = 0;
@@ -27,11 +24,10 @@ char schar0 = 0;
 char schar1 = 0;
 
 void
-done ()
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 /* achar0 should be zero */
@@ -189,6 +185,5 @@ main (void)
   aint0 = 0;
   compare_int_to_int1 ();
 
-  success = failures;
   done ();
 }
index 57541abcb3ed22f709fcb58ca4fcda55ab690abb..67e4f8bd4a6796c39d7abfa459d166da2e8a05fa 100644 (file)
@@ -1,5 +1,5 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
+#include "pic16f877.h"
 // Signed comparisons of the form:  (variable>=LIT)
 //
 // This regression test exercises all of the boundary
@@ -8,9 +8,7 @@
 // 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;
@@ -23,31 +21,6 @@ signed char char1 = 0;
 char long0 = 0;
 char long1 = 0;
 
-/* copied from 16f877.inc file supplied with gpasm */
-
-#define _CP_ALL          0x0FCF
-#define _CP_HALF         0x1FDF
-#define _CP_UPPER_256    0x2FEF
-#define _CP_OFF          0x3FFF
-#define _DEBUG_ON        0x37FF
-#define _DEBUG_OFF       0x3FFF
-#define _WRT_ENABLE_ON   0x3FFF
-#define _WRT_ENABLE_OFF  0x3DFF
-#define _CPD_ON          0x3EFF
-#define _CPD_OFF         0x3FFF
-#define _LVP_ON          0x3FFF
-#define _LVP_OFF         0x3F7F
-#define _BODEN_ON        0x3FFF
-#define _BODEN_OFF       0x3FBF
-#define _PWRTE_OFF       0x3FFF
-#define _PWRTE_ON        0x3FF7
-#define _WDT_ON          0x3FFF
-#define _WDT_OFF         0x3FFB
-#define _LP_OSC          0x3FFC
-#define _XT_OSC          0x3FFD
-#define _HS_OSC          0x3FFE
-#define _RC_OSC          0x3FFF
-
 /* *** 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...
@@ -55,12 +28,13 @@ char long1 = 0;
 
 typedef unsigned int word;
 
-word at 0x2007  CONFIG = _WDT_OFF & _PWRTE_ON;
+word at 0x2007  CONFIG = wdt_off & pwrte_on;
 
 void
-done ()
+done()
 {
-  dummy++;
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 
@@ -340,6 +314,5 @@ main (void)
   int_compare1();
   int_compare2();
 
-  success = failures;
   done ();
 }
index 9655808fc3f529a1cc4494f2c8bc448ba5cde944..4f9bc4ca4f5aa8a01d690b2569daa22558b640e8 100644 (file)
@@ -1,8 +1,5 @@
-#define __16F873
-#include "p16f873.h"
-//#include "p16c84.h"
+#include "gpsim_assert.h"
 
-unsigned char success = 0;
 unsigned char failures = 0;
 unsigned char dummy = 0;
 
@@ -13,15 +10,12 @@ unsigned char achar0 = 0;
 unsigned char achar1 = 0;
 
 void
-done ()
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
-
-
 void
 char_lt_char (void)
 {
@@ -365,6 +359,5 @@ main (void)
   int_lte_lit_else ();
   int_gte_lit_else ();
 
-  success = failures;
   done ();
 }
index 4574a76dbf6401413341edefa870472f558531b7..1423dd03d1f2d10fa3a8c5bc56a8d093a45d743f 100644 (file)
@@ -1,14 +1,11 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 //
 // 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;
@@ -17,11 +14,10 @@ unsigned char achar0 = 0;
 unsigned char achar1 = 0;
 
 void
-done ()
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 // compare to 0
@@ -248,6 +244,5 @@ main (void)
   achar0 = 1;
   c_ifelse1();
 
-  success = failures;
   done ();
 }
index 378529413d66b3f31a57a871d6f7f7e8679eecbc..1c38aa132a4cfd3902b0796403ce38ef2fe8e770 100644 (file)
@@ -1,5 +1,4 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 //
 // compare4.c
 // regression testing program for comparing signed chars and ints
@@ -7,9 +6,7 @@
 
 //#define  COMPARE_OUT_OF_RANGE 1
 
-unsigned char success = 0;
 unsigned char failures = 0;
-unsigned char dummy = 0;
 
 bit bit0 = 0;
 int int0 = 0;
@@ -18,11 +15,10 @@ char char0 = 0;
 char char1 = 0;
 
 void
-done ()
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 // compare to 0
@@ -318,6 +314,5 @@ main (void)
   char1 = -3;
   c_c0gtc1();
 
-  success = failures;
   done ();
 }
index eae8196f0e393a56930691aa225d161c6451db84..b6219e68ec652a8ed368481af82f69b8bb510829 100644 (file)
@@ -1,5 +1,4 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 //
 // compare5.c
 // regression testing program for comparing longs
@@ -7,9 +6,7 @@
 
 #define  COMPARE_OUT_OF_RANGE 1
 
-unsigned char success = 0;
 unsigned char failures = 0;
-unsigned char dummy = 0;
 
 bit bit0 = 0;
 int int0 = 0;
@@ -22,11 +19,10 @@ unsigned long ulong0 = 0;
 unsigned long ulong1 = 0;
 
 void
-done ()
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 // compare to 0
@@ -430,6 +426,5 @@ main (void)
   long1=-1000;
   c_long2neglit();
 
-  success = failures;
   done ();
 }
index c66e9976b405297b5b25ac161f5e8a9bfcb51e90..c613df03b264a40960a8f58d9e427eed697d7750 100644 (file)
@@ -1,5 +1,4 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 // Compound comparisons
 
 unsigned char success = 0;
@@ -17,12 +16,12 @@ char long0 = 0;
 char long1 = 0;
 
 void
-done ()
+done()
 {
-  dummy++;
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
-
 void c_char(void)
 {
 
index d0f254eed00fcdce8dbf5bbc8ae78d7016938e02..ea0e8b2e0c8f5f5b602bb823662631f8afda8618 100644 (file)
@@ -1,5 +1,5 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
+#include "pic16f877.h"
 // Signed comparisons of the form:  (variable<LIT)
 //
 // This regression test exercises all of the boundary
@@ -8,9 +8,7 @@
 // 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;
@@ -22,31 +20,6 @@ char long0 = 0;
 char long1 = 0;
 
 
-/* copied from 16f877.inc file supplied with gpasm */
-
-#define _CP_ALL          0x0FCF
-#define _CP_HALF         0x1FDF
-#define _CP_UPPER_256    0x2FEF
-#define _CP_OFF          0x3FFF
-#define _DEBUG_ON        0x37FF
-#define _DEBUG_OFF       0x3FFF
-#define _WRT_ENABLE_ON   0x3FFF
-#define _WRT_ENABLE_OFF  0x3DFF
-#define _CPD_ON          0x3EFF
-#define _CPD_OFF         0x3FFF
-#define _LVP_ON          0x3FFF
-#define _LVP_OFF         0x3F7F
-#define _BODEN_ON        0x3FFF
-#define _BODEN_OFF       0x3FBF
-#define _PWRTE_OFF       0x3FFF
-#define _PWRTE_ON        0x3FF7
-#define _WDT_ON          0x3FFF
-#define _WDT_OFF         0x3FFB
-#define _LP_OSC          0x3FFC
-#define _XT_OSC          0x3FFD
-#define _HS_OSC          0x3FFE
-#define _RC_OSC          0x3FFF
-
 /* *** 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...
@@ -54,15 +27,15 @@ char long1 = 0;
 
 typedef unsigned int word;
 
-word at 0x2007  CONFIG = _WDT_OFF & _PWRTE_ON;
+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;
@@ -331,6 +304,5 @@ main (void)
   int_compare1();
   int_compare2();
 
-  success = failures;
   done ();
 }
index 6c2ee19f96a2f4a8c212bf517d1f7446de4e6c04..67021a9939467566bfbcf95f2683eb2faa260785 100644 (file)
@@ -1,5 +1,5 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
+#include "pic16f877.h"
 // Signed comparisons of the form:  (variable>LIT)
 //
 // This regression test exercises all of the boundary
@@ -8,9 +8,7 @@
 // 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;
@@ -23,32 +21,6 @@ signed char char1 = 0;
 char long0 = 0;
 char long1 = 0;
 
-
-/* copied from 16f877.inc file supplied with gpasm */
-
-#define _CP_ALL          0x0FCF
-#define _CP_HALF         0x1FDF
-#define _CP_UPPER_256    0x2FEF
-#define _CP_OFF          0x3FFF
-#define _DEBUG_ON        0x37FF
-#define _DEBUG_OFF       0x3FFF
-#define _WRT_ENABLE_ON   0x3FFF
-#define _WRT_ENABLE_OFF  0x3DFF
-#define _CPD_ON          0x3EFF
-#define _CPD_OFF         0x3FFF
-#define _LVP_ON          0x3FFF
-#define _LVP_OFF         0x3F7F
-#define _BODEN_ON        0x3FFF
-#define _BODEN_OFF       0x3FBF
-#define _PWRTE_OFF       0x3FFF
-#define _PWRTE_ON        0x3FF7
-#define _WDT_ON          0x3FFF
-#define _WDT_OFF         0x3FFB
-#define _LP_OSC          0x3FFC
-#define _XT_OSC          0x3FFD
-#define _HS_OSC          0x3FFE
-#define _RC_OSC          0x3FFF
-
 /* *** 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...
@@ -56,15 +28,15 @@ char long1 = 0;
 
 typedef unsigned int word;
 
-word at 0x2007  CONFIG = _WDT_OFF & _PWRTE_ON;
+word at 0x2007  CONFIG = wdt_off & pwrte_on;
 
 void
-done ()
+done()
 {
-  dummy++;
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
-
 void c_char_gt_lit1(unsigned char expected_result)
 {
   result = 0;
@@ -343,6 +315,5 @@ main (void)
   int_compare1();
   int_compare2();
 
-  success = failures;
   done ();
 }
index d5e7517cedfad2c9613e44f9db0baf63ac443e2b..e344e058de03906408a2a8169ea5fa1c98461225 100644 (file)
@@ -1,5 +1,5 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
+#include "pic16f877.h"
 // Signed comparisons of the form:  (variable<=LIT)
 //
 // This regression test exercises all of the boundary
@@ -8,9 +8,7 @@
 // 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;
 
 int int0 = 0;
@@ -18,31 +16,6 @@ int int1 = 0;
 signed char char0 = 0;
 signed char char1 = 0;
 
-/* copied from 16f877.inc file supplied with gpasm */
-
-#define _CP_ALL          0x0FCF
-#define _CP_HALF         0x1FDF
-#define _CP_UPPER_256    0x2FEF
-#define _CP_OFF          0x3FFF
-#define _DEBUG_ON        0x37FF
-#define _DEBUG_OFF       0x3FFF
-#define _WRT_ENABLE_ON   0x3FFF
-#define _WRT_ENABLE_OFF  0x3DFF
-#define _CPD_ON          0x3EFF
-#define _CPD_OFF         0x3FFF
-#define _LVP_ON          0x3FFF
-#define _LVP_OFF         0x3F7F
-#define _BODEN_ON        0x3FFF
-#define _BODEN_OFF       0x3FBF
-#define _PWRTE_OFF       0x3FFF
-#define _PWRTE_ON        0x3FF7
-#define _WDT_ON          0x3FFF
-#define _WDT_OFF         0x3FFB
-#define _LP_OSC          0x3FFC
-#define _XT_OSC          0x3FFD
-#define _HS_OSC          0x3FFE
-#define _RC_OSC          0x3FFF
-
 /* *** 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...
@@ -50,15 +23,15 @@ signed char char1 = 0;
 
 typedef unsigned int word;
 
-word at 0x2007  CONFIG = _WDT_OFF & _PWRTE_ON;
+word at 0x2007  CONFIG = wdt_off & pwrte_on;
 
 void
-done ()
+done()
 {
-  dummy++;
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
-
 void c_char_lte_lit1(unsigned char expected_result)
 {
   result = 0;
@@ -325,6 +298,5 @@ main (void)
   int_compare1();
   int_compare2();
 
-  success = failures;
   done ();
 }
index 9710851e8a9f474c5d9661f020a5c920eb51fa55..e3d9aefe565223ab1d927502e1cbb17a841e2f6a 100644 (file)
@@ -1,11 +1,8 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 /* configword.c - illustrates how the configuration word can
  * be assigned */
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 /* copied from 16f877.inc file supplied with gpasm */
 
@@ -40,16 +37,16 @@ word at 0x2007  CONFIG = _WDT_OFF & _PWRTE_ON;
 /* to do -- write a test that puts the PIC to sleep,
  * and verify that the WDT wakes it up */
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
+
 void main(void)
 {
   dummy = 0;
 
-  success = failures;
   done();
 }
index 6684058fd9e0e98d833502f3903367c4089e9bfa..4c7b26d330761b967c6fb9673a4909ae1a07d22d 100755 (executable)
@@ -9,8 +9,6 @@ if [ $# -lt 2 ] ; then
 fi
 
 
-echo "load s $1" > $2
-echo "break e _done" >> $2
+echo "load $1" > $2
 echo "run" >> $2
-echo "x _failures" >> $2
-echo "abort_gpsim_now" >> $2
+echo "quit" >> $2
index db3e73345b8936dc6c8ec171db98f34d513af859..70c8ae2068434b8e0760f7c6a6ed9edb30d01fa5 100644 (file)
@@ -1,10 +1,6 @@
-#define __16F873
-#include "p16f873.h"
-//#include "p16c84.h"
+#include "gpsim_assert.h"
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 bit bit0 = 0;
 unsigned int uint0 = 0;
@@ -12,11 +8,11 @@ unsigned int uint1 = 0;
 unsigned char uchar0 = 0;
 unsigned char uchar1 = 0;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void for1(void)
@@ -104,6 +100,5 @@ void main(void)
   if(uchar0 != 10)
     failures++;
 
-  success = failures;
   done();
 }
diff --git a/src/regression/gpsim_assert.h b/src/regression/gpsim_assert.h
new file mode 100644 (file)
index 0000000..5eb6f93
--- /dev/null
@@ -0,0 +1,55 @@
+/*------------------------------------------------------------------------------
+
+  gpsim_assert.h - assertion macros generating gpsim breakpoints
+
+  Copyright (c) 2006 Borut Razem
+
+  This program is free software; you can redistribute it and/or modify it
+  under the terms of the GNU General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+  USA.
+
+------------------------------------------------------------------------------*/
+
+
+#ifndef __PIC_ASSERT_H
+#define __PIC_ASSERT_H
+
+#define MANGLE(e) _##e
+#define STRINGIFY(e) #e
+
+#define ASSERT(e) \
+  __asm \
+  nop \
+  __endasm; \
+  __asm \
+  .direct "a", STRINGIFY(e) \
+  __endasm;
+
+#define PASSED() \
+  __asm \
+  nop \
+  __endasm; \
+  __asm \
+  .direct "a", "\"PASSED\"" \
+  __endasm;
+
+#define FAILED() \
+  __asm \
+  nop \
+  __endasm; \
+  __asm \
+  .direct "a", "\"FAILED\"" \
+  __endasm;
+
+#endif
index d129fea9306244ad64705848c4c13c220106c907..40b3785cab91765fd4e53533793a86a19815b2d1 100644 (file)
@@ -1,23 +1,17 @@
-#define __16F873
-#include "p16f873.h"
-unsigned char success=0;
-unsigned char failures=0;
-unsigned char dummy=0;
+#include "gpsim_assert.h"
+#include "pic16f877.h"
 
-unsigned char test_tris=0;
+#pragma preproc_asm -
 
-#define PORTA_ADR  5
-#define PORTB_ADR  6
-#define TRISA_ADR  0x85
-#define TRISB_ADR  0x86
+unsigned char failures=0;
 
-data at TRISA_ADR unsigned char  TRISA;
+unsigned char test_tris=0;
 
-void done(void)
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void
@@ -39,8 +33,6 @@ delay_1ms(void)
 
 void main(void)
 {
-  dummy = 0;
-
   TRISA = 0x0f;
 
   _asm
@@ -53,6 +45,5 @@ void main(void)
   if(test_tris != 0x0f)
     failures++;
 
-  success = failures;
   done();
 }
index a5308746b86c8781337a3b54bb4fe0351f951482..69633f2195f527ce455a3766c2c1c69a8e284c13 100644 (file)
@@ -1,11 +1,8 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 
 #define TESTLIT 0x05
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 
 signed char c1,c2,c3;
@@ -14,11 +11,11 @@ unsigned char uc1,uc2,uc3;
 unsigned int ui1,ui2,ui3;
 signed int i1,i2;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void m1(void)
@@ -109,6 +106,5 @@ void main(void)
 
   //m3(TESTLIT);
 
-  success = failures;
   done();
 }
index 6ce48fc8043ff5d4620547888a8f081c70c222a5..52a348e32587c2308d0be0b3f5ad8897b5511b51 100644 (file)
@@ -1,10 +1,7 @@
-#define __16F873
-#include "p16f873.h"
-//#include "p16c84.h"
+#include "gpsim_assert.h"
+#include "pic16f877.h"
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 bit bit0 = 0;
 unsigned int uint0 = 0;
@@ -19,11 +16,11 @@ void dput(unsigned char val)
        PORTA = 0x00;
 }
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 /* both loops use the loop variable inside the inner loop */
@@ -139,6 +136,5 @@ void main(void)
   for4();
   for5();
 
-  success = failures;
   done();
 }
index fd451f96acc544f60122c7e1f33a444ecea32baf..27aeeacefd4fa50c9d1de2512c05edef36ec81f0 100644 (file)
@@ -1,9 +1,6 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 bit bit0 = 0;
 bit bit1 = 0;
@@ -16,11 +13,11 @@ unsigned char uchar1 = 0;
 unsigned long ulong0 = 0;
 unsigned long ulong1 = 0;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 // uchar0 = 0;
@@ -188,6 +185,5 @@ void main(void)
     failures++;
 
 
-  success = failures;
   done();
 }
index 839c65d4d3a25c54beb83da7d8aee9f7f2f9dd95..735f668d570c475c26f61ee23248268aeef3c125 100644 (file)
@@ -1,11 +1,8 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 
 // Pointer tests
 
-unsigned char success = 0;
 unsigned char failures = 0;
-unsigned char dummy = 0;
 
 bit bit0 = 0;
 unsigned int aint0 = 0;
@@ -17,11 +14,10 @@ unsigned char *acharP = 0;
 char buff[10];
 
 void
-done ()
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void
@@ -136,6 +132,5 @@ main (void)
   achar0 = 5;
   f4(&achar0, achar0);
 
-  success = failures;
   done ();
 }
index edab837dc5dea5e82ae4a87a0b34c65d1057dbac..7fb42b1737e3fb326db9596fe7fbeb0d4570d403 100644 (file)
@@ -1,10 +1,6 @@
-#define __16F873
-#include "p16f873.h"
-//#include "p16c84.h"
+#include "gpsim_assert.h"
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 bit bit0 = 0;
 unsigned int uint0 = 0;
@@ -22,11 +18,11 @@ void (*pfunc)();
 void (*p1func)();
 unsigned char (*pcfunc)();
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void call0(void)
@@ -107,6 +103,5 @@ void main(void)
 /*     uchar2 += (pcfunc)(); */ /* FRONT-END BUG? - type-mismatch error */
 /*     uchar2 += pcfunc(); */ /* FRONT-END BUG? - type-mismatch error */
 
-       success = failures;
        done();
 }
index 08cf97e1e05e1152687c2f5f0034217b7bc6e543..a889ec69c2c8474a5427215a274ab81f435562f1 100644 (file)
@@ -1,10 +1,6 @@
-#define __16F873
-#include "p16f873.h"
-// Shift bytes left and right by a constant.
+#include "gpsim_assert.h"
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 bit bit0 = 0;
 unsigned int aint0 = 0;
@@ -13,11 +9,11 @@ unsigned char achar0 = 0;
 unsigned char achar1 = 0;
 unsigned char achar2 = 0;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void check(void)
@@ -208,6 +204,5 @@ void main(void)
   achar0 = 0x80;
   shift_right_7();
 
-  success=failures;
   done();
 }
index 8c6d65d677dee19cca0e0f6efedad85f5727e2ac..16635bc68a402851e6a3395fdcda0dea03b53b52 100644 (file)
@@ -1,10 +1,7 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 // Shift bytes left and right by a variable.
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 bit bit0 = 0;
 unsigned int aint0 = 0;
@@ -14,11 +11,11 @@ unsigned char achar1 = 0;
 unsigned char achar2 = 0;
 unsigned char achar3 = 0;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void shift_right_var(void)
@@ -62,6 +59,5 @@ void main(void)
       failures++;
   }
 
-  success=failures;
   done();
 }
index f54089875bbd17860345e693a832bfb06cad9d13..1acae273ab13313ceac25126af6dca34a3e3c0ed 100644 (file)
@@ -1,10 +1,7 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 // Shift ints left and right
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 bit bit0 = 0;
 unsigned int aint0 = 0;
@@ -14,11 +11,11 @@ unsigned char achar1 = 0;
 unsigned char achar2 = 0;
 unsigned char achar3 = 0;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void shift_int_left_1(void)
@@ -388,6 +385,5 @@ void main(void)
   if(aint0 != 0x0001)
     failures++;
 
-  success=failures;
   done();
 }
index bf9c4a457490e935666f0e9fb66ab8d43f69a140..9f0a282dd074ddce4835a9e953804f158123ea9e 100644 (file)
@@ -1,10 +1,7 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 // rotate bytes left and right by a constant.
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 bit bit0 = 0;
 unsigned int uint0 = 0;
@@ -13,11 +10,11 @@ unsigned char uchar0 = 0;
 unsigned char uchar1 = 0;
 unsigned char uchar2 = 0;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void check(void)
@@ -223,6 +220,5 @@ void main(void)
   uchar0 = 0x80;
   rotate_right_7();
 
-  success=failures;
   done();
 }
index 6836822f3b291a85499fe3dbc29bec2efdef12ef..00b9451dc2db8a301a4d53025031ad802d710ada 100644 (file)
@@ -1,10 +1,7 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 // Shift bytes left and right by a constant.
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 bit bit0 = 0;
 signed int aint0 = 0;
@@ -13,11 +10,11 @@ signed char achar0 = 0;
 signed char achar1 = 0;
 signed char achar2 = 0;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void check(void)
@@ -234,6 +231,5 @@ void main(void)
   shift_right_7();
 
 
-  success=failures;
   done();
 }
index b07072beb52a71cfa84ddad01eb1f8365d628703..78ab7753c2152693ffcc70dabfd7aabc157ae73d 100644 (file)
@@ -1,10 +1,7 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 // Shift bytes left and right by a variable.
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 bit bit0 = 0;
 signed int aint0 = 0;
@@ -14,11 +11,11 @@ signed char achar1 = 0;
 signed char achar2 = 0;
 signed char achar3 = 0;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void shift_right_var(void)
@@ -135,6 +132,5 @@ void main(void)
   if(aint0 != 0xf000)
     failures++;
 
-  success=failures;
   done();
 }
index 1435355ddae6f424656d6ca5688481f89437591f..1546055121bf88004a73a3d6049a76dd3959abe3 100644 (file)
@@ -1,10 +1,7 @@
-#define __16F873
-#include "p16f873.h"
+#include "gpsim_assert.h"
 // Shift ints left and right
 
-unsigned char success=0;
 unsigned char failures=0;
-unsigned char dummy=0;
 
 signed int aint0 = 0;
 signed int aint1 = 0;
@@ -13,11 +10,11 @@ signed char achar1 = 0;
 signed char achar2 = 0;
 signed char achar3 = 0;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void shift_int_left_1(void)
@@ -387,6 +384,5 @@ void main(void)
   if(aint0 != -1)
     failures++;
 
-  success=failures;
   done();
 }
index a99c859e23cc341cc28d1bc2445386f7b666f460..c25636751b949ca5d9e87d426e1e952b2ea19fd2 100755 (executable)
@@ -9,14 +9,12 @@ fi
 
 # compile
 
-../../bin/sdcc -c -mpic14 -pp16f873 $1.c
+../../bin/sdcc -I ../../device/include/pic -c -mpic14 -pp16f877 $1.c
 
 
 # create the executable
 
-gplink --map -c -s 16f877.lkr -o $1.o $1.o
+gplink --map -c -o $1.o $1.o
 ./create_stc $1.cod $1.stc
 
 ./simulate $1.stc garbage.log
-cat garbage.log
-rm garbage.log
index 55c60bd5e4382fd6d7cfd3cb8b01588a5ba73877..3975de25bc9e7d4ad906b2fd994f1280e2579d58 100755 (executable)
@@ -7,15 +7,20 @@ if [ $# -lt 2 ] ; then
   exit 1
 fi
 
+if [ "$GPSIM_PATH" != "" ] ; then
+  PATH=$GPSIM_PATH:$PATH
+fi
 
 GPSIM_SCRIPT=$1
 LOGFILE=$2
-touch $2
-echo "Test $GPSIM_SCRIPT" >> $LOGFILE
-gpsim --cli -c $GPSIM_SCRIPT $2> test
-grep "failures " test | grep "= 0x0"
-if [ $? -eq 0 ] ; then
-  echo "PASSED" >> $LOGFILE
-else
-  echo "FAILED" >> $LOGFILE
-fi
+echo "Test $GPSIM_SCRIPT" | tee -a $LOGFILE
+gpsim --cli -c $GPSIM_SCRIPT | tee -a $LOGFILE |\
+sed -n -e '/running\.\.\./,$ {
+/^ *Message:/ {
+s/^ *Message:\(.*\)$/\1/p
+q
+}
+}
+$ a\
+FAILED
+' | tee -a $LOGFILE
index 51d547629db43f4f54b9c1bbbacd95a569454496..adf3660bbd23cdda89d4159821d0195bf31a115f 100644 (file)
@@ -1,8 +1,5 @@
-#define __16F873
-#include "p16f873.h"
-unsigned char success=0;
+#include "gpsim_assert.h"
 unsigned char failures=0;
-unsigned char dummy=0;
 //unsigned bit bit1;
 
 typedef unsigned char byte;
@@ -13,11 +10,11 @@ const byte arr[] = { 1,2,8,9,0 };
 
 bit at 0x30 B1;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void  isr(void) interrupt 1 using 1
@@ -56,6 +53,5 @@ void main(void)
 
   lcd1("str");
   B1=0;
-  success = failures;
   done();
 }
index edbe6716240bc1c0d8224401a65e64014322815d..6929ecd6ccb6b3b69e1a05f7ab0d515b667db4e3 100644 (file)
@@ -1,6 +1,4 @@
-#define __16F873
-#include "p16f873.h"
-//#include "p16c84.h"
+#include "gpsim_assert.h"
 // Addition tests
 
 /* bit types are not ANSI - so provide a way of disabling bit types
@@ -11,9 +9,7 @@
  * (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
 
@@ -48,11 +44,10 @@ struct chars
 struct chars struct1;
 
 void
-done ()
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void
@@ -105,6 +100,5 @@ main (void)
   struct1.c1 = 1;
   add_chars();
 
-  success = failures;
   done ();
 }
index e7f62bd8caff9aa4b0ad18aec26f457cd88622cb..fb0f1d6b5db5619b1ad63e8f8f83566b506de66a 100644 (file)
@@ -1,6 +1,4 @@
-#define __16F873
-#include "p16f873.h"
-//#include "p16c84.h"
+#include "gpsim_assert.h"
 // Addition tests
 
 /* bit types are not ANSI - so provide a way of disabling bit types
@@ -11,9 +9,7 @@
  * (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
 
@@ -40,11 +36,11 @@ unsigned char achar2 = 0;
 unsigned char achar3 = 0;
 unsigned char *acharP = 0;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void sub_lit_from_uchar(void)
@@ -252,6 +248,5 @@ void main(void)
   achar0 = 0;
   sub_ucharFromLit();
 
-  success = failures;
   done();
 }
index 070924fd167ee11faaef80058d797692731eca32..60c1c9096f5964f8ce125ea6156ee62b96c72caa 100644 (file)
@@ -1,6 +1,4 @@
-#define __16F873
-#include "p16f873.h"
-//#include "p16c84.h"
+#include "gpsim_assert.h"
 // Addition tests
 
 /* bit types are not ANSI - so provide a way of disabling bit types
@@ -11,9 +9,7 @@
  * (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
 
@@ -39,11 +35,11 @@ char char1 = 0;
 char char2 = 0;
 
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void sub_int1(void)
@@ -172,6 +168,5 @@ void main(void)
   int1 = 9;
   sub_compound_int();
 
-  success = failures;
   done();
 }
index 179f9fa2383745e2a75a8f6f3c06c236ed63f3c7..412a8768471ccc3d38ac8cabe767ca6e5d0d91a6 100644 (file)
@@ -1,8 +1,5 @@
-#define __16F873
-#include "p16f873.h"
-unsigned char success=0;
+#include "gpsim_assert.h"
 unsigned char failures=0;
-unsigned char dummy=0;
 
 bit bit0 = 0;
 unsigned int aint0 = 0;
@@ -11,11 +8,11 @@ unsigned char achar0 = 0;
 unsigned char achar1 = 0;
 
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void switch1(void)
@@ -84,6 +81,5 @@ main(void)
 
   }
 
-  success=failures;
   done();
 }
index c004194d67272b597cd1da317596f59a81eb13fc..714c1053b9e086b8739e7017d7f52c19139032d5 100644 (file)
@@ -1,10 +1,6 @@
-#define __16F873
-#include "p16f873.h"
-//#include "p16c84.h"
+#include "gpsim_assert.h"
 
-unsigned char success = 0;
 unsigned char failures = 0;
-unsigned char dummy = 0;
 
 bit bit0 = 0;
 unsigned int aint0 = 0;
@@ -14,11 +10,10 @@ unsigned char achar1 = 0;
 
 
 void
-done ()
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void
@@ -44,6 +39,5 @@ main (void)
   while1 ();
 
 
-  success = failures;
   done ();
 }
index ce7637bb4cdd844e32bca88b3d5219b70f3e8e80..cf5308c2f414e4a98493188e1df4057ffd4db41b 100644 (file)
@@ -1,18 +1,15 @@
-#define __16F873
-#include "p16f873.h"
-unsigned char success=0;
+#include "gpsim_assert.h"
 unsigned char failures=0;
-unsigned char dummy=0;
 
 unsigned char achar0 = 0;
 unsigned char achar1 = 0;
 unsigned char achar2 = 0;
 
-void done()
+void
+done()
 {
-
-  dummy++;
-
+  ASSERT(MANGLE(failures) == 0);
+  PASSED();
 }
 
 void xor_chars_0_1(void)
@@ -55,6 +52,5 @@ void main(void)
   achar0 = achar1;
   xor_if();
 
-  success = failures;
   done();
 }