xref: /freebsd/bin/sh/tests/parameters/positional8.0 (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
1*a5cb58abSJilles Tjoelker
2*a5cb58abSJilles Tjoelkerfailures=''
3*a5cb58abSJilles Tjoelkerok=''
4*a5cb58abSJilles Tjoelker
5*a5cb58abSJilles Tjoelkertestcase() {
6*a5cb58abSJilles Tjoelker	code="$1"
7*a5cb58abSJilles Tjoelker	expected="$2"
8*a5cb58abSJilles Tjoelker	oIFS="$IFS"
9*a5cb58abSJilles Tjoelker	eval "$code"
10*a5cb58abSJilles Tjoelker	IFS='|'
11*a5cb58abSJilles Tjoelker	result="$#|$*"
12*a5cb58abSJilles Tjoelker	IFS="$oIFS"
13*a5cb58abSJilles Tjoelker	if [ "x$result" = "x$expected" ]; then
14*a5cb58abSJilles Tjoelker		ok=x$ok
15*a5cb58abSJilles Tjoelker	else
16*a5cb58abSJilles Tjoelker		failures=x$failures
17*a5cb58abSJilles Tjoelker		echo "For $code, expected $expected actual $result"
18*a5cb58abSJilles Tjoelker	fi
19*a5cb58abSJilles Tjoelker}
20*a5cb58abSJilles Tjoelker
21*a5cb58abSJilles Tjoelkertestcase 'shift $#; set -- ""$*'		'1|'
22*a5cb58abSJilles Tjoelkertestcase 'shift $#; set -- $*""'		'1|'
23*a5cb58abSJilles Tjoelkertestcase 'shift $#; set -- ""$@'		'1|'
24*a5cb58abSJilles Tjoelkertestcase 'shift $#; set -- $@""'		'1|'
25*a5cb58abSJilles Tjoelkertestcase 'shift $#; set -- """$*"'		'1|'
26*a5cb58abSJilles Tjoelkertestcase 'shift $#; set -- "$*"""'		'1|'
27*a5cb58abSJilles Tjoelkertestcase 'shift $#; set -- """$@"'		'1|'
28*a5cb58abSJilles Tjoelkertestcase 'shift $#; set -- "$@"""'		'1|'
29*a5cb58abSJilles Tjoelker
30*a5cb58abSJilles Tjoelkertest "x$failures" = x
31