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

* Do not remove *.ree files
+ support for *.cfg file to allow for flexibility in tests

pierre 25 жил өмнө
parent
commit
20089b7a4b
2 өөрчлөгдсөн 213 нэмэгдсэн , 217 устгасан
  1. 75 119
      tests/Makefile
  2. 138 98
      tests/Makefile.fpc

+ 75 - 119
tests/Makefile

@@ -14,9 +14,9 @@ defaultrule: info
 override PATH:=$(subst \,/,$(PATH))
 
 # Search for PWD and determine also if we are under linux
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
+PWD=$(strip $(wildcard $(addsuffix /pwd.exe,$(subst ;, ,$(PATH)))))
 ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
+PWD=$(strip $(wildcard $(addsuffix /pwd,$(subst :, ,$(PATH)))))
 ifeq ($(PWD),)
 nopwd:
 	@echo You need the GNU utils package to use this Makefile!
@@ -52,105 +52,47 @@ else
 EXEEXT=.exe
 endif
 
-# The path which is searched separated by spaces
+# The path which is search separated by spaces
 ifdef inlinux
 SEARCHPATH=$(subst :, ,$(PATH))
 else
 SEARCHPATH=$(subst ;, ,$(PATH))
 endif
 
-# Base dir
-ifdef PWD
-BASEDIR:=$(shell $(PWD))
-else
-BASEDIR=.
-endif
-
 #####################################################################
 # FPC version/target Detection
 #####################################################################
 
 # What compiler to use ?
 ifndef FPC
-# Compatibility with old makefiles
-ifdef PP
-FPC=$(PP)
-else
 ifdef inOS2
-FPC=ppos2
+export FPC=ppos2$(EXEEXT)
 else
-FPC=ppc386
+export FPC=ppc386$(EXEEXT)
 endif
 endif
-endif
-override FPC:=$(subst $(EXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(EXEEXT)
 
 # Target OS
 ifndef OS_TARGET
-OS_TARGET:=$(shell $(FPC) -iTO)
+export OS_TARGET=$(shell $(FPC) -iTO)
 endif
 
 # Source OS
 ifndef OS_SOURCE
-OS_SOURCE:=$(shell $(FPC) -iSO)
-endif
-
-# Target CPU
-ifndef CPU_TARGET
-CPU_TARGET:=$(shell $(FPC) -iTP)
+export OS_SOURCE=$(shell $(FPC) -iSO)
 endif
 
-# Source CPU
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(shell $(FPC) -iSP)
+# FPC_CPU
+ifndef FPC_CPU
+export FPC_CPU=$(shell $(FPC) -iTP)
 endif
 
 # FPC version
 ifndef FPC_VERSION
-FPC_VERSION:=$(shell $(FPC) -iV)
+export FPC_VERSION=$(shell $(FPC) -iV)
 endif
 
-export FPC OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FPC_VERSION
-
-#####################################################################
-# FPCDIR Setting
-#####################################################################
-
-# Test FPCDIR to look if the RTL dir exists
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=wrong
-endif
-endif
-else
-override FPCDIR=wrong
-endif
 
-# Detect FPCDIR
-ifeq ($(FPCDIR),wrong)
-ifdef inlinux
-override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
-endif
-else
-override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(FPCDIR)/rtl),)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-endif
 
 #####################################################################
 # User Settings
@@ -192,8 +134,7 @@ ASMEXT=.s
 SMARTEXT=.sl
 STATICLIBEXT=.a
 SHAREDLIBEXT=.so
-RSTEXT=.rst
-FPCMADE=fpcmade
+PACKAGESUFFIX=
 
 # Go32v1
 ifeq ($(OS_TARGET),go32v1)
@@ -203,17 +144,17 @@ ASMEXT=.s1
 SMARTEXT=.sl1
 STATICLIBEXT=.a1
 SHAREDLIBEXT=.so1
