2
0
Эх сурвалжийг харах

* Moved consoletestrunner from LCL to fcl

git-svn-id: trunk@20010 -
michael 13 жил өмнө
parent
commit
c9eb7540bf

+ 1 - 0
.gitattributes

@@ -2040,6 +2040,7 @@ packages/fcl-fpcunit/Makefile.fpc svneol=native#text/plain
 packages/fcl-fpcunit/fpmake.pp svneol=native#text/plain
 packages/fcl-fpcunit/src/DUnitCompatibleInterface.inc svneol=native#text/plain
 packages/fcl-fpcunit/src/README.txt svneol=native#text/plain
+packages/fcl-fpcunit/src/consoletestrunner.pas svneol=native#text/plain
 packages/fcl-fpcunit/src/demo/consolerunner/suiteconfig.pp svneol=native#text/plain
 packages/fcl-fpcunit/src/demo/consolerunner/testrunner.pp svneol=native#text/plain
 packages/fcl-fpcunit/src/digesttestreport.pp svneol=native#text/plain

+ 72 - 66
packages/fcl-fpcunit/Makefile

@@ -1,5 +1,5 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2011/12/04]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2011/11/22]
 #
 default: all
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-solaris x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded avr-embedded armeb-linux armeb-embedded mipsel-linux
@@ -153,6 +153,12 @@ ifdef OS_TARGET_DEFAULT
 OS_TARGET=$(OS_TARGET_DEFAULT)
 endif
 endif
+ifneq ($(words $(FPC_COMPILERINFO)),5)
+FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
+FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
+FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
+FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
+endif
 ifndef CPU_SOURCE
 CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
 endif
@@ -295,193 +301,193 @@ endif
 override PACKAGE_NAME=fcl-fpcunit
 override PACKAGE_VERSION=2.7.1
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport consoletestrunner
 endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
@@ -1482,7 +1488,7 @@ ifeq ($(OS_TARGET),go32v2)
 UPXPROG:=1
 endif
 ifeq ($(OS_TARGET),win32)
-UPXPROG:=
+UPXPROG:=1
 endif
 ifdef UPXPROG
 UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
@@ -1505,7 +1511,7 @@ else
 TAROPT=vz
 TAREXT=.tar.gz
 endif
