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

Last change on this file since 15171 was 15171, checked in by felix winkelmann, 11 years ago

fix in foreign-value; tests use own repo; other fixes (thanks to sjaaman)

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