From: borutr Date: Wed, 1 Feb 2006 21:14:02 +0000 (+0000) Subject: * src/regression/add.c, src/regression/add2.c, src/regression/add3.c, X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=6d080aabf22676ff1d378afc6de668099ee9da6f;p=fw%2Fsdcc * 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 git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4030 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- diff --git a/ChangeLog b/ChangeLog index 0e4e6e48..26df37af 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,31 @@ +2006-02-01 Borut Razem + + * 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 * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer diff --git a/src/regression/Makefile b/src/regression/Makefile index 3e096e78..c072227d 100644 --- a/src/regression/Makefile +++ b/src/regression/Makefile @@ -45,12 +45,14 @@ # 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)" ; \ diff --git a/src/regression/add.c b/src/regression/add.c index 6d8aafa1..d3e1406b 100644 --- a/src/regression/add.c +++ b/src/regression/add.c @@ -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(); } diff --git a/src/regression/add2.c b/src/regression/add2.c index bb60d0a0..f802f03e 100644 --- a/src/regression/add2.c +++ b/src/regression/add2.c @@ -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(); } diff --git a/src/regression/add3.c b/src/regression/add3.c index f0b0033b..69597acf 100644 --- a/src/regression/add3.c +++ b/src/regression/add3.c @@ -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(); } diff --git a/src/regression/add4.c b/src/regression/add4.c index d6721893..ca370c52 100644 --- a/src/regression/add4.c +++ b/src/regression/add4.c @@ -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(); } diff --git a/src/regression/and1.c b/src/regression/and1.c index b2bc764c..bf9ecaed 100644 --- a/src/regression/and1.c +++ b/src/regression/and1.c @@ -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(); } diff --git a/src/regression/and2.c b/src/regression/and2.c index 3cfcff21..c667bad4 100644 --- a/src/regression/and2.c +++ b/src/regression/and2.c @@ -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(); } diff --git a/src/regression/arrays.c b/src/regression/arrays.c index 72dc7e4f..fc04ddba 100644 --- a/src/regression/arrays.c +++ b/src/regression/arrays.c @@ -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 (); } diff --git a/src/regression/b.c b/src/regression/b.c index 37df0f8c..dd45f6cc 100644 --- a/src/regression/b.c +++ b/src/regression/b.c @@ -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) { diff --git a/src/regression/bank1.c b/src/regression/bank1.c index 5498e2c0..c52c6dc7 100644 --- a/src/regression/bank1.c +++ b/src/regression/bank1.c @@ -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) diff --git a/src/regression/bool1.c b/src/regression/bool1.c index b5ac521f..bc7c602c 100644 --- a/src/regression/bool1.c +++ b/src/regression/bool1.c @@ -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(); } diff --git a/src/regression/bool2.c b/src/regression/bool2.c index e1062c20..6b977be1 100644 --- a/src/regression/bool2.c +++ b/src/regression/bool2.c @@ -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(); } diff --git a/src/regression/bool3.c b/src/regression/bool3.c index 4c3e358b..2bbbea4f 100644 --- a/src/regression/bool3.c +++ b/src/regression/bool3.c @@ -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(); } diff --git a/src/regression/call1.c b/src/regression/call1.c index 4c6bfc37..76d6278b 100644 --- a/src/regression/call1.c +++ b/src/regression/call1.c @@ -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 (); } diff --git a/src/regression/compare.c b/src/regression/compare.c index 820e0b12..bba72f6a 100644 --- a/src/regression/compare.c +++ b/src/regression/compare.c @@ -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 (); } diff --git a/src/regression/compare10.c b/src/regression/compare10.c index 57541abc..67e4f8bd 100644 --- a/src/regression/compare10.c +++ b/src/regression/compare10.c @@ -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 (); } diff --git a/src/regression/compare2.c b/src/regression/compare2.c index 9655808f..4f9bc4ca 100644 --- a/src/regression/compare2.c +++ b/src/regression/compare2.c @@ -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 (); } diff --git a/src/regression/compare3.c b/src/regression/compare3.c index 4574a76d..1423dd03 100644 --- a/src/regression/compare3.c +++ b/src/regression/compare3.c @@ -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 (); } diff --git a/src/regression/compare4.c b/src/regression/compare4.c index 37852941..1c38aa13 100644 --- a/src/regression/compare4.c +++ b/src/regression/compare4.c @@ -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 (); } diff --git a/src/regression/compare5.c b/src/regression/compare5.c index eae8196f..b6219e68 100644 --- a/src/regression/compare5.c +++ b/src/regression/compare5.c @@ -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 (); } diff --git a/src/regression/compare6.c b/src/regression/compare6.c index c66e9976..c613df03 100644 --- a/src/regression/compare6.c +++ b/src/regression/compare6.c @@ -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) { diff --git a/src/regression/compare7.c b/src/regression/compare7.c index d0f254ee..ea0e8b2e 100644 --- a/src/regression/compare7.c +++ b/src/regression/compare7.c @@ -1,5 +1,5 @@ -#define __16F873 -#include "p16f873.h" +#include "gpsim_assert.h" +#include "pic16f877.h" // Signed comparisons of the form: (variableLIT) // // 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 (); } diff --git a/src/regression/compare9.c b/src/regression/compare9.c index d5e7517c..e344e058 100644 --- a/src/regression/compare9.c +++ b/src/regression/compare9.c @@ -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 (); } diff --git a/src/regression/configword.c b/src/regression/configword.c index 9710851e..e3d9aefe 100644 --- a/src/regression/configword.c +++ b/src/regression/configword.c @@ -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(); } diff --git a/src/regression/create_stc b/src/regression/create_stc index 6684058f..4c7b26d3 100755 --- a/src/regression/create_stc +++ b/src/regression/create_stc @@ -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 diff --git a/src/regression/for.c b/src/regression/for.c index db3e7334..70c8ae20 100644 --- a/src/regression/for.c +++ b/src/regression/for.c @@ -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 index 00000000..5eb6f93e --- /dev/null +++ b/src/regression/gpsim_assert.h @@ -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 diff --git a/src/regression/inline.c b/src/regression/inline.c index d129fea9..40b3785c 100644 --- a/src/regression/inline.c +++ b/src/regression/inline.c @@ -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(); } diff --git a/src/regression/mult1.c b/src/regression/mult1.c index a5308746..69633f21 100644 --- a/src/regression/mult1.c +++ b/src/regression/mult1.c @@ -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(); } diff --git a/src/regression/nestfor.c b/src/regression/nestfor.c index 6ce48fc8..52a348e3 100644 --- a/src/regression/nestfor.c +++ b/src/regression/nestfor.c @@ -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(); } diff --git a/src/regression/or1.c b/src/regression/or1.c index fd451f96..27aeeace 100644 --- a/src/regression/or1.c +++ b/src/regression/or1.c @@ -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(); } diff --git a/src/regression/pointer1.c b/src/regression/pointer1.c index 839c65d4..735f668d 100644 --- a/src/regression/pointer1.c +++ b/src/regression/pointer1.c @@ -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 (); } diff --git a/src/regression/ptrfunc.c b/src/regression/ptrfunc.c index edab837d..7fb42b17 100644 --- a/src/regression/ptrfunc.c +++ b/src/regression/ptrfunc.c @@ -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(); } diff --git a/src/regression/rotate1.c b/src/regression/rotate1.c index 08cf97e1..a889ec69 100644 --- a/src/regression/rotate1.c +++ b/src/regression/rotate1.c @@ -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(); } diff --git a/src/regression/rotate2.c b/src/regression/rotate2.c index 8c6d65d6..16635bc6 100644 --- a/src/regression/rotate2.c +++ b/src/regression/rotate2.c @@ -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(); } diff --git a/src/regression/rotate3.c b/src/regression/rotate3.c index f5408987..1acae273 100644 --- a/src/regression/rotate3.c +++ b/src/regression/rotate3.c @@ -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(); } diff --git a/src/regression/rotate4.c b/src/regression/rotate4.c index bf9c4a45..9f0a282d 100644 --- a/src/regression/rotate4.c +++ b/src/regression/rotate4.c @@ -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(); } diff --git a/src/regression/rotate5.c b/src/regression/rotate5.c index 6836822f..00b9451d 100644 --- a/src/regression/rotate5.c +++ b/src/regression/rotate5.c @@ -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(); } diff --git a/src/regression/rotate6.c b/src/regression/rotate6.c index b07072be..78ab7753 100644 --- a/src/regression/rotate6.c +++ b/src/regression/rotate6.c @@ -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(); } diff --git a/src/regression/rotate7.c b/src/regression/rotate7.c index 1435355d..15460551 100644 --- a/src/regression/rotate7.c +++ b/src/regression/rotate7.c @@ -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(); } diff --git a/src/regression/rt.sh b/src/regression/rt.sh index a99c859e..c2563675 100755 --- a/src/regression/rt.sh +++ b/src/regression/rt.sh @@ -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 diff --git a/src/regression/simulate b/src/regression/simulate index 55c60bd5..3975de25 100755 --- a/src/regression/simulate +++ b/src/regression/simulate @@ -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 diff --git a/src/regression/string1.c b/src/regression/string1.c index 51d54762..adf3660b 100644 --- a/src/regression/string1.c +++ b/src/regression/string1.c @@ -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(); } diff --git a/src/regression/struct1.c b/src/regression/struct1.c index edbe6716..6929ecd6 100644 --- a/src/regression/struct1.c +++ b/src/regression/struct1.c @@ -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 (); } diff --git a/src/regression/sub.c b/src/regression/sub.c index e7f62bd8..fb0f1d6b 100644 --- a/src/regression/sub.c +++ b/src/regression/sub.c @@ -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(); } diff --git a/src/regression/sub2.c b/src/regression/sub2.c index 070924fd..60c1c909 100644 --- a/src/regression/sub2.c +++ b/src/regression/sub2.c @@ -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(); } diff --git a/src/regression/switch1.c b/src/regression/switch1.c index 179f9fa2..412a8768 100644 --- a/src/regression/switch1.c +++ b/src/regression/switch1.c @@ -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(); } diff --git a/src/regression/while.c b/src/regression/while.c index c004194d..714c1053 100644 --- a/src/regression/while.c +++ b/src/regression/while.c @@ -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 (); } diff --git a/src/regression/xor.c b/src/regression/xor.c index ce7637bb..cf5308c2 100644 --- a/src/regression/xor.c +++ b/src/regression/xor.c @@ -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(); }