1206150Sjilles# $FreeBSD: releng/11.0/bin/sh/tests/expansion/tilde2.0 206150 2010-04-03 22:04:44Z jilles $ 2206150Sjilles 3206150SjillesHOME=/tmp 4206150Sjillesroothome=~root 5206150Sjillesif [ "$roothome" = "~root" ]; then 6206150Sjilles echo "~root is not expanded!" 7206150Sjilles exit 2 8206150Sjillesfi 9206150Sjilles 10206150Sjillestestcase() { 11206150Sjilles code="$1" 12206150Sjilles expected="$2" 13206150Sjilles oIFS="$IFS" 14206150Sjilles eval "$code" 15206150Sjilles IFS='|' 16206150Sjilles result="$#|$*" 17206150Sjilles IFS="$oIFS" 18206150Sjilles if [ "x$result" = "x$expected" ]; then 19206150Sjilles ok=x$ok 20206150Sjilles else 21206150Sjilles failures=x$failures 22206150Sjilles echo "For $code, expected $expected actual $result" 23206150Sjilles fi 24206150Sjilles} 25206150Sjilles 26206150Sjillestestcase 'set -- ${$+~}' '1|/tmp' 27206150Sjillestestcase 'set -- ${$+~/}' '1|/tmp/' 28206150Sjillestestcase 'set -- ${$+~/foo}' '1|/tmp/foo' 29206150Sjillestestcase 'set -- ${$+x~}' '1|x~' 30206150Sjillestestcase 'set -- ${$+~root}' "1|$roothome" 31206150Sjillestestcase 'set -- ${$+"~"}' '1|~' 32206150Sjillestestcase 'set -- ${$+"~/"}' '1|~/' 33206150Sjillestestcase 'set -- ${$+"~/foo"}' '1|~/foo' 34206150Sjillestestcase 'set -- ${$+"x~"}' '1|x~' 35206150Sjillestestcase 'set -- ${$+"~root"}' "1|~root" 36206150Sjillestestcase 'set -- "${$+~}"' '1|~' 37206150Sjillestestcase 'set -- "${$+~/}"' '1|~/' 38206150Sjillestestcase 'set -- "${$+~/foo}"' '1|~/foo' 39206150Sjillestestcase 'set -- "${$+x~}"' '1|x~' 40206150Sjillestestcase 'set -- "${$+~root}"' "1|~root" 41206150Sjillestestcase 'set -- ${HOME#~}' '0|' 42206150Sjillesh=~ 43206150Sjillestestcase 'set -- "$h"' '1|/tmp' 44206150Sjillesf=~/foo 45206150Sjillestestcase 'set -- "$f"' '1|/tmp/foo' 46206150Sjillestestcase 'set -- ${f#~}' '1|/foo' 47206150Sjillestestcase 'set -- ${f#~/}' '1|foo' 48206150Sjilles 49206150SjillesooIFS=$IFS 50206150SjillesIFS=m 51206150Sjillestestcase 'set -- ${$+~}' '1|/tmp' 52206150Sjillestestcase 'set -- ${$+~/foo}' '1|/tmp/foo' 53206150Sjillestestcase 'set -- ${$+$h}' '2|/t|p' 54206150Sjillestestcase 'set -- ${HOME#~}' '0|' 55206150SjillesIFS=$ooIFS 56206150Sjilles 57206150Sjillest=\~ 58206150Sjillestestcase 'set -- ${$+$t}' '1|~' 59206150Sjillesr=$(cat <<EOF 60206150Sjilles${HOME#~} 61206150SjillesEOF 62206150Sjilles) 63206150Sjillestestcase 'set -- $r' '0|' 64206150Sjillesr=$(cat <<EOF 65206150Sjilles${HOME#'~'} 66206150SjillesEOF 67206150Sjilles) 68206150Sjillestestcase 'set -- $r' '1|/tmp' 69206150Sjillesr=$(cat <<EOF 70206150Sjilles${t#'~'} 71206150SjillesEOF 72206150Sjilles) 73206150Sjillestestcase 'set -- $r' '0|' 74206150Sjillesr=$(cat <<EOF 75206150Sjilles${roothome#~root} 76206150SjillesEOF 77206150Sjilles) 78206150Sjillestestcase 'set -- $r' '0|' 79206150Sjillesr=$(cat <<EOF 80206150Sjilles${f#~} 81206150SjillesEOF 82206150Sjilles) 83206150Sjillestestcase 'set -- $r' '1|/foo' 84206150Sjillesr=$(cat <<EOF 85206150Sjilles${f#~/} 86206150SjillesEOF 87206150Sjilles) 88206150Sjillestestcase 'set -- $r' '1|foo' 89206150Sjilles 90206150Sjillestest "x$failures" = x 91