+
+# *.pure-cload.lisp files want to be compiled, then loaded. They
+# can all be done in the same invocation of Lisp.
+echo //running '*.pure-cload.lisp' tests
+for f in *.pure-cload.lisp; do
+ # (Actually here we LOAD each one into a separate invocation
+ # of Lisp just because I haven't figured out a concise way
+ # to LOAD them all into the same Lisp.)
+ if [ -f $f ]; then
+ echo //running $f test
+ $sbcl <<EOF ; tenfour
+ (compile-file "$f")
+ (progn (load *) (sb-ext:quit :unix-status 104))
+EOF
+ fi
+done
+
+# *.impure-cload.lisp files want to be compiled, then loaded. They
+# can have side effects, so each one should be done in a separate
+# invocation of Lisp so that they don't interfere.
+echo //running '*.impure-cload.lisp' tests
+for f in *.impure-cload.lisp; do
+ if [ -f $f ]; then
+ echo //running $f test
+ $sbcl <<EOF ; tenfour
+ (compile-file "$f")
+ (progn (load *) (sb-ext:quit :unix-status 104))
+EOF
+ fi
+done
+
+# (*.before-xc.lisp and *.after-xc.lisp files aren't handled in this
+# script at all. They're tests intended to run in the cross-compiler,
+# so that some functionality can be tested even when cold init doesn't
+# work.)
+
+echo '//apparent success (reached end of run-tests.sh normally)'