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