Browse Source

* DigestTestREport makes it possible to write the unittest results to a testsuite-digest

git-svn-id: trunk@9783 -
joost 17 years ago
parent
commit
7baab96e81

+ 1 - 0
.gitattributes

@@ -4139,6 +4139,7 @@ packages/fcl-fpcunit/src/DUnitCompatibleInterface.inc svneol=native#text/plain
 packages/fcl-fpcunit/src/README.txt 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
 packages/fcl-fpcunit/src/example_output/results.pdf -text
 packages/fcl-fpcunit/src/example_output/results.txt svneol=native#text/plain
 packages/fcl-fpcunit/src/example_xsl/fpcunit.css svneol=native#text/plain

+ 100 - 72
packages/fcl-fpcunit/Makefile

@@ -1,5 +1,5 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/11/08]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/01/07]
 #
 default: all
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos 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 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 sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
@@ -243,163 +243,163 @@ PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(F
 override PACKAGE_NAME=fcl-fpcunit
 override PACKAGE_VERSION=2.0.0
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils
+override TARGET_UNITS+=testregistry testreport testdecorator ubmockobject xmlreporter fpcunitreport latextestreport xmltestreport plaintestreport fpcunit testutils digesttestreport
 endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
@@ -1483,7 +1483,8 @@ endif
 ifeq ($(FULL_TARGET),i386-win32)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_WINUNITS=1
+REQUIRE_PACKAGES_WINUNITS-BASE=1
+REQUIRE_PACKAGES_WINUNITS-JEDI=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 endif
@@ -1718,7 +1719,8 @@ endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_WINUNITS=1
+REQUIRE_PACKAGES_WINUNITS-BASE=1
+REQUIRE_PACKAGES_WINUNITS-JEDI=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 endif
@@ -1892,30 +1894,56 @@ ifdef UNITDIR_FCL-XML
 override COMPILER_UNITDIR+=$(UNITDIR_FCL-XML)
 endif
 endif
-ifdef REQUIRE_PACKAGES_WINUNITS
-PACKAGEDIR_WINUNITS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /winunits/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_WINUNITS),)
-ifneq ($(wildcard $(PACKAGEDIR_WINUNITS)/units/$(TARGETSUFFIX)),)
-UNITDIR_WINUNITS=$(PACKAGEDIR_WINUNITS)/units/$(TARGETSUFFIX)
+ifdef REQUIRE_PACKAGES_WINUNITS-BASE
+PACKAGEDIR_WINUNITS-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /winunits-base/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_WINUNITS-BASE),)
+ifneq ($(wildcard $(PACKAGEDIR_WINUNITS-BASE)/units/$(TARGETSUFFIX)),)
+UNITDIR_WINUNITS-BASE=$(PACKAGEDIR_WINUNITS-BASE)/units/$(TARGETSUFFIX)
 else
-UNITDIR_WINUNITS=$(PACKAGEDIR_WINUNITS)
+UNITDIR_WINUNITS-BASE=$(PACKAGEDIR_WINUNITS-BASE)
 endif
 ifdef CHECKDEPEND
-$(PACKAGEDIR_WINUNITS)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_WINUNITS) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_WINUNITS)/$(FPCMADE)
+$(PACKAGEDIR_WINUNITS-BASE)/$(FPCMADE):
+	$(MAKE) -C $(PACKAGEDIR_WINUNITS-BASE) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_WINUNITS-BASE)/$(FPCMADE)
 endif
 else
-PACKAGEDIR_WINUNITS=
-UNITDIR_WINUNITS:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /winunits/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_WINUNITS),)
-UNITDIR_WINUNITS:=$(firstword $(UNITDIR_WINUNITS))
+PACKAGEDIR_WINUNITS-BASE=
+UNITDIR_WINUNITS-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /winunits-base/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_WINUNITS-BASE),)
+UNITDIR_WINUNITS-BASE:=$(firstword $(UNITDIR_WINUNITS-BASE))
 else
-UNITDIR_WINUNITS=
+UNITDIR_WINUNITS-BASE=
 endif
 endif
