1# $FreeBSD$ 2 3failures=0 4 5check() { 6 if [ "$2" != "$3" ]; then 7 echo "Failure at $1" >&2 8 failures=$((failures + 1)) 9 fi 10} 11 12check $LINENO "$(trap "echo bye" EXIT; f() { :; }; f >/dev/null)" bye 13check $LINENO "$(trap "echo bye" EXIT; f() { :; }; { f; } >/dev/null)" bye 14check $LINENO "$(trap "echo bye" EXIT; f() { :; }; (f) >/dev/null)" bye 15check $LINENO "$(trap "echo bye" EXIT; f() { :; }; (f >/dev/null))" bye 16check $LINENO "$(${SH} -c 'trap "echo bye" EXIT; f() { :; }; f >/dev/null')" bye 17check $LINENO "$(${SH} -c 'trap "echo bye" EXIT; f() { :; }; { f; } >/dev/null')" bye 18check $LINENO "$(${SH} -c 'trap "echo bye" EXIT; f() { :; }; (f) >/dev/null')" bye 19check $LINENO "$(${SH} -c 'trap "echo bye" EXIT; f() { :; }; (f >/dev/null)')" bye 20 21exit $((failures > 0)) 22