-FPCMADE=fpcmade.v1
+PACKAGESUFFIX=v1
 endif
 
 # Go32v2
 ifeq ($(OS_TARGET),go32v2)
-FPCMADE=fpcmade.dos
+PACKAGESUFFIX=go32
 endif
 
 # Linux
 ifeq ($(OS_TARGET),linux)
-FPCMADE=fpcmade.lnx
+PACKAGESUFFIX=linux
 endif
 
 # Win32
@@ -224,7 +165,7 @@ ASMEXT=.sw
 SMARTEXT=.slw
 STATICLIBEXT=.aw
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.w32
+PACKAGESUFFIX=win32
 endif
 
 # OS/2
@@ -235,7 +176,7 @@ OEXT=.oo2
 SMARTEXT=.so
 STATICLIBEXT=.ao2
 SHAREDLIBEXT=.dll
-FPCMADE=fpcmade.os2
+PACKAGESUFFIX=os2
 endif
 
 # library prefix
@@ -267,55 +208,30 @@ endif
 # Default Directories
 #####################################################################
 
+# Base dir
+ifdef PWD
+BASEDIR:=$(shell $(PWD))
+else
+BASEDIR=.
+endif
+
 # set the prefix directory where to install everything
 ifndef PREFIXINSTALLDIR
 ifdef inlinux
-PREFIXINSTALLDIR=/usr
+export PREFIXINSTALLDIR=/usr
 else
-PREFIXINSTALLDIR=/pp
-endif
+export PREFIXINSTALLDIR=/pp
 endif
-export PREFIXINSTALLDIR
-
-# Where to place the resulting zip files
-ifndef DESTZIPDIR
-DESTZIPDIR:=$(BASEDIR)
 endif
-export DESTZIPDIR
-
-#####################################################################
-# Redirection
-#####################################################################
 
-ifndef REDIRFILE
-REDIRFILE=log
-endif
 
-ifdef REDIR
-ifndef inlinux
-override FPC=redir -eo $(FPC)
-endif
-# set the verbosity to max
-override FPCOPT+=-va
-override REDIR:= >> $(REDIRFILE)
-endif
 
-#####################################################################
-# Standard rules
-#####################################################################
-
-#####################################################################
-# Local Makefile
-#####################################################################
-
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
 
 #####################################################################
 # Users rules
 #####################################################################
 
+
 # For linux by default no graph tests
 ifdef inlinux
 NOGRAPH=1
@@ -355,7 +271,7 @@ ifndef inlinux
 else
 	getret $(COMMAND) > $(FILE).log 2>$(FILE).log
 	cp retcode $(FILE).$(RESEXT)
-#       @echo "Return code of $(FILE) is $(cat retcode)"
+#	@echo "Return code of $(FILE) is $(cat retcode)"
 endif
 
 
@@ -405,9 +321,25 @@ endif
 
 ifdef REEFILE
 ifeq ($(wildcard $(REEFILE)*),$(REEFILE))
-EXPECTEDRETVAL:=$(strip $(shell cat $(REEFILE)))
+export EXPECTEDRETVAL:=$(strip $(shell cat $(REEFILE)))
 else
-EXPECTEDRETVAL=0
+export EXPECTEDRETVAL=0
+endif
+endif
+
+ifdef FILE
+ifneq ($(CFGFILE),$(FILE).cfg)
+ifneq ($(wildcard $(FILE).cfg),)
+export CFGFILE:=$(FILE).cfg
+export COMPILEROPT:=$(filter-out COMPILEROPT=,$(shell grep COMPILEROPT= $(CFGFILE)))
+export RUNARGS:=$(filter-out RUNARGS=,$(shell grep RUNARGS= $(CFGFILE)))
+export POSTPROCESS:=$(filter-out POSTPROCESS=,$(shell grep POSTPROCESS= $(CFGFILE)))
+else
+CFGFILE=
+COMPILEROPT=
+RUNARGS=
+POSTPROCESS=
+endif
 endif
 endif
 