-ifdef UNITDIR_WINUNITS
-override COMPILER_UNITDIR+=$(UNITDIR_WINUNITS)
+ifdef UNITDIR_WINUNITS-BASE
+override COMPILER_UNITDIR+=$(UNITDIR_WINUNITS-BASE)
+endif
+endif
+ifdef REQUIRE_PACKAGES_WINUNITS-JEDI
+PACKAGEDIR_WINUNITS-JEDI:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /winunits-jedi/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_WINUNITS-JEDI),)
+ifneq ($(wildcard $(PACKAGEDIR_WINUNITS-JEDI)/units/$(TARGETSUFFIX)),)
+UNITDIR_WINUNITS-JEDI=$(PACKAGEDIR_WINUNITS-JEDI)/units/$(TARGETSUFFIX)
+else
+UNITDIR_WINUNITS-JEDI=$(PACKAGEDIR_WINUNITS-JEDI)
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_WINUNITS-JEDI)/$(FPCMADE):
+	$(MAKE) -C $(PACKAGEDIR_WINUNITS-JEDI) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_WINUNITS-JEDI)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_WINUNITS-JEDI=
+UNITDIR_WINUNITS-JEDI:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /winunits-jedi/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_WINUNITS-JEDI),)
+UNITDIR_WINUNITS-JEDI:=$(firstword $(UNITDIR_WINUNITS-JEDI))
+else
+UNITDIR_WINUNITS-JEDI=
+endif
+endif
+ifdef UNITDIR_WINUNITS-JEDI
+override COMPILER_UNITDIR+=$(UNITDIR_WINUNITS-JEDI)
 endif
 endif
 ifndef NOCPUDEF

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

@@ -9,7 +9,7 @@ version=2.0.0
 [target]
 units=testregistry testreport testdecorator ubmockobject xmlreporter \
       fpcunitreport latextestreport xmltestreport plaintestreport fpcunit \
-      testutils
+      testutils digesttestreport
 #exampledirs=exampletests
 
 [require]

+ 335 - 0
packages/fcl-fpcunit/src/digesttestreport.pp

