source: project/chicken/trunk/tests/runtests.sh @ 16118

Last change on this file since 16118 was 16118, checked in by Kon Lovett, 10 years ago

Renamed posix-test to plural. Added to test suite.

File size: 7.0 KB
Line 
1#!/bin/sh
2# runtests.sh
3
4set -e
5TEST_DIR=`pwd`
6export DYLD_LIBRARY_PATH=${TEST_DIR}/..
7export LD_LIBRARY_PATH=${TEST_DIR}/..
8
9mkdir -p test-repository
10
11# copy files into test-repository (by hand to avoid calling `chicken-install'):
12
13for x in setup-api.so setup-api.import.so setup-download.so \
14      setup-download.import.so chicken.import.so lolevel.import.so \
15      srfi-1.import.so srfi-4.import.so data-structures.import.so \
16      ports.import.so files.import.so posix.import.so \
17      srfi-13.import.so srfi-69.import.so extras.import.so \
18      regex.import.so srfi-14.import.so tcp.import.so \
19      foreign.import.so scheme.import.so srfi-18.import.so \
20      utils.import.so csi.import.so irregex.import.so types.db; do
21  cp ../$x test-repository
22done
23
24"${TEST_DIR}/../chicken-install" -init test-repository export
25CHICKEN_REPOSITORY=${TEST_DIR}/test-repository
26CHICKEN=../chicken
27
28if test -n "$MSYSTEM"; then
29    CHICKEN="..\\chicken.exe"
30fi
31
32compile="../csc -compiler $CHICKEN -v -I.. -L.. -include-path .. -o a.out"
33compile_s="../csc -s -compiler $CHICKEN -v -I.. -L.. -include-path .."
34interpret="../csi -n -include-path .."
35
36echo "======================================== compiler tests ..."
37$compile compiler-tests.scm
38./a.out
39
40echo "======================================== compiler tests (2) ..."
41$compile compiler-tests-2.scm -lambda-lift
42./a.out
43
44echo "======================================== compiler inlining tests  ..."
45$compile inlining-tests.scm -optimize-level 3
46./a.out
47
48echo "======================================== scrutiny tests ..."
49$compile scrutiny-tests.scm -scrutinize -analyze-only -ignore-repository -types ../types.db 2>scrutiny.out
50
51if test -n "$MSYSTEM"; then
52    dos2unix scrutiny.out
53fi
54
55# this is sensitive to gensym-names, so make it optional
56if test \! -f scrutiny.expected; then
57    cp scrutiny.out scrutiny.expected
58fi
59
60diff -u scrutiny.out scrutiny.expected || true
61
62echo "======================================== runtime tests ..."
63$interpret -s apply-test.scm
64$compile test-gc-hooks.scm
65./a.out
66
67echo "======================================== library tests ..."
68$interpret -s library-tests.scm
69
70echo "======================================== syntax tests ..."
71$interpret -s syntax-tests.scm
72
73echo "======================================== syntax tests (compiled) ..."
74$compile syntax-tests.scm
75./a.out
76
77echo "======================================== syntax tests (2, compiled) ..."
78$compile syntax-tests-2.scm
79./a.out
80
81#echo "======================================== meta-syntax tests ..."
82#$interpret -bnq meta-syntax-test.scm -e '(import foo)' -e '(bar 1 2)'
83#$compile_s -s meta-syntax-test.scm -j foo
84#$compile_s -s foo.import.scm
85#$interpret -bnq -e '(require-library meta-syntax-test)' -e '(import foo)' -e '(bar 1 2)'
86
87echo "======================================== reexport tests ..."
88$interpret -bnq reexport-tests.scm
89$compile reexport-tests.scm
90./a.out
91
92echo "======================================== compiler syntax tests ..."
93$compile compiler-syntax-tests.scm
94./a.out
95
96echo "======================================== import library tests ..."
97rm -f foo.import.*
98$compile import-library-test1.scm -emit-import-library foo
99$interpret -s import-library-test2.scm
100$compile_s -s foo.import.scm -o foo.import.so
101$interpret -s import-library-test2.scm
102$compile import-library-test2.scm
103./a.out
104
105echo "======================================== syntax tests (matchable) ..."
106$interpret matchable.scm -s match-test.scm
107
108echo "======================================== syntax tests (loopy-loop) ..."
109$interpret -s loopy-test.scm
110
111echo "======================================== syntax tests (r5rs_pitfalls) ..."
112echo "(expect two failures)"
113$interpret -i -s r5rs_pitfalls.scm
114
115echo "======================================== module tests ..."
116$interpret -include-path .. -s module-tests.scm
117
118echo "======================================== module tests (compiled) ..."
119$compile module-tests-compiled.scm
120./a.out
121
122echo "======================================== module tests (chained) ..."
123rm -f m*.import.* test-chained-modules.so
124$interpret -bnq test-chained-modules.scm
125$compile_s test-chained-modules.scm -j m3
126$compile_s m3.import.scm
127$interpret -bn test-chained-modules.so
128$interpret -bn test-chained-modules.so -e '(import m3) (s3)'
129
130echo "======================================== module tests (ec) ..."
131rm -f ec.so ec.import.*
132$interpret -bqn ec.scm ec-tests.scm
133$compile_s ec.scm -emit-import-library ec -o ec.so
134$compile_s ec.import.scm -o ec.import.so
135$interpret -bnq ec.so ec-tests.scm
136# $compile ec-tests.scm
137# ./a.out        # takes ages to compile
138
139echo "======================================== hash-table tests ..."
140$interpret -s hash-table-tests.scm
141
142echo "======================================== lolevel tests ..."
143$interpret -s lolevel-tests.scm
144
145echo "======================================== port tests ..."
146$interpret -s port-tests.scm
147
148echo "======================================== fixnum tests ..."
149$compile fixnum-tests.scm
150./a.out
151
152echo "======================================== srfi-18 tests ..."
153$interpret -s srfi-18-tests.scm
154echo "*** Skipping \"feeley-dynwind\" (for now) ***"
155# $interpret -s feeley-dynwind.scm
156
157echo "======================================== path tests ..."
158$interpret -bnq path-tests.scm
159
160echo "======================================== posix tests ..."
161$compile posix-tests.scm
162./a.out
163
164echo "======================================== regular expression tests ..."
165$interpret -bnq test-irregex.scm
166
167echo "======================================== r4rstest ..."
168echo "(expect mult-float-print-test to fail)"
169$interpret -e '(set! ##sys#procedure->string (constantly "#<procedure>"))' \
170  -i -s r4rstest.scm >r4rstest.log
171
172if test -n "$MSYSTEM"; then
173    # the windows runtime library prints flonums differently
174    tail r4rstest.log
175else
176    diff -bu r4rstest.out r4rstest.log || true
177fi
178
179echo "======================================== compiler/nursery stress test ..."
180for s in 100000 120000 200000 250000 300000 350000 400000 450000 500000; do
181    echo $s"
182    ../chicken ../utils.scm -:s$s -output-file tmp.c -include-path ..
183done
184
185echo "======================================== finalizer tests ..."
186$interpret -s test-finalizers.scm
187
188echo "======================================== finalizer tests (2) ..."
189$compile test-finalizers-2.scm
190./a.out
191
192echo "======================================== locative stress test ..."
193$compile locative-stress-test.scm
194./a.out
195
196echo "======================================== embedding (1) ..."
197$compile embedded1.c
198./a.out
199
200echo "======================================== embedding (2) ..."
201$compile -e embedded2.scm
202./a.out
203
204echo "======================================== regex benchmarks ..."
205
206cd ../benchmarks/regex
207../../csi -bnq -include-path ../.. benchmark.scm
208cd "${TEST_DIR}"
209
210echo "======================================== benchmarks ..."
211cd ../benchmarks
212for x in `ls *.scm`; do
213    case $x in
214        "cscbench.scm");;
215        "plists.scm");;
216        *)
217            echo $x
218            ../csc $x -compiler $CHICKEN -I.. -L.. -O3 -d0
219            ./`basename $x .scm`;;
220    esac
221done
222cd "${TEST_DIR}"
223
224echo "======================================== done."
Note: See TracBrowser for help on using the repository browser.