* .version: bumped version to 2.4.7
[fw/sdcc] / support / regression / fwk / lib / testfwk.c
index aa52d87459ed3fa8343e081fa6a2f1668bfa9969..4753dea39655ac3e1ff7df624d187004a3b9e265 100644 (file)
@@ -3,10 +3,25 @@
 #include <testfwk.h>
 #include <stdarg.h>
 
+#ifdef __ds390
+#include <tinibios.h> /* main() must see the ISR declarations */
+#endif
+
+#if defined(PORT_HOST) || defined(SDCC_z80) || defined(SDCC_gbz80)
+#define _REENTRANT
+#else
+#define _REENTRANT reentrant
+#endif
+
+#if defined(SDCC_mcs51)
+/* until changed, isr's must have a prototype in the module containing main */
+void T2_isr (void) interrupt 5;
+#endif
+
 /** Define this if the port's div or mod functions are broken.
     A slow loop based method will be substituded.
 */
-#define BROKEN_DIV_MOD         1
+//#define BROKEN_DIV_MOD               1
 
 void _putchar(char c);
 void _exitEmu(void);
@@ -41,7 +56,7 @@ int __mod(int num, int denom)
 }
 #endif
 
-static void _printn(int n) 
+static void _printn(int n) _REENTRANT
 {
     int rem;
 
@@ -95,18 +110,17 @@ void __printf(const char *szFormat, ...) REENTRANT
 int __numTests;
 int __numFailures;
 
-void 
+void
 __fail(const char *szMsg, const char *szCond, const char *szFile, int line)
 {
     __printf("--- FAIL: \"%s\" on %s at %s:%u\n", szMsg, szCond, szFile, line);
     __numFailures++;
 }
 
-int 
+int
 main(void)
 {
-  // remove the next volatile and mcs51 will jump out of range
-    volatile TESTFUNP *cases;
+    TESTFUNP *cases;
     int numCases = 0;
 
     __printf("--- Running: %s\n", getSuiteName());
@@ -119,8 +133,8 @@ main(void)
         cases++;
         numCases++;
     }
-    
-    __printf("--- Summary: %u/%u/%u: %u failed of %u tests in %u cases.\n", 
+
+    __printf("--- Summary: %u/%u/%u: %u failed of %u tests in %u cases.\n",
            __numFailures, __numTests, numCases,
            __numFailures, __numTests, numCases
            );