>From 71264fa62ea7b2f8afc4a7c0809605e3d23476a9 Mon Sep 17 00:00:00 2001
From: Evan Hanson
Date: Tue, 31 Oct 2017 21:38:26 +1300
Subject: [PATCH 1/3] Clean up all generated files when running "make
testclean"
Update the test scripts and "testclean" make target to remove all files
generated by the tests.
Add an ".out" suffix to generated files so they can be easily
distinguished.
Escape the ">" in "string->number" when calling echo in runtests.bat.
This avoids accidentally creating a file called "number" when running
the test suite on Windows.
Ignore the exit status of the USES_SONAME library removal command in the
"clean" target.
Always invoke diff(1) with expected on the left, actual on the right.
---
rules.make | 19 +++++++++++++----
tests/{r4rstest.out => r4rstest.expected} | 0
tests/runtests.bat | 31 +++++++++++++--------------
tests/runtests.sh | 35 +++++++++++++++----------------
4 files changed, 47 insertions(+), 38 deletions(-)
rename tests/{r4rstest.out => r4rstest.expected} (100%)
diff --git a/rules.make b/rules.make
index 7b6461d6..beebe8c4 100644
--- a/rules.make
+++ b/rules.make
@@ -955,7 +955,7 @@ clean:
$(IMPORT_LIBRARIES:=.import.so) $(LIBCHICKEN_IMPORT_LIBRARY) \
$(foreach lib,$(DYNAMIC_IMPORT_LIBRARIES),chicken.$(lib).import.scm)
ifdef USES_SONAME
- $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX).so.$(BINARYVERSION)
+ -$(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX).so.$(BINARYVERSION)
endif
confclean:
@@ -966,12 +966,23 @@ spotless: distclean testclean
-$(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) $(DISTFILES) \
buildid buildbranch
-
distclean: clean confclean
testclean:
- $(REMOVE_COMMAND) $(REMOVE_COMMAND_RECURSIVE_OPTIONS) $(SRCDIR)tests$(SEP)a.out $(SRCDIR)tests$(SEP)scrutiny.out \
- $(SRCDIR)tests$(SEP)tmp* $(SRCDIR)tests$(SEP)*.so $(SRCDIR)tests$(SEP)*.import.scm $(SRCDIR)tests$(SEP)repository $(SRCDIR)tests$(SEP)*.dll
+ -$(REMOVE_COMMAND) $(REMOVE_COMMAND_RECURSIVE_OPTIONS) \
+ $(SRCDIR)tests$(SEP)*.dll \
+ $(SRCDIR)tests$(SEP)*.import.scm \
+ $(SRCDIR)tests$(SEP)*.link \
+ $(SRCDIR)tests$(SEP)*.out \
+ $(SRCDIR)tests$(SEP)*.profile \
+ $(SRCDIR)tests$(SEP)*.so \
+ $(SRCDIR)tests$(SEP)tmp* \
+ $(SRCDIR)tests$(SEP)empty-file \
+ $(SRCDIR)tests$(SEP)null \
+ $(SRCDIR)tests$(SEP)null.c \
+ $(SRCDIR)tests$(SEP)null.o \
+ $(SRCDIR)tests$(SEP)null.exe \
+ $(SRCDIR)tests$(SEP)test-repository
# run tests
diff --git a/tests/r4rstest.out b/tests/r4rstest.expected
similarity index 100%
rename from tests/r4rstest.out
rename to tests/r4rstest.expected
diff --git a/tests/runtests.bat b/tests/runtests.bat
index 67f3a227..b6af433c 100644
--- a/tests/runtests.bat
+++ b/tests/runtests.bat
@@ -110,15 +110,15 @@ if errorlevel 1 exit /b 1
del /f /q foo.types foo.import.*
echo ======================================== specialization benchmark ...
-%compile% fft.scm -O2 -local -d0 -disable-interrupts -b -o fft1
+%compile% fft.scm -O2 -local -d0 -disable-interrupts -b -o fft1.out
if errorlevel 1 exit /b 1
-%compile% fft.scm -O2 -local -specialize -debug x -d0 -disable-interrupts -b -o fft2 -specialize
+%compile% fft.scm -O2 -local -specialize -debug x -d0 -disable-interrupts -b -o fft2.out -specialize
if errorlevel 1 exit /b 1
echo normal:
-fft1 1000 7
+fft1.out 1000 7
if errorlevel 1 exit /b 1
echo specialized:
-fft2 1000 7
+fft2.out 1000 7
if errorlevel 1 exit /b 1
echo ======================================== callback tests ...
@@ -336,10 +336,10 @@ if errorlevel 1 exit /b 1
echo ======================================== r4rstest ...
echo (expect mult-float-print-test to fail)
-%interpret% -R data-structures -e "(set! ##sys#procedure->string (constantly \"#\"))" -i -s r4rstest.scm >r4rstest.log
+%interpret% -R data-structures -e "(set! ##sys#procedure->string (constantly \"#\"))" -i -s r4rstest.scm >r4rstest.out
if errorlevel 1 exit /b 1
-type r4rstest.log
+type r4rstest.out
echo ======================================== syntax tests (r5rs_pitfalls) ...
echo (expect two failures)
@@ -406,7 +406,7 @@ if errorlevel 1 exit /b 1
a.out
if errorlevel 1 exit /b 1
-echo ======================================== string->number tests ...
+echo ======================================== string-^>number tests ...
%interpret% -s numbers-string-conversion-tests.scm
if errorlevel 1 exit /b 1
%compile% -specialize numbers-string-conversion-tests.scm
@@ -581,23 +581,23 @@ if errorlevel 1 exit /b 1
echo ======================================== linking tests ...
%compile2% -unit reverser reverser\tags\1.0\reverser.scm -J -c -o reverser.o
-%compile2% -link reverser linking-tests.scm
+%compile2% -link reverser linking-tests.scm -o a.out
if errorlevel 1 exit /b 1
-linking-tests
+a.out
if errorlevel 1 exit /b 1
-%compile2% -link reverser linking-tests.scm -static
+%compile2% -link reverser linking-tests.scm -o a.out -static
if errorlevel 1 exit /b 1
-linking-tests
+a.out
if errorlevel 1 exit /b 1
move reverser.o %CHICKEN_INSTALL_REPOSITORY%
move reverser.import.scm %CHICKEN_INSTALL_REPOSITORY%
-%compile2% -link reverser linking-tests.scm
+%compile2% -link reverser linking-tests.scm -o a.out
if errorlevel 1 exit /b 1
-linking-tests
+a.out
if errorlevel 1 exit /b 1
-%compile2% -link reverser linking-tests.scm -static
+%compile2% -link reverser linking-tests.scm -o a.out -static
if errorlevel 1 exit /b 1
-linking-tests
+a.out
if errorlevel 1 exit /b 1
echo ======================================== private repository test ...
@@ -609,7 +609,6 @@ tmp\xxx %CD%\tmp
set PATH=%CD%\tmp;%PATH% xxx %CD%\tmp
rem this may crash, if the PATH contains a non-matching libchicken.dll on Windows:
set PATH=%PATH%;%CD%\tmp xxx %CD%\tmp
-del /f /q /s rev-app rev-app-2 reverser\*.import.* reverser\*.so
echo ======================================== multiple return values tests ...
%interpret% -s multiple-values.scm
diff --git a/tests/runtests.sh b/tests/runtests.sh
index 24dae5c1..f512bdbe 100755
--- a/tests/runtests.sh
+++ b/tests/runtests.sh
@@ -99,10 +99,10 @@ $compile specialization-tests.scm -analyze-only -verbose -specialize 2>specializ
# these are sensitive to gensym-names, so make them optional
if test \! -f scrutiny.expected; then
- cp scrutiny.out scrutiny.expected
+ cp scrutiny.expected scrutiny.out
fi
if test \! -f specialization.expected; then
- cp specialization.out specialization.expected
+ cp specialization.expected specialization.out
fi
diff $DIFF_OPTS scrutiny.expected scrutiny.out
@@ -112,7 +112,7 @@ $compile scrutiny-tests-2.scm -A 2>scrutiny-2.out -verbose
# this is sensitive to gensym-names, so make it optional
if test \! -f scrutiny-2.expected; then
- cp scrutiny-2.out scrutiny-2.expected
+ cp scrutiny-2.expected scrutiny-2.out
fi
diff $DIFF_OPTS scrutiny-2.expected scrutiny-2.out
@@ -133,12 +133,12 @@ $compile specialization-test-2.scm -types foo.types -types specialization-test-2
rm -f foo.types foo.import.*
echo "======================================== specialization benchmark ..."
-$compile fft.scm -O2 -local -d0 -disable-interrupts -b -o fft1
-$compile fft.scm -O2 -local -specialize -debug x -d0 -disable-interrupts -b -o fft2 -specialize
+$compile fft.scm -O2 -local -d0 -disable-interrupts -b -o fft1.out
+$compile fft.scm -O2 -local -specialize -debug x -d0 -disable-interrupts -b -o fft2.out -specialize
echo "normal:"
-$time ./fft1 1000 7
+$time ./fft1.out 1000 7
echo "specialized:"
-$time ./fft2 1000 7
+$time ./fft2.out 1000 7
echo "======================================== callback tests ..."
$compile -extend c-id-valid.scm callback-tests.scm
@@ -278,9 +278,9 @@ $interpret -s loopy-test.scm
echo "======================================== r4rstest ..."
echo "(expect mult-float-print-test to fail)"
$interpret -R data-structures -e '(set! ##sys#procedure->string (constantly "#"))' \
- -i -s r4rstest.scm >r4rstest.log
+ -i -s r4rstest.scm >r4rstest.out
-diff $DIFF_OPTS r4rstest.out r4rstest.log
+diff $DIFF_OPTS r4rstest.expected r4rstest.out
echo "======================================== syntax tests (r5rs_pitfalls) ..."
echo "(expect two failures)"
@@ -454,15 +454,15 @@ $compile -e embedded3.c embedded4.scm
echo "======================================== linking tests ..."
$compile2 -unit reverser reverser/tags/1.0/reverser.scm -J -c -o reverser.o
-$compile2 -link reverser linking-tests.scm
-./linking-tests
-$compile2 -link reverser linking-tests.scm -static
-./linking-tests
+$compile2 -link reverser linking-tests.scm -o a.out
+./a.out
+$compile2 -link reverser linking-tests.scm -o a.out -static
+./a.out
mv reverser.o reverser.import.scm "$CHICKEN_INSTALL_REPOSITORY"
-$compile2 -link reverser linking-tests.scm
-./linking-tests
-$compile2 -link reverser linking-tests.scm -static
-./linking-tests
+$compile2 -link reverser linking-tests.scm -o a.out
+./a.out
+$compile2 -link reverser linking-tests.scm -o a.out -static
+./a.out
echo "======================================== private repository test ..."
mkdir -p tmp
@@ -472,7 +472,6 @@ tmp/xxx ${TEST_DIR}/tmp
PATH=`pwd`/tmp:$PATH xxx ${TEST_DIR}/tmp
# this may crash, if the PATH contains a non-matching libchicken.dll on Windows:
#PATH=$PATH:${TEST_DIR}/tmp xxx ${TEST_DIR}/tmp
-rm -fr reverser/*.import.* reverser/*.so
echo "======================================== multiple return values tests ..."
$interpret -s multiple-values.scm
--
2.11.0