@@ -454,11 +386,26 @@ testexec:
 	@echo "Testing $(FILE)$(EXEEXT)"
 ifdef NOREDIR
 	getret $(FILE)$(EXEEXT)
+	@echo CFGFILE is $(CFGFILE)
+ifdef POSTPROCESS
+	echo Running post process
+	-$(POSTPROCESS)
+endif
 else
 ifndef inlinux
-	redir -e $(FILE).elg -o $(FILE).elg getret $(FILE)$(EXEEXT)
+	redir -e $(FILE).elg -o $(FILE).elg getret $(FILE)$(EXEEXT) $(RUNARGS)
+	@echo CFGFILE is $(CFGFILE)
+ifdef POSTPROCESS
+	@echo Running post process
+	-redir -ea $(FILE).elg -oa $(FILE).elg $(POSTPROCESS)
+endif
 else
-	getret $(FILE)$(EXEEXT) > $(FILE).elg 2>$(FILE).elg
+	getret $(FILE)$(EXEEXT) $(RUNARGS) > $(FILE).elg 2>$(FILE).elg
+	@echo CFGFILE is $(CFGFILE)
+ifdef POSTPROCESS
+	echo Running post process
+	-$(POSTPROCESS) >> $(FILE).elg 2>> $(FILE).elg
+endif
 endif
 endif
 	cp -f retcode $(FILE).exc
@@ -509,6 +456,14 @@ ifndef LOG
 export LOG:=log
 endif
 
+
+listcfg :
+	@echo CFGFILE is "$(CFGFILE)"
+	@echo COMPILEROPT is "$(COMPILEROPT)"
+	@echo RUNARGS is "$(RUNARGS)"
+	@echo EXPECTEDRETVAL is "$(EXPECTEDRETVAL)"
+	@echo POSTPROCESS is "$(POSTPROCESS)"
+
 ifdef FILE
 OPTFILE=$(wildcard $(FILE).opt)
 endif
@@ -522,7 +477,7 @@ FILE=ts/ts00001.pp
 endif
 
 testone :
-	$(MAKE) getreturncode 'COMMAND=$(FPC) $(OPT) $(FILE).pp' 'RESEXT=$(RESEXT)' 'FILE=$(FILE)'
+	$(MAKE) getreturncode 'COMMAND=$(FPC) $(OPT) $(COMPILEROPT) $(FILE).pp' 'RESEXT=$(RESEXT)' 'FILE=$(FILE)'
 
 
 %.res : %.pp
