1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00
guile/test-suite/standalone/test-guild-compile
Michael Gran efb37b954e skip compile test when pause not available
* test-suite/standalone/test-guild-compile: abort if pause
    does not exist
2021-01-21 15:32:06 -08:00

47 lines
936 B
Bash
Executable file

#!/bin/sh
#
# This -*- sh -*- script tests whether 'guild compile' leaves traces
# behind it upon SIGINT.
source="t-guild-compile-$$"
target="$source.go"
trap 'rm -f "$source" "$target"' EXIT
cat > "$source"<<EOF
(eval-when (expand load eval)
;; Wait for SIGINT, if the pause function exists.
(if (defined? 'pause) (pause) (exit 77))
;; Then sleep so that the SIGINT handler gets to run
;; and compilation doesn't complete before it runs.
(sleep 100))
(define chbouib 42)
EOF
guild compile -o "$target" "$source" &
pid="$!"
# Send SIGINT.
sleep 2 && kill -INT "$pid"
# Wait for 'guild compile' to terminate.
sleep 2
# Check whether there are any leftovers.
for file in "$target"*
do
if test "$file" != "${target}*"
then
echo "error: 'guild compile' failed to remove '$file'" >&2
rm "$target"*
kill "$pid"
exit 1
fi
done
if test -f "$target"
then
echo "error: '$target' produced" >&2
exit 1
fi