@@ -0,0 +1,335 @@
+unit DigestTestReport;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+  classes, SysUtils, fpcunit, fpcunitreport, testutils{, tresults};
+
+{ ---------------------------------------------------------------------------- }
+{ This section is copy-pasted from the tresults unit of the testsuite          }
+{ because it is not possible to add a dependency on the testsuite              }
+{ ---------------------------------------------------------------------------- }
+
+const
+  failed_to_compile = 'Failed to compile ';
+  success_compilation_failed = 'Success, compilation failed ';
+  failed_compilation_successful = 'Failed, compilation successful ';
+  successfully_compiled = 'Successfully compiled ';
+  failed_to_run = 'Failed to run ';
+  successfully_run = 'Successfully run ';
+  skipping_graph_test = 'Skipping test because it uses graph ';
+  skipping_interactive_test = 'Skipping test because it is interactive ';
+  skipping_known_bug = 'Skipping test because it is a known bug ';
+  skipping_compiler_version_too_low = 'Skipping test because compiler version too low ';
+  skipping_compiler_version_too_high = 'Skipping test because compiler version too high ';
+  skipping_other_cpu = 'Skipping test because for other cpu ';
+  skipping_other_target = 'Skipping test because for other target ';
+  skipping_run_unit = 'Skipping test run because it is a unit ';
+  skipping_run_test = 'Skipping run test ';
+  known_problem = ' known problem: ';
+  line_separation = '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>';
+
+  ResLogfile  : string[32] = 'log';
+
+Type
+  TTestStatus = (
+  stFailedToCompile,
+  stSuccessCompilationFailed,
+  stFailedCompilationsuccessful,
+  stSuccessfullyCompiled,
+  stFailedToRun,
+  stKnownRunProblem,
+  stSuccessFullyRun,
+  stSkippingGraphTest,
+  stSkippingInteractiveTest,
+  stSkippingKnownBug,
+  stSkippingCompilerVersionTooLow,
+  stSkippingCompilerVersionTooHigh,
+  stSkippingOtherCpu,
+  stSkippingOtherTarget,
+  stskippingRunUnit,
+  stskippingRunTest
+  );
+
+const
+  StatusText : Array[TTestStatus] of String = (
+    failed_to_compile,
+    success_compilation_failed,
+    failed_compilation_successful ,
+    successfully_compiled ,
+    failed_to_run ,
+    known_problem ,
+    successfully_run ,
+    skipping_graph_test ,
+    skipping_interactive_test ,
+    skipping_known_bug ,
+    skipping_compiler_version_too_low,
+    skipping_compiler_version_too_high,
+    skipping_other_cpu ,
+    skipping_other_target ,
+    skipping_run_unit ,
+    skipping_run_test
+  );
+
+{ ---------------------------------------------------------------------------- }
+{ End of the code from tresults from the testsuite                             }
+{ ---------------------------------------------------------------------------- }
+
+type
+
+  { TDigestResultsWriter }
+
+  TDigestResultsWriter = class(TCustomResultsWriter)
+  private
+    FTestResult : TTestStatus;
+    FOutputDir : String;
+    FHostName : String;
+  private
+    procedure CreateTar;
+  public
+  {ITestListener}
+    procedure AddFailure(ATest: TTest; AFailure: TTestFailure); override;
+    procedure AddError(ATest: TTest; AError: TTestFailure); override;
+    procedure StartTest(ATest: TTest); override;
+    procedure EndTest(ATest: TTest); override;
+    procedure StartTestSuite(ATestSuite: TTestSuite); override;
+    procedure EndTestSuite(ATestSuite: TTestSuite); override;
+  end;
+  
+implementation
+
+uses LibTar,
+{$IFDEF UNIX}
+     Unix,BaseUnix,
+{$ENDIF}
+{$IFDEF MSWINDOWS}
+     windows,
+{$ENDIF}
+     zstream;
+     
+Function PathExists (Const F : String) : Boolean;
+{
+  Returns True if the file exists, False if not.
+}
+Var
+  info : Tsearchrec;
+begin
+  PathExists:=(FindFirst (F,faAnyFile,Info)=0) and  ((Info.Attr and faDirectory)=faDirectory);
+  sysutils.FindClose (Info);
+end;
+
+function CompilerFullTarget:string;
+begin
+  CompilerFullTarget:={$I %FPCTARGETCPU%}+'-'+{$I %FPCTARGETOS%};
+end;
+
+procedure AddLog(const logfile,s:string);
+var
+  t : text;
+begin
+  assign(t,logfile);
+  {$I-}
+  append(t);
+  {$I+}
+  if ioresult<>0 then
+    begin
+    {$I-}
+    rewrite(t);
+    {$I+}
+    if ioresult<>0 then
+      begin
+      writeln('Can''t append to '+logfile);
+      exit;
+      end;
+    end;
+  writeln(t,s);
+  close(t);
+end;
+
+function SplitPath(const s:string):string;
+var
+  i : longint;
+begin
+  i:=Length(s);
+  while (i>0) and not(s[i] in ['/','\'{$IFDEF MACOS},':'{$ENDIF}]) do
+   dec(i);
+  SplitPath:=Copy(s,1,i);
+end;
+
+procedure mkdirtree(const s:string);
+var
+  hs : string;
+begin
+  if s='' then
+    exit;
+  if s[length(s)] in ['\','/'{$IFDEF MACOS},':'{$ENDIF}] then
+    hs:=Copy(s,1,length(s)-1)
+  else
+    hs:=s;
+  if not PathExists(hs) then
+    begin
+      { Try parent first }
+      mkdirtree(SplitPath(hs));
+      { make this dir }
+      {$I-}
+       mkdir(s);
+      {$I+}
+      ioresult;
+    end;
+end;
+
+{ TDBResultsWriter }
+
+procedure TDigestResultsWriter.CreateTar;
+
+var TarWriter : TTarWriter;
+    C : TGZFileStream;
+    OldDir : String;
+    TarFileName : String;
+    CurrentDate : TDateTime;
+{$IFDEF MSWINDOWS}
+    CFileTime : TFileTime;
+    CSystemTime : TSystemTime;
+{$ENDIF}
+{$IFDEF UNIX}
+    TimeVal  : TTimeVal;
+    TimeZone : TTimeZone;
+{$ENDIF}
+
+  procedure AddTree(Const ADir : String);
+
+  var d : TSearchRec;
+
+  begin
+    if FindFirst(adir+'/*',faAnyFile,d)=0 Then
+      begin
+        repeat
+          if (d.Attr and faDirectory)=faDirectory then
+            begin
+            if (d.Name<>'.') and (d.Name<>'..') then
+              begin
+              TarWriter.AddDir(ADir+'/'+d.Name, CurrentDate);
+              AddTree(ADir+'/'+d.Name);
+              end;
+            end
+          else if d.Name <> TarFileName then
+            TarWriter.AddFile (ADir+'/'+ d.Name);
+        until findnext(d)<>0;
+        sysutils.Findclose(d);
+      end;
+  end;
+
+
+begin
+  TarFileName:= FHostName+FormatDateTime('yyyymmddhhmm',Now)+'.tar.gz';
+  getdir(0,OldDir);
+  Chdir(FOutputDir);
+  
+  C:=TGZFileStream.Create(TarFileName,gzOpenWrite);
+  TarWriter := TTarWriter.Create (C);
+  CurrentDate := Now;
+{$IFDEF UNIX}
+  fpGetTimeOfDay (@TimeVal, @TimeZone);
+  CurrentDate := CurrentDate + TimeZone.tz_minuteswest / (60 * 24);
+{$ENDIF}
+{$IFDEF MSWINDOWS}
+  DateTimeToSystemTime(CurrentDate,CSystemTime);
+  SystemTimeToFileTime(CSystemTime,CFileTime);
+  LocalFileTimeToFileTime(CFileTime,CFileTime);
+  FileTimeToSystemTime(CFileTime,CSystemTime);
+  CurrentDate:= SystemTimeToDateTime(CSystemTime);
+{$ENDIF}
+  AddTree('.');
+
+  TarWriter.free;
+  c.free;
+  chdir(OldDir);
+end;
+
+procedure TDigestResultsWriter.AddFailure(ATest: TTest; AFailure: TTestFailure);
+begin
+  if AFailure.IsIgnoredTest then
+    FTestResult := stskippingRunTest
+  else
+    FTestResult := stFailedToRun;
+  AddLog(FOutputDir+'/'+ATest.TestSuiteName+ '/' + ATest.TestName+'.elg',AFailure.AsString);
+end;
+
+procedure TDigestResultsWriter.AddError(ATest: TTest; AError: TTestFailure);
+begin
+  if AError.IsIgnoredTest then
+    FTestResult := stskippingRunTest
+  else
+    FTestResult := stFailedToRun;
+  AddLog(FOutputDir+'/'+ATest.TestSuiteName+ '/' + ATest.TestName+'.elg',AError.AsString);
+end;
+
+procedure TDigestResultsWriter.StartTest(ATest: TTest);
+begin
+  AddLog(FOutputDir+'/'+'log',StatusText[stSuccessfullyCompiled]+ATest.TestSuiteName+ '/' + ATest.TestName);
+  FTestResult := stSuccessFullyRun;
+end;
+
+procedure TDigestResultsWriter.EndTest(ATest: TTest);
+begin
+  AddLog(FOutputDir+'/'+'log',StatusText[FTestResult]+ATest.TestSuiteName+ '/' + ATest.TestName);
+end;
+
+procedure TDigestResultsWriter.StartTestSuite(ATestSuite: TTestSuite);
+var OldDir : String;
+begin
+  if ATestSuite.TestName = '' then
+    begin
+{$ifndef MACOS}
+    FOutputDir:='output/'+{$ifdef LIMIT83FS}CompilerTarget{$else}CompilerFullTarget{$endif};
+{$else MACOS}
+    FOutputDir:=':output:'+CompilerFullTarget;
+{$endif MACOS}
+
+    end
+  else
+    begin
+    getdir(0,OldDir);
+    {$I-}
+    chdir(FOutputDir+'/'+ATestSuite.TestName);
+    {$I+}
+    if IOResult<>0 then
+      begin
+      mkdirtree(FOutputDir+'/'+ATestSuite.TestName);
+      end
+    else
+      chdir(OldDir);
+    end;
+end;
+
+procedure TDigestResultsWriter.EndTestSuite(ATestSuite: TTestSuite);
+var DigestFileName : String;
+    Comment        : String;
+    i              : byte;
+begin
+  if ATestSuite.TestName='' then
+    begin
+    DigestFileName:=FOutputDir+'/dbdigest.cfg';
+    AddLog(DigestFileName,'OS='+{$I %FPCTARGETOS%});
+    AddLog(DigestFileName,'CPU='+{$I %FPCTARGETCPU%});
+    AddLog(DigestFileName,'Version='+{$I %FPCVERSION%});
+    AddLog(DigestFileName,'LogFile=log');
+    AddLog(DigestFileName,'Submitter='+sysutils.GetEnvironmentVariable('USER'));
+    FHostName:=sysutils.GetEnvironmentVariable('HOSTNAME');
+    if pos('.',FHostName)>0 then
+      FHostName:=system.Copy(FHostName,1,pos('.',FHostName));
+    AddLog(DigestFileName,'Machine='+FHostName);
+    
+    Comment:='';
+    for i := 1 to Paramcount do
+      Comment:=Comment+ParamStr(i)+' ';
+    AddLog(DigestFileName,'Comment='+Comment);
+// Create .tar.gz file
+    CreateTar;
+    end;
+end;
+
+end.
+