1*3e3895bfSKrzysztof Piecuch# $FreeBSD: head/bin/sh/tests/expansion/assign1.0 204842 2010-03-07 18:43:29Z 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 'v=; set -- ${v=a b} $v' '0|' 253df4d8b0SPeter Avalostestcase 'unset v; set -- ${v=a b} $v' '4|a|b|a|b' 263df4d8b0SPeter Avalostestcase 'v=; set -- ${v:=a b} $v' '4|a|b|a|b' 273df4d8b0SPeter Avalostestcase 'v=; set -- "${v:=a b}" "$v"' '2|a b|a b' 283df4d8b0SPeter Avalos# expect sensible behaviour, although it disagrees with POSIX 293df4d8b0SPeter Avalostestcase 'v=; set -- ${v:=a\ b} $v' '4|a|b|a|b' 303df4d8b0SPeter Avalostestcase 'v=; set -- ${v:=$p} $v' '2|/etc/|/etc/' 313df4d8b0SPeter Avalostestcase 'v=; set -- "${v:=$p}" "$v"' '2|/et[c]/|/et[c]/' 323df4d8b0SPeter Avalostestcase 'v=; set -- "${v:=a\ b}" "$v"' '2|a\ b|a\ b' 333df4d8b0SPeter Avalostestcase 'v=; set -- ${v:="$p"} $v' '2|/etc/|/etc/' 343df4d8b0SPeter Avalos# whether $p is quoted or not shouldn't really matter 353df4d8b0SPeter Avalostestcase 'v=; set -- "${v:="$p"}" "$v"' '2|/et[c]/|/et[c]/' 363df4d8b0SPeter Avalos 373df4d8b0SPeter Avalostest "x$failures" = x 38