testfwk.c
来自「Small Device C Compiler 面向Inter8051」· C语言 代码 · 共 141 行
C
141 行
/** Test framework support functions. */#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/** Define this if the port's div or mod functions are broken. A slow loop based method will be substituded.*///#define BROKEN_DIV_MOD 1void _putchar(char c);void _exitEmu(void);#if BROKEN_DIV_MODint __div(int num, int denom){ int q = 0; while (num >= denom) { q++; num -= denom; } return q;}int __mod(int num, int denom){ while (num >= denom) { num -= denom; } return num;}#elseint __div(int num, int denom){ return num/denom;}int __mod(int num, int denom){ return num%denom;}#endifstatic void _printn(int n) _REENTRANT{ int rem; if (n < 0) { _putchar('-'); n = -n; } rem = __mod(n, 10); if (rem != n) { _printn(__div(n, 10)); } _putchar('0' + rem);}void __printf(const char *szFormat, ...) REENTRANT{ va_list ap; va_start(ap, szFormat); while (*szFormat) { if (*szFormat == '%') { switch (*++szFormat) { case 's': { char *sz = va_arg(ap, char *); while (*sz) { _putchar(*sz++); } break; } case 'u': { int i = va_arg(ap, int); _printn(i); break; } case '%': _putchar('%'); break; default: break; } } else { _putchar(*szFormat); } szFormat++; } va_end(ap);}int __numTests;int __numFailures;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 main(void){ TESTFUNP *cases; int numCases = 0; __printf("--- Running: %s\n", getSuiteName()); cases = suite(); while (*cases) { __printf("Running %u\n", numCases); (*cases)(); cases++; numCases++; } __printf("--- Summary: %u/%u/%u: %u failed of %u tests in %u cases.\n", __numFailures, __numTests, numCases, __numFailures, __numTests, numCases ); _exitEmu(); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?