trim1.0 revision 302408
189837Skris# $FreeBSD: stable/11/bin/sh/tests/expansion/trim1.0 206143 2010-04-03 20:14:10Z jilles $
289837Skris
389837Skrise= q='?' a='*' t=texttext s='ast*que?non' p='/et[c]/' w='a b c' b='{{(#)}}'
489837Skrish='##'
589837Skrisfailures=''
689837Skrisok=''
789837Skris
889837Skristestcase() {
989837Skris	code="$1"
1089837Skris	expected="$2"
1189837Skris	oIFS="$IFS"
1289837Skris	eval "$code"
1389837Skris	IFS='|'
1489837Skris	result="$#|$*"
1589837Skris	IFS="$oIFS"
1689837Skris	if [ "x$result" = "x$expected" ]; then
1789837Skris		ok=x$ok
1889837Skris	else
1989837Skris		failures=x$failures
2089837Skris		echo "For $code, expected $expected actual $result"
2189837Skris	fi
2289837Skris}
2389837Skris
2489837Skristestcase 'set -- ${t%t}'			'1|texttex'
2589837Skristestcase 'set -- "${t%t}"'			'1|texttex'
2689837Skristestcase 'set -- ${t%e*}'			'1|textt'
2789837Skristestcase 'set -- "${t%e*}"'			'1|textt'
2889837Skristestcase 'set -- ${t%%e*}'			'1|t'
2989837Skristestcase 'set -- "${t%%e*}"'			'1|t'
3089837Skristestcase 'set -- ${t%%*}'			'0|'
3189837Skristestcase 'set -- "${t%%*}"'			'1|'
3289837Skristestcase 'set -- ${t#t}'			'1|exttext'
3389837Skristestcase 'set -- "${t#t}"'			'1|exttext'
3489837Skristestcase 'set -- ${t#*x}'			'1|ttext'
3589837Skristestcase 'set -- "${t#*x}"'			'1|ttext'
3689837Skristestcase 'set -- ${t##*x}'			'1|t'
3789837Skristestcase 'set -- "${t##*x}"'			'1|t'
3889837Skristestcase 'set -- ${t##*}'			'0|'
3989837Skristestcase 'set -- "${t##*}"'			'1|'
4089837Skristestcase 'set -- ${t%e$a}'			'1|textt'
4189837Skris
4289837Skrisset -f
4389837Skristestcase 'set -- ${s%[?]*}'			'1|ast*que'
4489837Skristestcase 'set -- "${s%[?]*}"'			'1|ast*que'
4589837Skristestcase 'set -- ${s%[*]*}'			'1|ast'
4689837Skristestcase 'set -- "${s%[*]*}"'			'1|ast'
4789837Skrisset +f
4889837Skris
4989837Skristestcase 'set -- $b'				'1|{{(#)}}'
5089837Skristestcase 'set -- ${b%\}}'			'1|{{(#)}'
5189837Skristestcase 'set -- ${b#{}'			'1|{(#)}}'
5289837Skristestcase 'set -- "${b#{}"'			'1|{(#)}}'
5389837Skris# Parentheses are special in ksh, check that they can be escaped
5489837Skristestcase 'set -- ${b%\)*}'			'1|{{(#'
5589837Skristestcase 'set -- ${b#{}'			'1|{(#)}}'
5689837Skristestcase 'set -- $h'				'1|##'
5789837Skristestcase 'set -- ${h#\#}'			'1|#'
5889837Skristestcase 'set -- ${h###}'			'1|#'
5989837Skristestcase 'set -- "${h###}"'			'1|#'
6089837Skristestcase 'set -- ${h%#}'			'1|#'
6189837Skristestcase 'set -- "${h%#}"'			'1|#'
6289837Skris
6389837Skrisset -f
6489837Skristestcase 'set -- ${s%"${s#?}"}'			'1|a'
6589837Skristestcase 'set -- ${s%"${s#????}"}'		'1|ast*'
6689837Skristestcase 'set -- ${s%"${s#????????}"}'		'1|ast*que?'
6789837Skristestcase 'set -- ${s#"${s%?}"}'			'1|n'
6889837Skristestcase 'set -- ${s#"${s%????}"}'		'1|?non'
6989837Skristestcase 'set -- ${s#"${s%????????}"}'		'1|*que?non'
7089837Skrisset +f
7189837Skristestcase 'set -- "${s%"${s#?}"}"'		'1|a'
7289837Skristestcase 'set -- "${s%"${s#????}"}"'		'1|ast*'
7389837Skristestcase 'set -- "${s%"${s#????????}"}"'	'1|ast*que?'
7489837Skristestcase 'set -- "${s#"${s%?}"}"'		'1|n'
7589837Skristestcase 'set -- "${s#"${s%????}"}"'		'1|?non'
7689837Skristestcase 'set -- "${s#"${s%????????}"}"'	'1|*que?non'
7789837Skristestcase 'set -- ${p#${p}}'			'1|/etc/'
7889837Skristestcase 'set -- "${p#${p}}"'			'1|/et[c]/'
7989837Skristestcase 'set -- ${p#*[[]}'			'1|c]/'
8089837Skristestcase 'set -- "${p#*[[]}"'			'1|c]/'
8189837Skristestcase 'set -- ${p#*\[}'			'1|c]/'
8289837Skristestcase 'set -- ${p#*"["}'			'1|c]/'
8389837Skristestcase 'set -- "${p#*"["}"'			'1|c]/'
8489837Skris
8589837Skristest "x$failures" = x
8689837Skris