source: project/chicken/branches/prerelease/tests/runtests.sh @ 15101

Last change on this file since 15101 was 15101, checked in by felix winkelmann, 10 years ago

merged trunk changes from 14491:15100 into prerelease branch

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