+ support for running the testsuite in parallel. Note that only the "all"

target can be run in parallel, so "clean", "digest" and/or "dbdigest"
    have to be run in separate make invocations if you wish to use -j for
    running the testsuite

git-svn-id: trunk@21406 -
This commit is contained in:
Jonas Maebe 2012-05-28 09:14:56 +00:00
parent 48aae2d031
commit 252483ffd8
9 changed files with 393 additions and 153 deletions

1
.gitattributes vendored
View File

@ -11458,6 +11458,7 @@ tests/units/win32err.pp svneol=native#text/plain
tests/utils/Makefile svneol=native#text/plain
tests/utils/Makefile.fpc svneol=native#text/plain
tests/utils/bench.pp svneol=native#text/plain
tests/utils/concat.pp svneol=native#text/plain
tests/utils/dbdigest.pp svneol=native#text/plain
tests/utils/dbtests.pp svneol=native#text/plain
tests/utils/digest.pp svneol=native#text/plain

View File

@ -1,8 +1,8 @@
#
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/05/27]
#
default: allexectests
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 powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd 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 powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
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 powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd 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 powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux jvm-java jvm-android
BSDs = freebsd netbsd openbsd darwin
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom
@ -258,11 +258,13 @@ ifndef BINUTILSPREFIX
ifndef CROSSBINDIR
ifdef CROSSCOMPILE
ifndef DARWIN2DARWIN
ifneq ($(CPU_TARGET),jvm)
BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
endif
endif
endif
endif
endif
UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
ifeq ($(UNITSDIR),)
UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
@ -650,6 +652,18 @@ BATCHEXT=.sh
EXEEXT=
SHORTSUFFIX=aix
endif
ifeq ($(OS_TARGET),java)
OEXT=.class
ASMEXT=.j
SHAREDLIBEXT=.jar
SHORTSUFFIX=java
endif
ifeq ($(OS_TARGET),android)
OEXT=.class
ASMEXT=.j
SHAREDLIBEXT=.jar
SHORTSUFFIX=android
endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@ -1003,17 +1017,12 @@ endif
endif
ifdef CREATESHARED
override FPCOPT+=-Cg
ifeq ($(CPU_TARGET),i386)
override FPCOPT+=-Aas
endif
endif
ifeq ($(findstring 2.0.,$(FPC_VERSION)),)
ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
endif
endif
ifdef LINKSHARED
endif
ifdef OPT
@ -1351,6 +1360,8 @@ endif
ifndef LOG
export LOG:=$(TEST_OUTPUTDIR)/log
endif
LOGFILES=$(TEST_OUTPUTDIR)/log $(TEST_OUTPUTDIR)/longlog $(TEST_OUTPUTDIR)/faillist
LOGEXT=.testlog .tbslog .tbflog .webtbslog .webtbflog
TESTSUBDIRS=cg cg/variants cg/cdecl library opt units/system units/dos units/crt units/objects units/strings units/sysutils units/math units/sharemem units/strutils units/matrix units/lineinfo
TESTPACKAGESUBDIRS=packages/win-base packages/webtbs packages/hash packages/fcl-registry packages/fcl-process packages/zlib packages/fcl-db packages/fcl-base packages/fcl-xml packages/cocoaint packages/bzip2
ifdef QUICKTEST
@ -1370,6 +1381,9 @@ endif
ifndef DOTEST
DOTEST=utils/dotest
endif
ifndef CONCAT
CONCAT=utils/concat
endif
ifndef PREPUP
PREPUP=utils/prepup
endif
@ -1415,8 +1429,8 @@ copyfiles: $(TEST_OUTPUTDIR)
-$(MKDIRTREE) $(TEST_OUTPUTDIR)/test/units/system
$(COPY) test/units/system/test*.txt $(TEST_OUTPUTDIR)/test/units/system
testprep: testprep-stamp.$(TEST_FULL_TARGET)
testprep-stamp.$(TEST_FULL_TARGET): $(TEST_OUTPUTDIR) utils units copyfiles
$(ECHO) $(DATE) > testprep-stamp.$(TEST_FULL_TARGET)
testprep-stamp.$(TEST_FULL_TARGET): utils units copyfiles
$(ECHOREDIR) $(DATE) > testprep-stamp.$(TEST_FULL_TARGET)
$(TEST_OUTPUTDIR):
$(MKDIRTREE) $@
ifneq ($(TEST_FPC),ppc386$(EXEEXT))
@ -1497,14 +1511,25 @@ DIRS=webtbs webtbf tbs tbf $(TESTDIRS)
vpath %.log $(TEST_OUTPUTDIR)
vpath %.elg $(TEST_OUTPUTDIR)
vpath %.o $(C_SUBDIR)
%.log : %.pp
ifdef SINGLEDOTESTRUNS
TBSREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard tbs/t*.pp)))
TBFREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard tbf/t*.pp)))
WEBTBSREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard webtbs/t*.pp)))
WEBTBFREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard webtbf/t*.pp)))
TESTREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard $(addsuffix /t*.pp,$(TESTDIRS)))))
else
TBSREQ=$(TEST_OUTPUTDIR)/tbsdir-stamp.$(TEST_FULL_TARGET)
TBFREQ=$(TEST_OUTPUTDIR)/tbfdir-stamp.$(TEST_FULL_TARGET)
WEBTBSREQ=$(TEST_OUTPUTDIR)/webtbsdir-stamp.$(TEST_FULL_TARGET)
WEBTBFREQ=$(TEST_OUTPUTDIR)/webtbfdir-stamp.$(TEST_FULL_TARGET)
TESTREQ=$(TEST_OUTPUTDIR)/testdir-stamp.$(TEST_FULL_TARGET)
endif
%.log : %.pp testprep-stamp.$(TEST_FULL_TARGET)
$(call QECHO," COMPILE $<")
$(Q)$(DOTEST) $(DOTESTOPT) $<
%.elg : %.pp
%.elg : %.pp testprep-stamp.$(TEST_FULL_TARGET)
$(call QECHO," EXECUTE $<")
ifdef SINGLEDOTESTRUNS
$(Q)$(DOTEST) $(DOTESTOPT) -e $<
endif
ifdef TEST_CCOMPILER
%.o : %.c
$(TEST_CCOMPILER) -c $< -o $(@D)/$(C_SUBDIR)/$(@F)
@ -1522,33 +1547,50 @@ ifndef SINGLEDOTESTRUNS
endif
alltests: alltest alltbs alltbf allwebtbs allwebtbf
.PHONY: allexectbs allexectbf allexecwebtbs allexecwebtbf allexectest allexectests
allexectbs : testprep $(patsubst %.pp,%.elg,$(sort $(wildcard tbs/t*.pp)))
ifndef SINGLEDOTESTRUNS
$(Q)$(DOTEST) $(DOTESTOPT) -e $(sort $(wildcard tbs/t*.pp))
endif
allexectbf : testprep $(patsubst %.pp,%.elg,$(sort $(wildcard tbf/t*.pp)))
ifndef SINGLEDOTESTRUNS
$(Q)$(DOTEST) $(DOTESTOPT) -e $(sort $(wildcard tbf/t*.pp))
endif
allexecwebtbs : testprep $(patsubst %.pp,%.elg,$(sort $(wildcard webtbs/t*.pp)))
ifndef SINGLEDOTESTRUNS
$(Q)$(DOTEST) $(DOTESTOPT) -e $(sort $(wildcard webtbs/t*.pp))
endif
allexecwebtbf : testprep $(patsubst %.pp,%.elg,$(sort $(wildcard webtbf/t*.pp)))
ifndef SINGLEDOTESTRUNS
$(Q)$(DOTEST) $(DOTESTOPT) -e $(sort $(wildcard webtbf/t*.pp))
endif
allexectest : testprep $(patsubst %.pp,%.elg,$(sort $(wildcard $(addsuffix /t*.pp,$(TESTDIRS)))))
ifndef SINGLEDOTESTRUNS
$(Q)$(DOTEST) $(DOTESTOPT) -e $(sort $(wildcard $(addsuffix /t*.pp,$(TESTDIRS))))
endif
allexectests: allexectest allexectbs allexectbf allexecwebtbs allexecwebtbf
allexectbs: $(addsuffix .tbslog, $(LOGFILES))
allexectbf: $(addsuffix .tbflog, $(LOGFILES))
allexecwebtbs: $(addsuffix .webtbslog, $(LOGFILES))
allexecwebtbf: $(addsuffix .webtbflog, $(LOGFILES))
allexectest: $(addsuffix .testlog, $(LOGFILES))
$(TEST_OUTPUTDIR)/%.mergedlog : $(TEST_OUTPUTDIR)/%.testlog $(TEST_OUTPUTDIR)/%.tbslog $(TEST_OUTPUTDIR)/%.tbflog $(TEST_OUTPUTDIR)/%.webtbslog $(TEST_OUTPUTDIR)/%.webtbflog
$(Q)$(CONCAT) $^ $@
$(Q)$(COPY) $@ $(basename $@)
$(TEST_OUTPUTDIR)/tbsdir-stamp.$(TEST_FULL_TARGET): testprep-stamp.$(TEST_FULL_TARGET)
$(Q)$(DOTEST) $(DOTESTOPT) -Ltbslog -e $(sort $(wildcard tbs/t*.pp))
$(ECHOREDIR) $(DATE) > $@
$(TEST_OUTPUTDIR)/%.tbslog : $(TBSREQ)
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/faillist.tbslog
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/longlog.tbslog
$(TEST_OUTPUTDIR)/tbfdir-stamp.$(TEST_FULL_TARGET): testprep-stamp.$(TEST_FULL_TARGET)
$(Q)$(DOTEST) $(DOTESTOPT) -Ltbflog -e $(sort $(wildcard tbf/t*.pp))
$(ECHOREDIR) $(DATE) > $@
$(TEST_OUTPUTDIR)/%.tbflog : $(TBFREQ)
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/faillist.tbflog
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/longlog.tbflog
$(TEST_OUTPUTDIR)/webtbsdir-stamp.$(TEST_FULL_TARGET): testprep-stamp.$(TEST_FULL_TARGET)
$(Q)$(DOTEST) $(DOTESTOPT) -Lwebtbslog -e $(sort $(wildcard webtbs/t*.pp))
$(Q)$(ECHOREDIR) $(DATE) > $@
$(TEST_OUTPUTDIR)/%.webtbslog : $(WEBTBSREQ)
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/faillist.webtbslog
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/longlog.webtbslog
$(TEST_OUTPUTDIR)/webtbfdir-stamp.$(TEST_FULL_TARGET): testprep-stamp.$(TEST_FULL_TARGET)
$(Q)$(DOTEST) $(DOTESTOPT) -Lwebtbflog -e $(sort $(wildcard webtbf/t*.pp))
$(ECHOREDIR) $(DATE) > $@
$(TEST_OUTPUTDIR)/%.webtbflog : $(WEBTBFREQ)
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/faillist.webtbflog
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/longlog.webtbflog
$(TEST_OUTPUTDIR)/testdir-stamp.$(TEST_FULL_TARGET): testprep-stamp.$(TEST_FULL_TARGET)
$(Q)$(DOTEST) $(DOTESTOPT) -Ltestlog -e $(sort $(wildcard $(addsuffix /t*.pp,$(TESTDIRS))))
$(ECHOREDIR) $(DATE) > $@
$(TEST_OUTPUTDIR)/%.testlog : $(TESTREQ)
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/faillist.testlog
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/longlog.testlog
allexectests: $(TEST_OUTPUTDIR)/log.webtbslog $(TEST_OUTPUTDIR)/log.testlog $(TEST_OUTPUTDIR)/log.tbslog $(TEST_OUTPUTDIR)/log.tbflog $(TEST_OUTPUTDIR)/log.webtbflog $(addprefix $(TEST_OUTPUTDIR)/,$(foreach EXT, $(LOGEXT), $(addsuffix $(EXT), faillist longlog))) $(addsuffix .mergedlog, $(LOGFILES))
.PHONY: clean distclean clean_test clean_sources
clean_sources:
-$(DEL) $(wildcard $(patsubst %.pp,%$(PPUEXT),$(wildcard $(addsuffix /*.pp,$(DIRS)))))
clean_test:
-$(DELTREE) $(TEST_OUTPUTDIR)
-$(DEL) $(LOG) $(LONGLOG) $(FAILLIST)
-$(DEL) core gmon.out testprep-stamp.$(TEST_FULL_TARGET) dotgz.bat
clean: clean_sources
$(MAKE) clean_test CPU_TARGET=$(TEST_CPU_TARGET) OS_TARGET=$(TEST_OS_TARGET)

View File

@ -133,6 +133,9 @@ ifndef LOG
export LOG:=$(TEST_OUTPUTDIR)/log
endif
# locations of all logfiles
LOGFILES=$(TEST_OUTPUTDIR)/log $(TEST_OUTPUTDIR)/longlog $(TEST_OUTPUTDIR)/faillist
LOGEXT=.testlog .tbslog .tbflog .webtbslog .webtbflog
# Subdirs available in the test subdir
TESTSUBDIRS=cg cg/variants cg/cdecl library opt units/system units/dos units/crt units/objects units/strings units/sysutils units/math units/sharemem units/strutils units/matrix units/lineinfo
@ -167,6 +170,10 @@ ifndef DOTEST
DOTEST=utils/dotest
endif
ifndef CONCAT
CONCAT=utils/concat
endif
ifndef PREPUP
PREPUP=utils/prepup
endif
@ -235,8 +242,8 @@ copyfiles: $(TEST_OUTPUTDIR)
#
testprep: testprep-stamp.$(TEST_FULL_TARGET)
testprep-stamp.$(TEST_FULL_TARGET): $(TEST_OUTPUTDIR) utils units copyfiles
$(ECHO) $(DATE) > testprep-stamp.$(TEST_FULL_TARGET)
testprep-stamp.$(TEST_FULL_TARGET): utils units copyfiles
$(ECHOREDIR) $(DATE) > testprep-stamp.$(TEST_FULL_TARGET)
$(TEST_OUTPUTDIR):
$(MKDIRTREE) $@
@ -346,15 +353,27 @@ vpath %.log $(TEST_OUTPUTDIR)
vpath %.elg $(TEST_OUTPUTDIR)
vpath %.o $(C_SUBDIR)
%.log : %.pp
ifdef SINGLEDOTESTRUNS
TBSREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard tbs/t*.pp)))
TBFREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard tbf/t*.pp)))
WEBTBSREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard webtbs/t*.pp)))
WEBTBFREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard webtbf/t*.pp)))
TESTREQ=$(patsubst %.pp,%.elg,$(sort $(wildcard $(addsuffix /t*.pp,$(TESTDIRS)))))
else
TBSREQ=$(TEST_OUTPUTDIR)/tbsdir-stamp.$(TEST_FULL_TARGET)
TBFREQ=$(TEST_OUTPUTDIR)/tbfdir-stamp.$(TEST_FULL_TARGET)
WEBTBSREQ=$(TEST_OUTPUTDIR)/webtbsdir-stamp.$(TEST_FULL_TARGET)
WEBTBFREQ=$(TEST_OUTPUTDIR)/webtbfdir-stamp.$(TEST_FULL_TARGET)
TESTREQ=$(TEST_OUTPUTDIR)/testdir-stamp.$(TEST_FULL_TARGET)
endif
%.log : %.pp testprep-stamp.$(TEST_FULL_TARGET)
$(call QECHO," COMPILE $<")
$(Q)$(DOTEST) $(DOTESTOPT) $<
%.elg : %.pp
%.elg : %.pp testprep-stamp.$(TEST_FULL_TARGET)
$(call QECHO," EXECUTE $<")
ifdef SINGLEDOTESTRUNS
$(Q)$(DOTEST) $(DOTESTOPT) -e $<
endif
ifdef TEST_CCOMPILER
%.o : %.c
@ -389,32 +408,62 @@ alltests: alltest alltbs alltbf allwebtbs allwebtbf
.PHONY: allexectbs allexectbf allexecwebtbs allexecwebtbf allexectest allexectests
allexectbs : testprep $(patsubst %.pp,%.elg,$(sort $(wildcard tbs/t*.pp)))
ifndef SINGLEDOTESTRUNS
$(Q)$(DOTEST) $(DOTESTOPT) -e $(sort $(wildcard tbs/t*.pp))
endif
allexectbs: $(addsuffix .tbslog, $(LOGFILES))
allexectbf: $(addsuffix .tbflog, $(LOGFILES))
allexecwebtbs: $(addsuffix .webtbslog, $(LOGFILES))
allexecwebtbf: $(addsuffix .webtbflog, $(LOGFILES))
allexectest: $(addsuffix .testlog, $(LOGFILES))
allexectbf : testprep $(patsubst %.pp,%.elg,$(sort $(wildcard tbf/t*.pp)))
ifndef SINGLEDOTESTRUNS
$(Q)$(DOTEST) $(DOTESTOPT) -e $(sort $(wildcard tbf/t*.pp))
endif
$(TEST_OUTPUTDIR)/%.mergedlog : $(TEST_OUTPUTDIR)/%.testlog $(TEST_OUTPUTDIR)/%.tbslog $(TEST_OUTPUTDIR)/%.tbflog $(TEST_OUTPUTDIR)/%.webtbslog $(TEST_OUTPUTDIR)/%.webtbflog
$(Q)$(CONCAT) $^ $@
$(Q)$(COPY) $@ $(basename $@)
allexecwebtbs : testprep $(patsubst %.pp,%.elg,$(sort $(wildcard webtbs/t*.pp)))
ifndef SINGLEDOTESTRUNS
$(Q)$(DOTEST) $(DOTESTOPT) -e $(sort $(wildcard webtbs/t*.pp))
endif
# the extra ECHOREDIR's below are in case a particular dir doesn't have any failures
allexecwebtbf : testprep $(patsubst %.pp,%.elg,$(sort $(wildcard webtbf/t*.pp)))
ifndef SINGLEDOTESTRUNS
$(Q)$(DOTEST) $(DOTESTOPT) -e $(sort $(wildcard webtbf/t*.pp))
endif
$(TEST_OUTPUTDIR)/tbsdir-stamp.$(TEST_FULL_TARGET): testprep-stamp.$(TEST_FULL_TARGET)
$(Q)$(DOTEST) $(DOTESTOPT) -Ltbslog -e $(sort $(wildcard tbs/t*.pp))
$(ECHOREDIR) $(DATE) > $@
allexectest : testprep $(patsubst %.pp,%.elg,$(sort $(wildcard $(addsuffix /t*.pp,$(TESTDIRS)))))
ifndef SINGLEDOTESTRUNS
$(Q)$(DOTEST) $(DOTESTOPT) -e $(sort $(wildcard $(addsuffix /t*.pp,$(TESTDIRS))))
endif
$(TEST_OUTPUTDIR)/%.tbslog : $(TBSREQ)
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/faillist.tbslog
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/longlog.tbslog
allexectests: allexectest allexectbs allexectbf allexecwebtbs allexecwebtbf
$(TEST_OUTPUTDIR)/tbfdir-stamp.$(TEST_FULL_TARGET): testprep-stamp.$(TEST_FULL_TARGET)
$(Q)$(DOTEST) $(DOTESTOPT) -Ltbflog -e $(sort $(wildcard tbf/t*.pp))
$(ECHOREDIR) $(DATE) > $@
$(TEST_OUTPUTDIR)/%.tbflog : $(TBFREQ)
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/faillist.tbflog
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/longlog.tbflog
$(TEST_OUTPUTDIR)/webtbsdir-stamp.$(TEST_FULL_TARGET): testprep-stamp.$(TEST_FULL_TARGET)
$(Q)$(DOTEST) $(DOTESTOPT) -Lwebtbslog -e $(sort $(wildcard webtbs/t*.pp))
$(Q)$(ECHOREDIR) $(DATE) > $@
$(TEST_OUTPUTDIR)/%.webtbslog : $(WEBTBSREQ)
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/faillist.webtbslog
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/longlog.webtbslog
$(TEST_OUTPUTDIR)/webtbfdir-stamp.$(TEST_FULL_TARGET): testprep-stamp.$(TEST_FULL_TARGET)
$(Q)$(DOTEST) $(DOTESTOPT) -Lwebtbflog -e $(sort $(wildcard webtbf/t*.pp))
$(ECHOREDIR) $(DATE) > $@
$(TEST_OUTPUTDIR)/%.webtbflog : $(WEBTBFREQ)
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/faillist.webtbflog
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/longlog.webtbflog
$(TEST_OUTPUTDIR)/testdir-stamp.$(TEST_FULL_TARGET): testprep-stamp.$(TEST_FULL_TARGET)
$(Q)$(DOTEST) $(DOTESTOPT) -Ltestlog -e $(sort $(wildcard $(addsuffix /t*.pp,$(TESTDIRS))))
$(ECHOREDIR) $(DATE) > $@
$(TEST_OUTPUTDIR)/%.testlog : $(TESTREQ)
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/faillist.testlog
$(Q)$(ECHOREDIR) -n >> $(TEST_OUTPUTDIR)/longlog.testlog
# run all tests (ordered by longest running to shortest), then merge log files
allexectests: $(TEST_OUTPUTDIR)/log.webtbslog $(TEST_OUTPUTDIR)/log.testlog $(TEST_OUTPUTDIR)/log.tbslog $(TEST_OUTPUTDIR)/log.tbflog $(TEST_OUTPUTDIR)/log.webtbflog $(addprefix $(TEST_OUTPUTDIR)/,$(foreach EXT, $(LOGEXT), $(addsuffix $(EXT), faillist longlog))) $(addsuffix .mergedlog, $(LOGFILES))
################################
# Clean
@ -428,7 +477,6 @@ clean_sources:
clean_test:
-$(DELTREE) $(TEST_OUTPUTDIR)
-$(DEL) $(LOG) $(LONGLOG) $(FAILLIST)
-$(DEL) core gmon.out testprep-stamp.$(TEST_FULL_TARGET) dotgz.bat
clean: clean_sources

View File

@ -1,8 +1,8 @@
#
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/05/27]
#
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 powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd 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 powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
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 powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd 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 powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux jvm-java jvm-android
BSDs = freebsd netbsd openbsd darwin
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom
@ -258,11 +258,13 @@ ifndef BINUTILSPREFIX
ifndef CROSSBINDIR
ifdef CROSSCOMPILE
ifndef DARWIN2DARWIN
ifneq ($(CPU_TARGET),jvm)
BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
endif
endif
endif
endif
endif
UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
ifeq ($(UNITSDIR),)
UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
@ -496,6 +498,12 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=erroru popuperr ptest
endif
ifeq ($(FULL_TARGET),jvm-java)
override CLEAN_UNITS+=erroru popuperr ptest
endif
ifeq ($(FULL_TARGET),jvm-android)
override CLEAN_UNITS+=erroru popuperr ptest
endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
override COMPILER_TARGETDIR+=$(TARGETSUFFIX)
@ -701,6 +709,12 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_TARGETDIR+=$(TARGETSUFFIX)
endif
ifeq ($(FULL_TARGET),jvm-java)
override COMPILER_TARGETDIR+=$(TARGETSUFFIX)
endif
ifeq ($(FULL_TARGET),jvm-android)
override COMPILER_TARGETDIR+=$(TARGETSUFFIX)
endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@ -1058,6 +1072,18 @@ BATCHEXT=.sh
EXEEXT=
SHORTSUFFIX=aix
endif
ifeq ($(OS_TARGET),java)
OEXT=.class
ASMEXT=.j
SHAREDLIBEXT=.jar
SHORTSUFFIX=java
endif
ifeq ($(OS_TARGET),android)
OEXT=.class
ASMEXT=.j
SHAREDLIBEXT=.jar
SHORTSUFFIX=android
endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@ -1411,17 +1437,12 @@ endif
endif
ifdef CREATESHARED
override FPCOPT+=-Cg
ifeq ($(CPU_TARGET),i386)
override FPCOPT+=-Aas
endif
endif
ifeq ($(findstring 2.0.,$(FPC_VERSION)),)
ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
endif
endif
ifdef LINKSHARED
endif
ifdef OPT
@ -1667,6 +1688,7 @@ makefiles: fpc_makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
.NOTPARALLEL:
.PHONY: rtl extra fpcunit packages all clean distclean clean_ctest
.PHONY: cleanrtl distcleanrtl
.PHONY: cleanfpcunit distcleanfpcunit

View File

@ -17,6 +17,7 @@ targetdir=$(TARGETSUFFIX)
fpcdir=../..
[rules]
.NOTPARALLEL:
.PHONY: rtl extra fpcunit packages all clean distclean clean_ctest
.PHONY: cleanrtl distcleanrtl
.PHONY: cleanfpcunit distcleanfpcunit

View File

@ -1,8 +1,8 @@
#
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
# Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/05/27]
#
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 powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd 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 powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
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 powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd 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 powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux jvm-java jvm-android
BSDs = freebsd netbsd openbsd darwin
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom
@ -258,11 +258,13 @@ ifndef BINUTILSPREFIX
ifndef CROSSBINDIR
ifdef CROSSCOMPILE
ifndef DARWIN2DARWIN
ifneq ($(CPU_TARGET),jvm)
BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
endif
endif
endif
endif
endif
UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
ifeq ($(UNITSDIR),)
UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
@ -293,208 +295,214 @@ FPCFPMAKE=$(FPC)
endif
endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-go32v2)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST) prepup
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST) prepup
endif
ifeq ($(FULL_TARGET),i386-win32)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST) prepup
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST) prepup
endif
ifeq ($(FULL_TARGET),i386-os2)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-freebsd)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-beos)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-haiku)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-netbsd)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-solaris)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-qnx)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-netware)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-openbsd)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-wdosx)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-darwin)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-emx)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-watcom)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-wince)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-embedded)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-symbian)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-nativent)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),m68k-amiga)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),m68k-atari)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),m68k-palmos)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),m68k-embedded)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),powerpc-linux)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),powerpc-macos)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),powerpc-wii)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),powerpc-aix)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),sparc-linux)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),sparc-solaris)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),sparc-embedded)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),x86_64-linux)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),x86_64-win64)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST) prepup
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST) prepup
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),arm-palmos)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),arm-darwin)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),arm-wince)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),arm-gba)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),arm-nds)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),arm-embedded)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),arm-symbian)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),avr-embedded)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),armeb-linux)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),armeb-embedded)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),mips-linux)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest $(DBDIGEST)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),jvm-java)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),jvm-android)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
ifeq ($(FULL_TARGET),i386-linux)
override CLEAN_PROGRAMS+=dbdigest
@ -700,6 +708,12 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_PROGRAMS+=dbdigest
endif
ifeq ($(FULL_TARGET),jvm-java)
override CLEAN_PROGRAMS+=dbdigest
endif
ifeq ($(FULL_TARGET),jvm-android)
override CLEAN_PROGRAMS+=dbdigest
endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@ -1058,6 +1072,18 @@ BATCHEXT=.sh
EXEEXT=
SHORTSUFFIX=aix
endif
ifeq ($(OS_TARGET),java)
OEXT=.class
ASMEXT=.j
SHAREDLIBEXT=.jar
SHORTSUFFIX=java
endif
ifeq ($(OS_TARGET),android)
OEXT=.class
ASMEXT=.j
SHAREDLIBEXT=.jar
SHORTSUFFIX=android
endif
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
FPCMADE=fpcmade.$(SHORTSUFFIX)
ZIPSUFFIX=$(SHORTSUFFIX)
@ -1411,17 +1437,12 @@ endif
endif
ifdef CREATESHARED
override FPCOPT+=-Cg
ifeq ($(CPU_TARGET),i386)
override FPCOPT+=-Aas
endif
endif
ifeq ($(findstring 2.0.,$(FPC_VERSION)),)
ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
endif
endif
ifdef LINKSHARED
endif
ifdef OPT
@ -1830,6 +1851,7 @@ makefiles: fpc_makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
.NOTPARALLEL:
utils: all
utilsdb:
$(MAKE) utils DBDIGEST=dbdigest

View File

@ -13,7 +13,7 @@ fpcdir=../..
nortl=y
[target]
programs=dotest fptime fail testfail digest $(DBDIGEST)
programs=dotest fptime fail testfail digest concat $(DBDIGEST)
programs_win32=prepup
programs_win64=prepup
programs_go32v2=prepup
@ -22,6 +22,7 @@ programs_go32v2=prepup
programs=dbdigest
[rules]
.NOTPARALLEL:
utils: all

83
tests/utils/concat.pp Normal file
View File

@ -0,0 +1,83 @@
{ Concatenates a number of text files. This code is in the public domain. }
program concat;
uses
SysUtils;
var
Dst: TextFile;
procedure usage;
begin
Writeln('Usage: concat <srcfile1> [<srcfile2> ..] <dstfile>');
Writeln;
halt(1);
end;
procedure DoConcat;
var
Src: TextFile;
I: Longint;
Line: Ansistring;
begin
for I:=1 to ParamCount-1 do
begin
Assign(Src,ParamStr(I));
Reset(Src);
while not Eof(Src) do
begin
ReadLn(Src,Line);
Writeln(Dst,Line);
end;
Close(Src);
end;
Close(Dst);
end;
procedure CheckParas;
var
I: Longint;
begin
{ enough parameters? }
if ParamCount<2 then
Usage;
{ check destination }
if DirectoryExists(ParamStr(ParamCount)) then
begin
Writeln('Destination "',ParamStr(ParamCount),'" is a directory');
halt(2);
end;
Assign(Dst,ParamStr(ParamCount));
{$i-}
Rewrite(Dst);
{$i+}
if IOResult<>0 then
begin
Writeln('Unable to create destination file "',ParamStr(ParamCount),'"');
halt(2);
end;
{ check source(s) }
for I:=1 to ParamCount-1 do
begin
if not FileExists(ParamStr(I)) then
begin
Writeln('File "',ParamStr(I),'" does not exist');
halt(2);
end;
if DirectoryExists(ParamStr(I)) then
begin
Writeln('"',ParamStr(I),'" is a directory');
halt(2);
end;
end;
end;
begin
CheckParas;
DoConcat;
end.

View File

@ -104,6 +104,7 @@ const
UseTimeout : boolean = false;
emulatorname : string = '';
TargetCanCompileLibraries : boolean = true;
UniqueSuffix: string = '';
{ Constants used in IsAbsolute function }
TargetHasDosStyleDirectories : boolean = false;
@ -264,6 +265,18 @@ begin
end;
function SplitBasePath(const s:string): string;
var
i : longint;
begin
i:=1;
while (i<length(s)) and not(s[i] in ['/','\'{$IFDEF MACOS},':'{$ENDIF}]) do
inc(i);
if s[i] in ['/','\'{$IFDEF MACOS},':'{$ENDIF}] then
dec(i);
SplitBasePath:=Copy(s,1,i);
end;
Function SplitFileName(const s:string):string;
var
p : dirstr;
@ -468,8 +481,8 @@ begin
hs:='-iTOTPV';
end;
end;
ExecuteRedir(CompilerBin,hs,'','out','');
assign(t,'out');
ExecuteRedir(CompilerBin,hs,'','out.'+UniqueSuffix,'');
assign(t,'out.'+UniqueSuffix);
{$I-}
reset(t);
readln(t,hs);
@ -1408,6 +1421,7 @@ procedure getargs;
writeln(' -G include graph tests');
writeln(' -I include interactive tests');
writeln(' -K include known bug tests');
writeln(' -L<ext> set extension of temporary files (prevent conflicts with parallel invocations)');
writeln(' -M<emulator> run the tests using the given emulator');
writeln(' -O use timeout wrapper for (remote) execution');
writeln(' -P<path> path to the tests tree on the remote machine');
@ -1467,6 +1481,10 @@ procedure getargs;
DoUsual:=false;
end;
'L' : begin
UniqueSuffix:=Para;
end;
'M' : EmulatorName:=Para;
'O' : UseTimeout:=true;
@ -1581,7 +1599,7 @@ end;
procedure RunTest;
var
PPDir,LibraryName : string;
PPDir,LibraryName,LogSuffix : string;
Res : boolean;
begin
Res:=GetConfig(PPFile[current],Config);
@ -1604,10 +1622,6 @@ begin
{$endif MACOS}
if not PathExists(OutputDir) then
Verbose(V_Abort,'Output path "'+OutputDir+'" does not exists');
{ Global log files }
ResLogFile:=OutputFileName('log','');
LongLogFile:=OutputFileName('longlog','');
FailLogFile:=OutputFileName('faillist','');
{ Make subdir in output if needed }
PPDir:=SplitPath(PPFile[current]);
if PPDir[length(PPDir)] in ['/','\'{$ifdef MACOS},':'{$endif MACOS}] then
@ -1623,6 +1637,12 @@ begin
end
else
TestOutputDir:=OutputDir;
{ Global log files (don't use UniqueSuffix here, it's not set in case of
SINGLEDOTESTRUNS) }
LogSuffix:=SplitBasePath(PPDir)+'log';
ResLogFile:=OutputFileName('log',LogSuffix);
LongLogFile:=OutputFileName('longlog',LogSuffix);
FailLogFile:=OutputFileName('faillist',LogSuffix);
{ Per test logfiles }
CompilerLogFile:=TestOutputFileName('',SplitFileName(PPFile[current]),'log');
ExeLogFile:=TestOutputFileName('',SplitFileName(PPFile[current]),'elg');