xref: /dragonfly/tools/regression/bin/sh/builtins/fc2.0 (revision 3e3895bf)
1*3e3895bfSKrzysztof Piecuch# $FreeBSD: head/bin/sh/tests/builtins/fc2.0 213738 2010-10-12 18:20:38Z obrien $
23df4d8b0SPeter Avalosset -e
33df4d8b0SPeter Avalostrap 'echo Broken pipe -- test failed' PIPE
43df4d8b0SPeter Avalos
53df4d8b0SPeter AvalosP=${TMPDIR:-/tmp}
63df4d8b0SPeter Avaloscd $P
73df4d8b0SPeter AvalosT=$(mktemp -d sh-test.XXXXXX)
83df4d8b0SPeter Avaloscd $T
93df4d8b0SPeter Avalos
103df4d8b0SPeter Avalosmkfifo input output error
113df4d8b0SPeter AvalosHISTFILE=/dev/null ${SH} +m -i <input >output 2>error &
123df4d8b0SPeter Avalosexec 3>input
133df4d8b0SPeter Avalos{
143df4d8b0SPeter Avalos	# Command not found, containing slash
153df4d8b0SPeter Avalos	echo '/var/empty/nonexistent' >&3
163df4d8b0SPeter Avalos	# Read error message, shell will read new input now
173df4d8b0SPeter Avalos	read dummy <&5
183df4d8b0SPeter Avalos	# Execute bad command again
193df4d8b0SPeter Avalos	echo 'fc -e true; echo continued' >&3
203df4d8b0SPeter Avalos	read dummy <&5
213df4d8b0SPeter Avalos	read line <&4 && [ "$line" = continued ] && : ${rc:=0}
223df4d8b0SPeter Avalos	exec 3>&-
233df4d8b0SPeter Avalos	# Old sh duplicates itself after the fc, producing another line
243df4d8b0SPeter Avalos	# of output.
253df4d8b0SPeter Avalos	if read line <&4; then
263df4d8b0SPeter Avalos		echo "Extraneous output: $line"
273df4d8b0SPeter Avalos		rc=1
283df4d8b0SPeter Avalos	fi
293df4d8b0SPeter Avalos} 4<output 5<error
303df4d8b0SPeter Avalosexec 3>&-
313df4d8b0SPeter Avalos
323df4d8b0SPeter Avalosrm input output error
333df4d8b0SPeter Avalosrmdir ${P}/${T}
343df4d8b0SPeter Avalosexit ${rc:-3}
35