-override REQUIRE_PACKAGES=rtl paszlib fcl-xml
+override REQUIRE_PACKAGES=rtl paszlib fcl-xml fcl-base
 ifeq ($(FULL_TARGET),i386-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1

+ 2 - 2
packages/fcl-fpcunit/Makefile.fpc

@@ -9,11 +9,11 @@ version=2.7.1
 [target]
 units=testregistry testreport testdecorator ubmockobject xmlreporter \
       fpcunitreport latextestreport xmltestreport plaintestreport fpcunit \
-      testutils digesttestreport
+      testutils digesttestreport consoletestrunner
 #exampledirs=exampletests
 
 [require]
-packages=paszlib fcl-xml
+packages=paszlib fcl-xml fcl-base
 
 [compiler]
 options=-S2h

+ 10 - 0
packages/fcl-fpcunit/fpmake.pp

@@ -99,6 +99,16 @@ begin
           AddUnit('fpcunitreport');
           AddUnit('testutils');
         end;
+    T:=P.Targets.AddUnit('consoletestrunner.pp');
+      with T.Dependencies do
+        begin
+          AddUnit('fpcunit');
+          AddUnit('fpcunitreport');
+          AddUnit('testutils');
+          AddUnit('xmltestreport.pp');
+          AddUnit('latextestreport.pp');
+          AddUnit('plaintestreport.pp');
+        end;
 
 {$ifndef ALLPACKAGES}
     Run;

+ 340 - 0
packages/fcl-fpcunit/src/consoletestrunner.pas

@@ -0,0 +1,340 @@
+{ This unit contains the TTestRunner class, a base class for the console test
+  runner for fpcunit.
+
+  Copyright (C) 2006 Vincent Snijders
+
+  This library is free software; you can redistribute it and/or modify it
+  under the terms of the GNU Library General Public License as published by
+  the Free Software Foundation; either version 2 of the License, 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 Library General Public License
+  for more details.
+
+  You should have received a copy of the GNU Library General Public License
+  along with this library; if not, write to the Free Software Foundation,
+  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+}
+unit consoletestrunner;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+  custapp, Classes, SysUtils, fpcunit, testregistry, testutils,
+  fpcunitreport, latextestreport, xmltestreport, plaintestreport,
+  dom;
+
+const
+  Version = '0.2';
+
+type
+  TFormat = (fPlain, fLatex, fXML);
+
+var
+  DefaultFormat : TFormat = fXML;
+  DefaultRunAllTests : Boolean = False;
+
+type
+  { TTestRunner }
+
+  TTestRunner = class(TCustomApplication)
+  private
+    FShowProgress: boolean;
+    FFileName: string;
+    FStyleSheet: string;
+    FLongOpts: TStrings;
+    FFormatParam: TFormat;
+  protected
+    property FileName: string read FFileName write FFileName;
+    property LongOpts: TStrings read FLongOpts write FLongOpts;
+    property ShowProgress: boolean read FShowProgress write FShowProgress;
+    property StyleSheet: string read FStyleSheet write FStyleSheet;
+    property FormatParam: TFormat read FFormatParam write FFormatParam;
+    procedure DoRun; override;
+    procedure DoTestRun(ATest: TTest); virtual;
+    function GetShortOpts: string; virtual;
+    procedure AppendLongOpts; virtual;
+    procedure WriteCustomHelp; virtual;
+    procedure ParseOptions; virtual;
+    procedure ExtendXmlDocument(Doc: TXMLDocument); virtual;
+    function GetResultsWriter: TCustomResultsWriter; virtual;
+  public
+    constructor Create(AOwner: TComponent); override;
+    destructor Destroy; override;
+  end;
+
+implementation
+
+const
+  ShortOpts = 'alhp';
+  DefaultLongOpts: array[1..8] of string =
+     ('all', 'list', 'progress', 'help',
+      'suite:', 'format:', 'file:', 'stylesheet:');
+
+  { TProgressWriter }
+type
+  TProgressWriter= class(TNoRefCountObject, ITestListener)
+  private
+    FSuccess: boolean;
+    procedure WriteChar(c: char);
+  public
+    destructor Destroy; override;
+
+    { ITestListener interface requirements }
+    procedure AddFailure(ATest: TTest; AFailure: TTestFailure);
+    procedure AddError(ATest: TTest; AError: TTestFailure);
+    procedure StartTest(ATest: TTest);
+    procedure EndTest(ATest: TTest);
+    procedure StartTestSuite(ATestSuite: TTestSuite);
+    procedure EndTestSuite(ATestSuite: TTestSuite);
+  end;
+
+procedure TProgressWriter.WriteChar(c: char);
+begin
+  write(c);
+  // flush output, so that we see the char immediately, even it is written to file
+  Flush(output);
+end;
+
+destructor TProgressWriter.Destroy;
+begin
+  // on descruction, just write the missing line ending
+  writeln;
+  inherited Destroy;
+end;
+
+procedure TProgressWriter.AddFailure(ATest: TTest; AFailure: TTestFailure);
+begin
+  FSuccess := false;
+  writechar('F');
+end;
+
+procedure TProgressWriter.AddError(ATest: TTest; AError: TTestFailure);
+begin
+  FSuccess := false;
+  writechar('E');
+end;
+
+procedure TProgressWriter.StartTest(ATest: TTest);
+begin
+  FSuccess := true; // assume success, until proven otherwise
+end;
+
+procedure TProgressWriter.EndTest(ATest: TTest);
+begin
+  if FSuccess then
+    writechar('.');
+end;
+
+procedure TProgressWriter.StartTestSuite(ATestSuite: TTestSuite);
+begin
+  // do nothing
+end;
+
+procedure TProgressWriter.EndTestSuite(ATestSuite: TTestSuite);
+begin
+  // do nothing
+end;
+
+function TTestRunner.GetResultsWriter: TCustomResultsWriter;
+begin
+  case FormatParam of
+    fLatex: Result := TLatexResultsWriter.Create(nil);
+    fPlain: Result := TPlainResultsWriter.Create(nil);
+  else
+    begin
+      Result := TXmlResultsWriter.Create(nil);
+      ExtendXmlDocument(TXMLResultsWriter(Result).Document);
+    end;
+  end;
+end;
+
+procedure TTestRunner.DoTestRun(ATest: TTest);
+var
+  ResultsWriter: TCustomResultsWriter;
+  ProgressWriter: TProgressWriter;
+  TestResult: TTestResult;
+begin
+  ResultsWriter := GetResultsWriter;
+  ResultsWriter.Filename := FileName;
+  TestResult := TTestResult.Create;
+  try
+    if ShowProgress then
+    begin
+      ProgressWriter := TProgressWriter.Create;
+      TestResult.AddListener(ProgressWriter);
+    end
+    else
+      ProgressWriter := nil;
+    TestResult.AddListener(ResultsWriter);
+    ATest.Run(TestResult);
+    ResultsWriter.WriteResult(TestResult);
+  finally
+    TestResult.Free;
+    ResultsWriter.Free;
+    ProgressWriter.Free;
+  end;
+end;
+
+function TTestRunner.GetShortOpts: string;
+begin
+  Result := ShortOpts;
+end;
+
+procedure TTestRunner.AppendLongOpts;
+var
+  i: Integer;
+begin
+  for i := low(DefaultLongOpts) to high(DefaultLongOpts) do
+    LongOpts.Add(DefaultLongOpts[i]);
+end;
+
+procedure TTestRunner.WriteCustomHelp;
+begin
+  // no custom help options in base class;
+end;
+
+procedure TTestRunner.ParseOptions;
+begin
+  if HasOption('h', 'help') or ((ParamCount = 0) and not DefaultRunAllTests) then
+  begin
+    writeln(Title);
+    writeln(Version);
+    writeln;
+    writeln('Usage: ');
+    writeln('  --format=latex            output as latex source (only list implemented)');
+    writeln('  --format=plain            output as plain ASCII source');
+    writeln('  --format=xml              output as XML source (default)');
+    writeln('  --stylesheet=<reference>   add stylesheet reference');
+    writeln('  --file=<filename>         output results to file');
+    writeln;
+    writeln('  -l or --list              show a list of registered tests');
+    writeln('  -a or --all               run all tests');
+    writeln('  -p or --progress          show progress');
+    writeln('  --suite=MyTestSuiteName   run single test suite class');
+    WriteCustomHelp;
+    writeln;
+    writeln('The results can be redirected to an xml file,');
+    writeln('for example: ', ParamStr(0),' --all > results.xml');
+  end;
+
+  //get the format parameter
+  FormatParam := DefaultFormat;
+  if HasOption('format') then
+  begin
+    if CompareText(GetOptionValue('format'),'latex')=0 then
+      FormatParam := fLatex
+    else if CompareText(GetOptionValue('format'),'plain')=0 then
+      FormatParam := fPlain
+    else if CompareText(GetOptionValue('format'),'xml')=0 then
+      FormatParam := fXML;
+  end;
+
+  ShowProgress := HasOption('p', 'progress');
+
+  if HasOption('file') then
+    FileName := GetOptionValue('file');
+  if HasOption('stylesheet') then
+    StyleSheet := GetOptionValue('stylesheet');
+end;
+
+procedure TTestRunner.ExtendXmlDocument(Doc: TXMLDocument);
+var
+  n: TDOMElement;
+begin
+  if StyleSheet<>'' then begin
+    Doc.StylesheetType := 'text/xsl';
+    Doc.StylesheetHRef := StyleSheet;
+  end;
+  n := Doc.CreateElement('Title');
+  n.AppendChild(Doc.CreateTextNode(Title));
+  Doc.FirstChild.AppendChild(n);
+end;
+
+constructor TTestRunner.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  FLongOpts := TStringList.Create;
+  AppendLongOpts;
+end;
+
+destructor TTestRunner.Destroy;
+begin
+  FLongOpts.Free;
+  inherited Destroy;
+end;
+
+procedure TTestRunner.DoRun;
+
+  procedure CheckTestRegistry (test:TTest; ATestName:string);
+  var s, c : string;
+      I, p : integer;
+  begin
+    if test is TTestSuite then
+      begin
+      p := pos ('.', ATestName);
+      if p > 0 then
+        begin
+        s := copy (ATestName, 1, p-1);
+        c := copy (ATestName, p+1, maxint);
+        end
+      else
+        begin
+        s := '';
+        c := ATestName;
+        end;
+      if comparetext(c, test.TestName) = 0 then
+        DoTestRun(test)
+      else if (CompareText( s, Test.TestName) = 0) or (s = '') then
+        for I := 0 to TTestSuite(test).Tests.Count - 1 do
+          CheckTestRegistry (TTest(TTestSuite(test).Tests[I]), c)
+      end
+    else // if test is TTestCase then
+      begin
+      if comparetext(test.TestName, ATestName) = 0 then
+        DoTestRun(test);
+      end;
+  end;
+
+var
+  I: integer;
+  S: string;
+begin
+  S := CheckOptions(GetShortOpts, LongOpts);
+  if (S <> '') then
+    Writeln(S);
+
+  ParseOptions;
+
+  //get a list of all registed tests
+  if HasOption('l', 'list') then
+    case FormatParam of
+      fLatex: Write(GetSuiteAsLatex(GetTestRegistry));
+      fPlain: Write(GetSuiteAsPlain(GetTestRegistry));
+    else
+      Write(GetSuiteAsLatex(GetTestRegistry));;
+    end;
+
+  //run the tests
+  if HasOption('suite') then
+  begin
+    S := '';
+    S := GetOptionValue('suite');
+    if S = '' then
+      for I := 0 to GetTestRegistry.Tests.Count - 1 do
+        writeln(GetTestRegistry[i].TestName)
+    else
+      for I := 0 to GetTestRegistry.Tests.count-1 do
+        CheckTestRegistry (GetTestregistry[I], S);
+  end
+  else if HasOption('a', 'all') or (DefaultRunAllTests and Not HasOption('l','list')) then
+    DoTestRun(GetTestRegistry) ;
+  Terminate;
+end;
+
+end.
+