1*3e3895bfSKrzysztof Piecuch# $FreeBSD: head/bin/sh/tests/expansion/trim1.0 206143 2010-04-03 20:14:10Z 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 Avalostestcase 'set -- ${t%t}' '1|texttex' 253df4d8b0SPeter Avalostestcase 'set -- "${t%t}"' '1|texttex' 263df4d8b0SPeter Avalostestcase 'set -- ${t%e*}' '1|textt' 273df4d8b0SPeter Avalostestcase 'set -- "${t%e*}"' '1|textt' 283df4d8b0SPeter Avalostestcase 'set -- ${t%%e*}' '1|t' 293df4d8b0SPeter Avalostestcase 'set -- "${t%%e*}"' '1|t' 303df4d8b0SPeter Avalostestcase 'set -- ${t%%*}' '0|' 313df4d8b0SPeter Avalostestcase 'set -- "${t%%*}"' '1|' 323df4d8b0SPeter Avalostestcase 'set -- ${t#t}' '1|exttext' 333df4d8b0SPeter Avalostestcase 'set -- "${t#t}"' '1|exttext' 343df4d8b0SPeter Avalostestcase 'set -- ${t#*x}' '1|ttext' 353df4d8b0SPeter Avalostestcase 'set -- "${t#*x}"' '1|ttext' 363df4d8b0SPeter Avalostestcase 'set -- ${t##*x}' '1|t' 373df4d8b0SPeter Avalostestcase 'set -- "${t##*x}"' '1|t' 383df4d8b0SPeter Avalostestcase 'set -- ${t##*}' '0|' 393df4d8b0SPeter Avalostestcase 'set -- "${t##*}"' '1|' 403df4d8b0SPeter Avalostestcase 'set -- ${t%e$a}' '1|textt' 413df4d8b0SPeter Avalos 423df4d8b0SPeter Avalosset -f 433df4d8b0SPeter Avalostestcase 'set -- ${s%[?]*}' '1|ast*que' 443df4d8b0SPeter Avalostestcase 'set -- "${s%[?]*}"' '1|ast*que' 453df4d8b0SPeter Avalostestcase 'set -- ${s%[*]*}' '1|ast' 463df4d8b0SPeter Avalostestcase 'set -- "${s%[*]*}"' '1|ast' 473df4d8b0SPeter Avalosset +f 483df4d8b0SPeter Avalos 493df4d8b0SPeter Avalostestcase 'set -- $b' '1|{{(#)}}' 503df4d8b0SPeter Avalostestcase 'set -- ${b%\}}' '1|{{(#)}' 513df4d8b0SPeter Avalostestcase 'set -- ${b#{}' '1|{(#)}}' 523df4d8b0SPeter Avalostestcase 'set -- "${b#{}"' '1|{(#)}}' 533df4d8b0SPeter Avalos# Parentheses are special in ksh, check that they can be escaped 543df4d8b0SPeter Avalostestcase 'set -- ${b%\)*}' '1|{{(#' 553df4d8b0SPeter Avalostestcase 'set -- ${b#{}' '1|{(#)}}' 563df4d8b0SPeter Avalostestcase 'set -- $h' '1|##' 573df4d8b0SPeter Avalostestcase 'set -- ${h#\#}' '1|#' 583df4d8b0SPeter Avalostestcase 'set -- ${h###}' '1|#' 593df4d8b0SPeter Avalostestcase 'set -- "${h###}"' '1|#' 603df4d8b0SPeter Avalostestcase 'set -- ${h%#}' '1|#' 613df4d8b0SPeter Avalostestcase 'set -- "${h%#}"' '1|#' 623df4d8b0SPeter Avalos 633df4d8b0SPeter Avalosset -f 643df4d8b0SPeter Avalostestcase 'set -- ${s%"${s#?}"}' '1|a' 653df4d8b0SPeter Avalostestcase 'set -- ${s%"${s#????}"}' '1|ast*' 663df4d8b0SPeter Avalostestcase 'set -- ${s%"${s#????????}"}' '1|ast*que?' 673df4d8b0SPeter Avalostestcase 'set -- ${s#"${s%?}"}' '1|n' 683df4d8b0SPeter Avalostestcase 'set -- ${s#"${s%????}"}' '1|?non' 693df4d8b0SPeter Avalostestcase 'set -- ${s#"${s%????????}"}' '1|*que?non' 703df4d8b0SPeter Avalosset +f 713df4d8b0SPeter Avalostestcase 'set -- "${s%"${s#?}"}"' '1|a' 723df4d8b0SPeter Avalostestcase 'set -- "${s%"${s#????}"}"' '1|ast*' 733df4d8b0SPeter Avalostestcase 'set -- "${s%"${s#????????}"}"' '1|ast*que?' 743df4d8b0SPeter Avalostestcase 'set -- "${s#"${s%?}"}"' '1|n' 753df4d8b0SPeter Avalostestcase 'set -- "${s#"${s%????}"}"' '1|?non' 763df4d8b0SPeter Avalostestcase 'set -- "${s#"${s%????????}"}"' '1|*que?non' 773df4d8b0SPeter Avalostestcase 'set -- ${p#${p}}' '1|/etc/' 783df4d8b0SPeter Avalostestcase 'set -- "${p#${p}}"' '1|/et[c]/' 793df4d8b0SPeter Avalostestcase 'set -- ${p#*[[]}' '1|c]/' 803df4d8b0SPeter Avalostestcase 'set -- "${p#*[[]}"' '1|c]/' 813df4d8b0SPeter Avalostestcase 'set -- ${p#*\[}' '1|c]/' 823df4d8b0SPeter Avalostestcase 'set -- ${p#*"["}' '1|c]/' 833df4d8b0SPeter Avalostestcase 'set -- "${p#*"["}"' '1|c]/' 843df4d8b0SPeter Avalos 853df4d8b0SPeter Avalostest "x$failures" = x 86