1*3e3895bfSKrzysztof Piecuch# $FreeBSD: head/bin/sh/tests/expansion/trim2.0 206147 2010-04-03 21:07:50Z jilles $
23df4d8b0SPeter Avalos
33df4d8b0SPeter Avalose= q='?' a='*' t=texttext s='ast*que?non' p='/et[c]/' w='a b c' b='{{(#)}}'
43df4d8b0SPeter Avalosh='##'
53df4d8b0SPeter Avalosfailures=''
63df4d8b0SPeter Avalosok=''
73df4d8b0SPeter Avalos
83df4d8b0SPeter Avalostestcase() {
93df4d8b0SPeter Avalos	code="$1"
103df4d8b0SPeter Avalos	expected="$2"
113df4d8b0SPeter Avalos	oIFS="$IFS"
123df4d8b0SPeter Avalos	eval "$code"
133df4d8b0SPeter Avalos	IFS='|'
143df4d8b0SPeter Avalos	result="$#|$*"
153df4d8b0SPeter Avalos	IFS="$oIFS"
163df4d8b0SPeter Avalos	if [ "x$result" = "x$expected" ]; then
173df4d8b0SPeter Avalos		ok=x$ok
183df4d8b0SPeter Avalos	else
193df4d8b0SPeter Avalos		failures=x$failures
203df4d8b0SPeter Avalos		echo "For $code, expected $expected actual $result"
213df4d8b0SPeter Avalos	fi
223df4d8b0SPeter Avalos}
233df4d8b0SPeter Avalos
243df4d8b0SPeter Avalosset -f
253df4d8b0SPeter Avalostestcase 'set -- $s'				'1|ast*que?non'
263df4d8b0SPeter Avalostestcase 'set -- ${s%\?*}'			'1|ast*que'
273df4d8b0SPeter Avalostestcase 'set -- "${s%\?*}"'			'1|ast*que'
283df4d8b0SPeter Avalostestcase 'set -- ${s%\**}'			'1|ast'
293df4d8b0SPeter Avalostestcase 'set -- "${s%\**}"'			'1|ast'
303df4d8b0SPeter Avalostestcase 'set -- ${s%"$q"*}'			'1|ast*que'
313df4d8b0SPeter Avalostestcase 'set -- "${s%"$q"*}"'			'1|ast*que'
323df4d8b0SPeter Avalostestcase 'set -- ${s%"$a"*}'			'1|ast'
333df4d8b0SPeter Avalostestcase 'set -- "${s%"$a"*}"'			'1|ast'
343df4d8b0SPeter Avalostestcase 'set -- ${s%"$q"$a}'			'1|ast*que'
353df4d8b0SPeter Avalostestcase 'set -- "${s%"$q"$a}"'			'1|ast*que'
363df4d8b0SPeter Avalostestcase 'set -- ${s%"$a"$a}'			'1|ast'
373df4d8b0SPeter Avalostestcase 'set -- "${s%"$a"$a}"'			'1|ast'
383df4d8b0SPeter Avalosset +f
393df4d8b0SPeter Avalos
403df4d8b0SPeter Avalostestcase 'set -- "${b%\}}"'			'1|{{(#)}'
413df4d8b0SPeter Avalos# Parentheses are special in ksh, check that they can be escaped
423df4d8b0SPeter Avalostestcase 'set -- "${b%\)*}"'			'1|{{(#'
433df4d8b0SPeter Avalostestcase 'set -- "${h#\#}"'			'1|#'
443df4d8b0SPeter Avalos
453df4d8b0SPeter Avalostestcase 'set -- ${p%"${p#?}"}'			'1|/'
463df4d8b0SPeter Avalostestcase 'set -- ${p%"${p#??????}"}'		'1|/etc'
473df4d8b0SPeter Avalostestcase 'set -- ${p%"${p#???????}"}'		'1|/etc/'
483df4d8b0SPeter Avalostestcase 'set -- "${p%"${p#?}"}"'		'1|/'
493df4d8b0SPeter Avalostestcase 'set -- "${p%"${p#??????}"}"'		'1|/et[c]'
503df4d8b0SPeter Avalostestcase 'set -- "${p%"${p#???????}"}"'		'1|/et[c]/'
513df4d8b0SPeter Avalostestcase 'set -- ${p#"${p}"}'			'0|'
523df4d8b0SPeter Avalostestcase 'set -- "${p#"${p}"}"'			'1|'
533df4d8b0SPeter Avalostestcase 'set -- "${p#*\[}"'			'1|c]/'
543df4d8b0SPeter Avalos
553df4d8b0SPeter Avalostest "x$failures" = x
56