1206143Sjilles# $FreeBSD: releng/11.0/bin/sh/tests/expansion/trim1.0 206143 2010-04-03 20:14:10Z jilles $ 2206143Sjilles 3206143Sjillese= q='?' a='*' t=texttext s='ast*que?non' p='/et[c]/' w='a b c' b='{{(#)}}' 4206143Sjillesh='##' 5206143Sjillesfailures='' 6206143Sjillesok='' 7206143Sjilles 8206143Sjillestestcase() { 9206143Sjilles code="$1" 10206143Sjilles expected="$2" 11206143Sjilles oIFS="$IFS" 12206143Sjilles eval "$code" 13206143Sjilles IFS='|' 14206143Sjilles result="$#|$*" 15206143Sjilles IFS="$oIFS" 16206143Sjilles if [ "x$result" = "x$expected" ]; then 17206143Sjilles ok=x$ok 18206143Sjilles else 19206143Sjilles failures=x$failures 20206143Sjilles echo "For $code, expected $expected actual $result" 21206143Sjilles fi 22206143Sjilles} 23206143Sjilles 24206143Sjillestestcase 'set -- ${t%t}' '1|texttex' 25206143Sjillestestcase 'set -- "${t%t}"' '1|texttex' 26206143Sjillestestcase 'set -- ${t%e*}' '1|textt' 27206143Sjillestestcase 'set -- "${t%e*}"' '1|textt' 28206143Sjillestestcase 'set -- ${t%%e*}' '1|t' 29206143Sjillestestcase 'set -- "${t%%e*}"' '1|t' 30206143Sjillestestcase 'set -- ${t%%*}' '0|' 31206143Sjillestestcase 'set -- "${t%%*}"' '1|' 32206143Sjillestestcase 'set -- ${t#t}' '1|exttext' 33206143Sjillestestcase 'set -- "${t#t}"' '1|exttext' 34206143Sjillestestcase 'set -- ${t#*x}' '1|ttext' 35206143Sjillestestcase 'set -- "${t#*x}"' '1|ttext' 36206143Sjillestestcase 'set -- ${t##*x}' '1|t' 37206143Sjillestestcase 'set -- "${t##*x}"' '1|t' 38206143Sjillestestcase 'set -- ${t##*}' '0|' 39206143Sjillestestcase 'set -- "${t##*}"' '1|' 40206143Sjillestestcase 'set -- ${t%e$a}' '1|textt' 41206143Sjilles 42206143Sjillesset -f 43206143Sjillestestcase 'set -- ${s%[?]*}' '1|ast*que' 44206143Sjillestestcase 'set -- "${s%[?]*}"' '1|ast*que' 45206143Sjillestestcase 'set -- ${s%[*]*}' '1|ast' 46206143Sjillestestcase 'set -- "${s%[*]*}"' '1|ast' 47206143Sjillesset +f 48206143Sjilles 49206143Sjillestestcase 'set -- $b' '1|{{(#)}}' 50206143Sjillestestcase 'set -- ${b%\}}' '1|{{(#)}' 51206143Sjillestestcase 'set -- ${b#{}' '1|{(#)}}' 52206143Sjillestestcase 'set -- "${b#{}"' '1|{(#)}}' 53206143Sjilles# Parentheses are special in ksh, check that they can be escaped 54206143Sjillestestcase 'set -- ${b%\)*}' '1|{{(#' 55206143Sjillestestcase 'set -- ${b#{}' '1|{(#)}}' 56206143Sjillestestcase 'set -- $h' '1|##' 57206143Sjillestestcase 'set -- ${h#\#}' '1|#' 58206143Sjillestestcase 'set -- ${h###}' '1|#' 59206143Sjillestestcase 'set -- "${h###}"' '1|#' 60206143Sjillestestcase 'set -- ${h%#}' '1|#' 61206143Sjillestestcase 'set -- "${h%#}"' '1|#' 62206143Sjilles 63206143Sjillesset -f 64206143Sjillestestcase 'set -- ${s%"${s#?}"}' '1|a' 65206143Sjillestestcase 'set -- ${s%"${s#????}"}' '1|ast*' 66206143Sjillestestcase 'set -- ${s%"${s#????????}"}' '1|ast*que?' 67206143Sjillestestcase 'set -- ${s#"${s%?}"}' '1|n' 68206143Sjillestestcase 'set -- ${s#"${s%????}"}' '1|?non' 69206143Sjillestestcase 'set -- ${s#"${s%????????}"}' '1|*que?non' 70206143Sjillesset +f 71206143Sjillestestcase 'set -- "${s%"${s#?}"}"' '1|a' 72206143Sjillestestcase 'set -- "${s%"${s#????}"}"' '1|ast*' 73206143Sjillestestcase 'set -- "${s%"${s#????????}"}"' '1|ast*que?' 74206143Sjillestestcase 'set -- "${s#"${s%?}"}"' '1|n' 75206143Sjillestestcase 'set -- "${s#"${s%????}"}"' '1|?non' 76206143Sjillestestcase 'set -- "${s#"${s%????????}"}"' '1|*que?non' 77206143Sjillestestcase 'set -- ${p#${p}}' '1|/etc/' 78206143Sjillestestcase 'set -- "${p#${p}}"' '1|/et[c]/' 79206143Sjillestestcase 'set -- ${p#*[[]}' '1|c]/' 80206143Sjillestestcase 'set -- "${p#*[[]}"' '1|c]/' 81206143Sjillestestcase 'set -- ${p#*\[}' '1|c]/' 82206143Sjillestestcase 'set -- ${p#*"["}' '1|c]/' 83206143Sjillestestcase 'set -- "${p#*"["}"' '1|c]/' 84206143Sjilles 85206143Sjillestest "x$failures" = x 86