In the mips sigtrap hander, and for the case of a break instruction in a
[sbcl.git] / tests / core.test.sh
1 #!/bin/sh
2
3 # tests related to .core files
4
5 # This software is part of the SBCL system. See the README file for
6 # more information.
7 #
8 # While most of SBCL is derived from the CMU CL system, the test
9 # files (like this one) were written from scratch after the fork
10 # from CMU CL.
11
12 # This software is in the public domain and is provided with
13 # absolutely no warranty. See the COPYING and CREDITS files for
14 # more information.
15
16 tmpcore="core-test-sh-$$.core"
17 rm -f $tmpcore
18
19 # In sbcl-0.7.7 SAVE-LISP-AND-DIE didn't work at all because of
20 # flakiness caused by consing/GC/purify twice-and-at-least-twice
21 # mismatch grot.
22 #
23 # "serves yall right for fiddling with too much stuff"
24 #   -- Eric Marsden, <http://tunes.org/~nef/logs/lisp/02.09.15>
25 #
26 # diagnosed and fixed by Dan Barlow in sbcl-0.7.7.29
27 $SBCL <<EOF
28   (defun foo (x) (+ x 11))
29   (save-lisp-and-die "$tmpcore")
30 EOF
31 $SBCL_ALLOWING_CORE --core "$tmpcore" \
32 --userinit /dev/null --sysinit /dev/null <<EOF
33   (quit :unix-status (foo 10))
34 EOF
35 if [ $? = 21 ]; then
36     echo "/Basic SAVE-LISP-AND-DIE worked, good."
37 else
38     echo "failure in basic SAVE-LISP-AND-DIE: $?"
39     exit 1
40 fi
41
42 rm -f $tmpcore
43 echo "/returning success from core.test.sh"
44 exit 104