xref: /freebsd/bin/sh/tests/expansion/trim3.0 (revision d0b2dbfa)
113de33a5SJulio Merino
213de33a5SJulio Merinoe= q='?' a='*' t=texttext s='ast*que?non' p='/et[c]/' w='a b c' b='{{(#)}}'
313de33a5SJulio Merinoh='##' c='\\\\'
413de33a5SJulio Merinofailures=''
513de33a5SJulio Merinook=''
613de33a5SJulio Merino
713de33a5SJulio Merinotestcase() {
813de33a5SJulio Merino	code="$1"
913de33a5SJulio Merino	expected="$2"
1013de33a5SJulio Merino	oIFS="$IFS"
1113de33a5SJulio Merino	eval "$code"
1213de33a5SJulio Merino	IFS='|'
1313de33a5SJulio Merino	result="$#|$*"
1413de33a5SJulio Merino	IFS="$oIFS"
1513de33a5SJulio Merino	if [ "x$result" = "x$expected" ]; then
1613de33a5SJulio Merino		ok=x$ok
1713de33a5SJulio Merino	else
1813de33a5SJulio Merino		failures=x$failures
1913de33a5SJulio Merino		echo "For $code, expected $expected actual $result"
2013de33a5SJulio Merino	fi
2113de33a5SJulio Merino}
2213de33a5SJulio Merino
2313de33a5SJulio Merino# This doesn't make much sense, but it fails in dash so I'm adding it here:
2413de33a5SJulio Merinotestcase 'set -- "${w%${w#???}}"'		'1|a b'
2513de33a5SJulio Merino
2613de33a5SJulio Merinotestcase 'set -- ${p#/et[}'			'1|c]/'
2713de33a5SJulio Merinotestcase 'set -- "${p#/et[}"'			'1|c]/'
2813de33a5SJulio Merinotestcase 'set -- "${p%${p#????}}"'		'1|/et['
2913de33a5SJulio Merino
3013de33a5SJulio Merinotestcase 'set -- ${b%'\'}\''}'			'1|{{(#)}'
3113de33a5SJulio Merino
3213de33a5SJulio Merinotestcase 'set -- ${c#\\}'			'1|\\\'
3313de33a5SJulio Merinotestcase 'set -- ${c#\\\\}'			'1|\\'
3413de33a5SJulio Merinotestcase 'set -- ${c#\\\\\\}'			'1|\'
3513de33a5SJulio Merinotestcase 'set -- ${c#\\\\\\\\}'			'0|'
3613de33a5SJulio Merinotestcase 'set -- "${c#\\}"'			'1|\\\'
3713de33a5SJulio Merinotestcase 'set -- "${c#\\\\}"'			'1|\\'
3813de33a5SJulio Merinotestcase 'set -- "${c#\\\\\\}"'			'1|\'
3913de33a5SJulio Merinotestcase 'set -- "${c#\\\\\\\\}"'		'1|'
4013de33a5SJulio Merinotestcase 'set -- "${c#"$c"}"'			'1|'
4113de33a5SJulio Merinotestcase 'set -- ${c#"$c"}'			'0|'
4213de33a5SJulio Merinotestcase 'set -- "${c%"$c"}"'			'1|'
4313de33a5SJulio Merinotestcase 'set -- ${c%"$c"}'			'0|'
4413de33a5SJulio Merino
4513de33a5SJulio Merinotest "x$failures" = x
46