@@ -635,7 +590,8 @@ tbsexec300to399 : $(patsubst %.pp,%.elg,$(filter-out $(graphlst),$(wildcard tbs/
 alltisexec: $(patsubst %.pp,%.eli,$(filter-out $(graphlst),$(wildcard tis/tis*.pp)))
 
 clean:
-	-rm -f $(addsuffix /*.re*,$(DIRS))
+	-rm -f $(addsuffix /*.ref,$(DIRS))
+	-rm -f $(addsuffix /*.res,$(DIRS))
 	-rm -f $(addsuffix /*$(PPUEXT),$(DIRS))
 	-rm -f $(addsuffix /*$(OEXT),$(DIRS))
 	-rm -f $(addsuffix /*.log,$(DIRS))
@@ -660,4 +616,4 @@ info :
 	@echo run \'make allexec\' to test also if the executables
 	@echo created behave like the should
 	@echo run \'make tesiexec\' to test executables
-	@echo that require interactive mode
+	@echo that require interactive mode

+ 138 - 98
tests/Makefile.fpc

@@ -40,16 +40,16 @@ setdate :
 .PHONY : setdate
 
 getret$(EXEEXT) : getret.pp
-        $(FPC) getret
+	$(FPC) getret
 
 getreturncode : getret$(EXEEXT)
 ifndef inlinux
-        redir -ea $(FILE).log -oa $(FILE).log getret $(COMMAND)
-        cp retcode $(FILE).$(RESEXT)
+	redir -ea $(FILE).log -oa $(FILE).log getret $(COMMAND)
+	cp retcode $(FILE).$(RESEXT)
 else
-        getret $(COMMAND) > $(FILE).log 2>$(FILE).log
-        cp retcode $(FILE).$(RESEXT)
-#       @echo "Return code of $(FILE) is $(cat retcode)"
+	getret $(COMMAND) > $(FILE).log 2>$(FILE).log
+	cp retcode $(FILE).$(RESEXT)
+#	@echo "Return code of $(FILE) is $(cat retcode)"
 endif
 
 
@@ -70,21 +70,21 @@ endif
 
 ifeq ($(RETVAL),0)
 testsuccess:
-        @echo "Test for $(FILE) success (compiles)"
-        @echo "Test for $(FILE) success (compiles)" >>$(LOG)
+	@echo "Test for $(FILE) success (compiles)"
+	@echo "Test for $(FILE) success (compiles)" >>$(LOG)
 else
 testsuccess:
-        @echo "Test for $(FILE) fails (does not compile) error $(RETVAL)"
-        @echo "Test for $(FILE) fails (does not compile) error $(RETVAL)" >> $(LOG)
+	@echo "Test for $(FILE) fails (does not compile) error $(RETVAL)"
+	@echo "Test for $(FILE) fails (does not compile) error $(RETVAL)" >> $(LOG)
 ifdef LONGLOG
-        @echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" >> $(LONGLOG)
-        @echo "Test for $(FILE) fails (does not compile) error $(RETVAL)" >> $(LONGLOG)
-        @echo "" >> $(LONGLOG)
-        cat $(FILE).log >> $(LONGLOG)
-        @echo "" >> $(LONGLOG)
+	@echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" >> $(LONGLOG)
+	@echo "Test for $(FILE) fails (does not compile) error $(RETVAL)" >> $(LONGLOG)
+	@echo "" >> $(LONGLOG)
+	cat $(FILE).log >> $(LONGLOG)
+	@echo "" >> $(LONGLOG)
 endif
-        @echo $(FILE) does not compile >> ts_fail
-        @echo $(FILE) does not compile error $(RETVAL) >> faillist
+	@echo $(FILE) does not compile >> ts_fail
+	@echo $(FILE) does not compile error $(RETVAL) >> faillist
 endif
 
 ifdef EXCFILE
@@ -99,100 +99,131 @@ endif
 
 ifdef REEFILE
 ifeq ($(wildcard $(REEFILE)*),$(REEFILE))
-EXPECTEDRETVAL:=$(strip $(shell cat $(REEFILE)))
+export EXPECTEDRETVAL:=$(strip $(shell cat $(REEFILE)))
 else
-EXPECTEDRETVAL=0
+export EXPECTEDRETVAL=0
+endif
+endif
+
+ifdef FILE
+ifneq ($(CFGFILE),$(FILE).cfg)
+ifneq ($(wildcard $(FILE).cfg),)
+export CFGFILE:=$(FILE).cfg
+export COMPILEROPT:=$(filter-out COMPILEROPT=,$(shell grep COMPILEROPT= $(CFGFILE)))
+export RUNARGS:=$(filter-out RUNARGS=,$(shell grep RUNARGS= $(CFGFILE)))
+export POSTPROCESS:=$(filter-out POSTPROCESS=,$(shell grep POSTPROCESS= $(CFGFILE)))
+else
+CFGFILE=
+COMPILEROPT=
+RUNARGS=
+POSTPROCESS=
+endif
 endif
 endif
 
 ifeq ($(EXERETVAL),$(EXPECTEDRETVAL))
 ifeq ($(EXPECTEDRETVAL),0)
 testexecsuccess:
-        @echo "Test for exec $(FILE) success (runs without error)"
-        @echo "Test for $(FILE) success (runs without error)" >> $(LOG)
+	@echo "Test for exec $(FILE) success (runs without error)"
+	@echo "Test for $(FILE) success (runs without error)" >> $(LOG)
 else
 testexecsuccess:
-        @echo "Test for exec $(FILE) success (gives correct error $(EXERETVAL))"
-        @echo "Test for $(FILE) success (gives correct error $(EXERETVAL))" >> $(LOG)
+	@echo "Test for exec $(FILE) success (gives correct error $(EXERETVAL))"
+	@echo "Test for $(FILE) success (gives correct error $(EXERETVAL))" >> $(LOG)
 endif
 else
 ifeq ($(EXPECTEDRETVAL),0)
 testexecsuccess:
-        @echo "Test for exec $(FILE) fails exec error $(EXERETVAL)"
-        @echo "Test for exec $(FILE) fails exec error $(EXERETVAL)" >> $(LOG)
-        @echo "Running $(FILE) fails with error $(EXERETVAL)" >> faillist
+	@echo "Test for exec $(FILE) fails exec error $(EXERETVAL)"
+	@echo "Test for exec $(FILE) fails exec error $(EXERETVAL)" >> $(LOG)
+	@echo "Running $(FILE) fails with error $(EXERETVAL)" >> faillist
 ifdef LONGLOG
-        @echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" >> $(LONGLOG)
-        @echo "Test for exec $(FILE) fails exec error $(EXERETVAL)" >> $(LONGLOG)
-        @echo "" >> $(LONGLOG)
-        cat $(FILE).elg >> $(LONGLOG)
-        @echo $(FILE) >> ex_fail
+	@echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" >> $(LONGLOG)
+	@echo "Test for exec $(FILE) fails exec error $(EXERETVAL)" >> $(LONGLOG)
+	@echo "" >> $(LONGLOG)
+	cat $(FILE).elg >> $(LONGLOG)
+	@echo $(FILE) >> ex_fail
 endif
 else
 testexecsuccess:
-        @echo "Test for exec $(FILE) fails exec error $(EXERETVAL) ($(EXPECTEDRETVAL) expected)"
-        @echo "Test for exec $(FILE) fails exec error $(EXERETVAL) ($(EXPECTEDRETVAL) expected)" >> $(LOG)
-        @echo "Running $(FILE) fails with error $(EXERETVAL) ($(EXPECTEDRETVAL) expected)" >> faillist
+	@echo "Test for exec $(FILE) fails exec error $(EXERETVAL) ($(EXPECTEDRETVAL) expected)"
+	@echo "Test for exec $(FILE) fails exec error $(EXERETVAL) ($(EXPECTEDRETVAL) expected)" >> $(LOG)
+	@echo "Running $(FILE) fails with error $(EXERETVAL) ($(EXPECTEDRETVAL) expected)" >> faillist
 ifdef LONGLOG
-        @echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" >> $(LONGLOG)
-        @echo "Test for exec $(FILE) fails exec error $(EXERETVAL) ($(EXPECTEDRETVAL) expected)" >> $(LONGLOG)
-        @echo "" >> $(LONGLOG)
-        cat $(FILE).elg >> $(LONGLOG)
-        @echo $(FILE) >> ex_fail
+	@echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" >> $(LONGLOG)
+	@echo "Test for exec $(FILE) fails exec error $(EXERETVAL) ($(EXPECTEDRETVAL) expected)" >> $(LONGLOG)
+	@echo "" >> $(LONGLOG)
+	cat $(FILE).elg >> $(LONGLOG)
+	@echo $(FILE) >> ex_fail
 endif
 endif
 endif
 
 ifeq ($(wildcard $(FILE)$(EXEEXT)),$(FILE)$(EXEEXT))
 testexec:
-        @echo "Testing $(FILE)$(EXEEXT)"
+	@echo "Testing $(FILE)$(EXEEXT)"
 ifdef NOREDIR
-        getret $(FILE)$(EXEEXT)
+	getret $(FILE)$(EXEEXT)
+	@echo CFGFILE is $(CFGFILE)
+ifdef POSTPROCESS
+	echo Running post process
+	-$(POSTPROCESS)
+endif
 else
 ifndef inlinux
-        redir -e $(FILE).elg -o $(FILE).elg getret $(FILE)$(EXEEXT)
+	redir -e $(FILE).elg -o $(FILE).elg getret $(FILE)$(EXEEXT) $(RUNARGS)
+	@echo CFGFILE is $(CFGFILE)
+ifdef POSTPROCESS
+	@echo Running post process
+	-redir -ea $(FILE).elg -oa $(FILE).elg $(POSTPROCESS)
+endif
 else
-        getret $(FILE)$(EXEEXT) > $(FILE).elg 2>$(FILE).elg
+	getret $(FILE)$(EXEEXT) $(RUNARGS) > $(FILE).elg 2>$(FILE).elg
+	@echo CFGFILE is $(CFGFILE)
+ifdef POSTPROCESS
+	echo Running post process
+	-$(POSTPROCESS) >> $(FILE).elg 2>> $(FILE).elg
+endif
 endif
 endif
-        cp -f retcode $(FILE).exc
-        $(MAKE) testexecsuccess 'FILE=$(FILE)' 'EXCFILE=$(FILE).exc' 'REEFILE=$(FILE).ree'
+	cp -f retcode $(FILE).exc
+	$(MAKE) testexecsuccess 'FILE=$(FILE)' 'EXCFILE=$(FILE).exc' 'REEFILE=$(FILE).ree'
 else
 testexec:
 ifeq ($(wildcard $(FILE)$(PPUEXT)),$(FILE)$(PPUEXT))
-        @echo "file is a unit $(FILE)$(PPUEXT)"
-        @echo "unit" > $(FILE).elg
+	@echo "file is a unit $(FILE)$(PPUEXT)"
+	@echo "unit" > $(FILE).elg
 else
 ifeq ($(wildcard $(FILE).dll),$(FILE).dll)
-        @echo "file is a DLL $(FILE)$(PPUEXT)"
-        @echo "DLL" > $(FILE).elg
+	@echo "file is a DLL $(FILE)$(PPUEXT)"
+	@echo "DLL" > $(FILE).elg
 else
-        @echo "No exefile $(FILE)$(EXEEXT)"
+	@echo "No exefile $(FILE)$(EXEEXT)"
 ifdef LONGLOG
-        @echo "No exefile $(FILE)$(EXEEXT) was generated" >> $(LONGLOG)
+	@echo "No exefile $(FILE)$(EXEEXT) was generated" >> $(LONGLOG)
 endif
 endif
 endif
 endif
 
 test_exc :
-        @echo $(wildcard $(FILE).exc*)
-        @echo xx$(wildcard $(EXCFILE)*)xx xx$(EXCFILE)xx
-        cat $(FILE).exc
+	@echo $(wildcard $(FILE).exc*)
+	@echo xx$(wildcard $(EXCFILE)*)xx xx$(EXCFILE)xx
+	cat $(FILE).exc
 
 ifneq ($(RETVAL),0)
 testfail:
-        @echo "Test for $(FILE) success (does not compile) error $(RETVAL)"
-        @echo "Test for $(FILE) success (does not compile) error $(RETVAL)" >> $(LOG)
+	@echo "Test for $(FILE) success (does not compile) error $(RETVAL)"
+	@echo "Test for $(FILE) success (does not compile) error $(RETVAL)" >> $(LOG)
 else
 testfail:
-        @echo "Test for $(FILE) fails (does compile and should not)"
-        @echo "Test for $(FILE) fails (does compile and should not)" >> $(LOG)
+	@echo "Test for $(FILE) fails (does compile and should not)"
+	@echo "Test for $(FILE) fails (does compile and should not)" >> $(LOG)
 ifdef LONGLOG
-        @echo "Test for $(FILE) fails (does compile and should not)" >> $(LONGLOG)
+	@echo "Test for $(FILE) fails (does compile and should not)" >> $(LONGLOG)
 endif
 	@echo $(FILE) >> tf_fail
-        @echo $(FILE) compiles >> faillist
+	@echo $(FILE) compiles >> faillist
 endif
 
 ifndef LONGLOG
@@ -203,6 +234,14 @@ ifndef LOG
 export LOG:=log
 endif
 
+
+listcfg :
+	@echo CFGFILE is "$(CFGFILE)"
+	@echo COMPILEROPT is "$(COMPILEROPT)"
+	@echo RUNARGS is "$(RUNARGS)"
+	@echo EXPECTEDRETVAL is "$(EXPECTEDRETVAL)"
+	@echo POSTPROCESS is "$(POSTPROCESS)"
+
 ifdef FILE
 OPTFILE=$(wildcard $(FILE).opt)
 endif
@@ -216,26 +255,26 @@ FILE=ts/ts00001.pp
 endif
 
 testone :
-        $(MAKE) getreturncode 'COMMAND=$(FPC) $(OPT) $(FILE).pp' 'RESEXT=$(RESEXT)' 'FILE=$(FILE)'
+	$(MAKE) getreturncode 'COMMAND=$(FPC) $(OPT) $(COMPILEROPT) $(FILE).pp' 'RESEXT=$(RESEXT)' 'FILE=$(FILE)'
 
 
 %.res : %.pp
-        $(MAKE) testone 'FILE=$*' 'RESEXT=res'
-        $(MAKE) testsuccess 'FILE=$*' 'RESFILE=$*.res'
+	$(MAKE) testone 'FILE=$*' 'RESEXT=res'
+	$(MAKE) testsuccess 'FILE=$*' 'RESFILE=$*.res'
 
 %.ref : %.pp
-        $(MAKE) testone 'FILE=$*' 'RESEXT=ref'
-        $(MAKE) testfail 'FILE=$*' 'RESFILE=$*.ref'
+	$(MAKE) testone 'FILE=$*' 'RESEXT=ref'
+	$(MAKE) testfail 'FILE=$*' 'RESFILE=$*.ref'
 
 # exec log files
 # creates two files
 # *.elg log file
 # *.exc exicode of program
 %.elg : %.res
-        $(MAKE) testexec 'FILE=$*'
+	$(MAKE) testexec 'FILE=$*'
 
 %.eli : %.res
-        $(MAKE) testexec 'FILE=$*' 'NOREDIR=YES'
+	$(MAKE) testexec 'FILE=$*' 'NOREDIR=YES'
 
 allts : $(patsubst %.pp,%.res,$(filter-out $(graphlst),$(wildcard ts/ts*.pp)))
 
@@ -284,31 +323,31 @@ endif
 endif
 
 clean_fail :
-        -rm -f $(addsuffix .res,$(TS_FAIL_LIST))
-        -rm -f $(addsuffix .ref,$(TF_FAIL_LIST))
-        -rm -f $(addsuffix .res,$(EXEC_FAIL_LIST))
-        -rm -f $(addsuffix .elg,$(EXEC_FAIL_LIST))
+	-rm -f $(addsuffix .res,$(TS_FAIL_LIST))
+	-rm -f $(addsuffix .ref,$(TF_FAIL_LIST))
+	-rm -f $(addsuffix .res,$(EXEC_FAIL_LIST))
+	-rm -f $(addsuffix .elg,$(EXEC_FAIL_LIST))
 
 # Test all failure of last time
 # don't forget to try to run them again
 again :
-        $(MAKE) internal_again LOG=again.log LONGLOG=again.llg
+	$(MAKE) internal_again LOG=again.log LONGLOG=again.llg
 
 internal_again : clean_fail $(addsuffix .res,$(TS_FAIL_LIST)) \
-        $(addsuffix .ref,$(TF_FAIL_LIST)) \
-        $(addsuffix .elg,$(EXEC_FAIL_LIST) $(TS_FAIL_LIST))
-        grep fails $(LOG)
+	$(addsuffix .ref,$(TF_FAIL_LIST)) \
+	$(addsuffix .elg,$(EXEC_FAIL_LIST) $(TS_FAIL_LIST))
+	grep fails $(LOG)
 
 all_compilations : allts alltbs allwebtbs alltf alltbf allwebtbf allto alltest alltesi alltis
-        grep fails $(LOG)
+	grep fails $(LOG)
 
 allexec : alltsexec alltbsexec allwebtbsexec alltestexec
-        grep fails  $(LOG)
+	grep fails  $(LOG)
 
 alltestexec: $(patsubst %.pp,%.elg,$(wildcard test/test*.pp))
 
 allfails :
-        grep fails $(LOG) > fails.log
+	grep fails $(LOG) > fails.log
 
 # these test are interactive
 # no redirection !!!
@@ -329,29 +368,30 @@ tbsexec300to399 : $(patsubst %.pp,%.elg,$(filter-out $(graphlst),$(wildcard tbs/
 alltisexec: $(patsubst %.pp,%.eli,$(filter-out $(graphlst),$(wildcard tis/tis*.pp)))
 
 clean:
-        -rm -f $(addsuffix /*.re*,$(DIRS))
+	-rm -f $(addsuffix /*.ref,$(DIRS))
+	-rm -f $(addsuffix /*.res,$(DIRS))
         -rm -f $(addsuffix /*$(PPUEXT),$(DIRS))
-        -rm -f $(addsuffix /*$(OEXT),$(DIRS))
-        -rm -f $(addsuffix /*.log,$(DIRS))
-        -rm -f $(addsuffix /*.elg,$(DIRS))
-        -rm -f $(addsuffix /*.exc,$(DIRS))
+	-rm -f $(addsuffix /*$(OEXT),$(DIRS))
+	-rm -f $(addsuffix /*.log,$(DIRS))
+	-rm -f $(addsuffix /*.elg,$(DIRS))
+	-rm -f $(addsuffix /*.exc,$(DIRS))
 ifdef inlinux
-        -rm -f $(patsubst %.pp,%$(EXEEXT),$(wildcard $(addsuffix /t*.pp,$(DIRS))))
+	-rm -f $(patsubst %.pp,%$(EXEEXT),$(wildcard $(addsuffix /t*.pp,$(DIRS))))
 else
-        -rm -f $(addsuffix /*$(EXEEXT),$(DIRS))
+	-rm -f $(addsuffix /*$(EXEEXT),$(DIRS))
 endif
-        -rm -f *.tmp
-        -rm -f $(LOG) $(LONGLOG) faillist ts_fail tf_fail ex_fail
-        -rm -f fpcmaked ppas.sh ppas.bat retcode
+	-rm -f *.tmp
+	-rm -f $(LOG) $(LONGLOG) faillist ts_fail tf_fail ex_fail
+	-rm -f fpcmaked ppas.sh ppas.bat retcode
 
 info :
-        @echo This Makefile allows to test the compiler
-        @echo compilation of 'ts*.pp' should succeed
-        @echo compilation of 'tf*.pp' should fail
-        @echo compilation of 'test*.pp' should succeed
-        @echo 'to*.pp' files should also compile
-        @echo simply run \'make tests\' to test all compilation
-        @echo run \'make allexec\' to test also if the executables
-        @echo created behave like the should
-        @echo run \'make tesiexec\' to test executables
-        @echo that require interactive mode
+	@echo This Makefile allows to test the compiler
+	@echo compilation of 'ts*.pp' should succeed
+	@echo compilation of 'tf*.pp' should fail
+	@echo compilation of 'test*.pp' should succeed
+	@echo 'to*.pp' files should also compile
+	@echo simply run \'make tests\' to test all compilation
+	@echo run \'make allexec\' to test also if the executables
+	@echo created behave like the should
+	@echo run \'make tesiexec\' to test executables
+	@echo that require interactive mode