summaryrefslogtreecommitdiff
path: root/tests/exp-tests
diff options
context:
space:
mode:
authorStephen Hemminger <stephen.hemminger@vyatta.com>2010-10-11 14:49:26 -0700
committerStephen Hemminger <stephen.hemminger@vyatta.com>2010-10-11 15:19:40 -0700
commit011c1d1c0766c65517ebd495465c99e86edb63ec (patch)
tree30d8f6a13235af90897c3223554871ef52225462 /tests/exp-tests
parent40cfaccf7b178b6239b5cd0013ef80b7ff8e503e (diff)
downloadvyatta-bash-011c1d1c0766c65517ebd495465c99e86edb63ec.tar.gz
vyatta-bash-011c1d1c0766c65517ebd495465c99e86edb63ec.zip
Update to bash-4.1
Diffstat (limited to 'tests/exp-tests')
-rw-r--r--tests/exp-tests380
1 files changed, 0 insertions, 380 deletions
diff --git a/tests/exp-tests b/tests/exp-tests
deleted file mode 100644
index 884b5a6..0000000
--- a/tests/exp-tests
+++ /dev/null
@@ -1,380 +0,0 @@
-#
-# A suite of tests for bash word expansions
-#
-# This tests parameter and variable expansion, with an empahsis on
-# proper quoting behavior.
-#
-# Chet Ramey
-
-#
-# If you comment out the body of this function, you can do a diff against
-# `expansion-tests.right' to see if the shell is behaving correctly
-#
-expect()
-{
- echo expect "$@"
-}
-
-# Test the substitution quoting characters (CTLESC and CTLNUL) in different
-# combinations
-
-expect "<^A>"
-recho `echo ''`
-expect "<^A>"
-recho `echo ""`
-expect "<^B>"
-recho `echo ''`
-expect "<^B>"
-recho `echo ""`
-expect "<^A>"
-recho `echo `
-expect "<^B>"
-recho `echo `
-
-# Test null strings without variable expansion
-expect "<abcdefgh>"
-recho abcd""efgh
-expect "<abcdefgh>"
-recho abcd''efgh
-expect "<abcdefgh>"
-recho ""abcdefgh
-expect "<abcdefgh>"
-recho ''abcdefgh
-expect "<abcd>"
-recho abcd""
-expect "<abcd>"
-recho abcd''
-
-# Test the quirky behavior of $@ in ""
-expect nothing
-recho "$@"
-expect "< >"
-recho " $@"
-expect "<-->"
-recho "-${@}-"
-
-# Test null strings with variable expansion that fails
-expect '<>'
-recho $xxx""
-expect '<>'
-recho ""$xxx
-expect '<>'
-recho $xxx''
-expect '<>'
-recho ''$xxx
-expect '<>'
-recho $xxx""$yyy
-expect '<>'
-recho $xxx''$yyy
-
-# Test null strings with variable expansion that succeeds
-xxx=abc
-yyy=def
-
-expect '<abc>'
-recho $xxx""
-expect '<abc>'
-recho ""$xxx
-expect '<abc>'
-recho $xxx''
-expect '<abc>'
-recho ''$xxx
-expect '<abcdef>'
-recho $xxx""$yyy
-expect '<abcdef>'
-recho $xxx''$yyy
-
-unset xxx yyy
-
-# Test the unquoted special quoting characters
-expect "<^A>"
-recho 
-expect "<^B>"
-recho 
-expect "<^A>"
-recho ""
-expect "<^B>"
-recho ""
-expect "<^A>"
-recho ''
-expect "<^B>"
-recho ''
-
-# Test expansion of a variable that is unset
-expect nothing
-recho $xxx
-expect '<>'
-recho "$xxx"
-
-expect nothing
-recho "$xxx${@}"
-
-# Test empty string expansion
-expect '<>'
-recho ""
-expect '<>'
-recho ''
-
-# Test command substitution with (disabled) history substitution
-expect '<Hello World!>'
-# set +H
-recho "`echo \"Hello world!\"`"
-
-# Test some shell special characters
-expect '<`>'
-recho "\`"
-expect '<">'
-recho "\""
-expect '<\^A>'
-recho "\"
-
-expect '<\$>'
-recho "\\$"
-
-expect '<\\>'
-recho "\\\\"
-
-# This should give argv[1] = a argv[2] = b
-expect '<a> <b>'
-FOO=`echo 'a b' | tr ' ' '\012'`
-recho $FOO
-
-# This should give argv[1] = ^A argv[2] = ^B
-expect '<^A> <^B>'
-FOO=`echo ' ' | tr ' ' '\012'`
-recho $FOO
-
-# Test quoted and unquoted globbing characters
-expect '<**>'
-recho "*"*
-
-expect '<\.\./*/>'
-recho "\.\./*/"
-
-# Test patterns that come up when the shell quotes funny character
-# combinations
-expect '<^A^B^A^B>'
-recho ''
-expect '<^A^A>'
-recho ''
-expect '<^A^B>'
-recho ''
-expect '<^A^A^B>'
-recho ''
-
-# More tests of "$@"
-set abc def ghi jkl
-expect '< abc> <def> <ghi> <jkl >'
-recho " $@ "
-expect '< abc> <def> <ghi> <jkl >'
-recho "${1+ $@ }"
-
-set abc def ghi jkl
-expect '<--abc> <def> <ghi> <jkl-->'
-recho "--$@--"
-
-set "a b" cd ef gh
-expect '<a b> <cd> <ef> <gh>'
-recho ${1+"$@"}
-expect '<a b> <cd> <ef> <gh>'
-recho ${foo:-"$@"}
-expect '<a b> <cd> <ef> <gh>'
-recho "${@}"
-
-expect '< >'
-recho " "
-expect '< - >'
-recho " - "
-
-# Test combinations of different types of quoting in a fully-quoted string
-# (so the WHOLLY_QUOTED tests fail and it doesn't get set)
-expect '</^root:/{s/^[^:]*:[^:]*:\([^:]*\).*$/\1/>'
-recho "/^root:/{s/^[^:]*:[^:]*:\([^:]*\).*"'$'"/\1/"
-
-# Test the various Posix parameter expansions
-
-expect '<foo bar>'
-recho "${x:-$(echo "foo bar")}"
-expect '<foo> <bar>'
-recho ${x:-$(echo "foo bar")}
-
-unset X
-expect '<abc>'
-recho ${X:=abc}
-expect '<abc>'
-recho $X
-
-set a b c
-expect '<posix>'
-recho ${3:+posix}
-
-POSIX=/usr/posix
-expect '<10>'
-recho ${#POSIX}
-
-# remove shortest trailing match
-x=file.c
-expect '<file.o>'
-recho ${x%.c}.o
-
-# remove longest trailing match
-x=posix/src/std
-expect '<posix>'
-recho ${x%%/*}
-
-# remove shortest leading pattern
-x=$HOME/src/cmd
-expect '</src/cmd>'
-recho ${x#$HOME}
-
-# remove longest leading pattern
-x=/one/two/three
-expect '<three>'
-recho ${x##*/}
-
-# pattern removal of patterns that don't match
-z=abcdef
-
-expect '<abcdef>'
-recho ${z#xyz}
-expect '<abcdef>'
-recho ${z##xyz}
-
-expect '<abcdef>'
-recho ${z%xyz}
-expect '<abcdef>'
-recho ${z%%xyz}
-
-# Command substitution and the quirky differences between `` and $()
-
-expect '<\$x>'
-recho '\$x'
-
-expect '<$x>'
-recho `echo '\$x'`
-
-expect '<\$x>'
-recho $(echo '\$x')
-
-# The difference between $* "$*" and "$@"
-
-set "abc" "def ghi" "jkl"
-
-expect '<abc> <def> <ghi> <jkl>'
-recho $*
-
-expect '<abc def ghi jkl>'
-recho "$*"
-
-OIFS="$IFS"
-IFS=":$IFS"
-
-# The special behavior of "$*", using the first character of $IFS as separator
-expect '<abc:def ghi:jkl>'
-recho "$*"
-
-IFS="$OIFS"
-
-expect '<abc> <def ghi> <jkl>'
-recho "$@"
-
-expect '<xxabc> <def ghi> <jklyy>'
-recho "xx$@yy"
-
-expect '<abc> <def ghi> <jklabc> <def ghi> <jkl>'
-recho "$@$@"
-
-foo=abc
-bar=def
-
-expect '<abcdef>'
-recho "$foo""$bar"
-
-unset foo
-set $foo bar '' xyz "$foo" abc
-
-expect '<bar> <> <xyz> <> <abc>'
-recho "$@"
-
-# More tests of quoting and deferred evaluation
-
-foo=10 x=foo
-y='$'$x
-expect '<$foo>'
-recho $y
-eval y='$'$x
-expect '<10>'
-recho $y
-
-# case statements
-
-NL='
-'
-x='ab
-cd'
-
-expect '<newline expected>'
-case "$x" in
-*$NL*) recho "newline expected" ;;
-esac
-
-expect '<got it>'
-case \? in
-*"?"*) recho "got it" ;;
-esac
-
-expect '<got it>'
-case \? in
-*\?*) recho "got it" ;;
-esac
-
-set one two three four five
-expect '<one> <three> <five>'
-recho $1 $3 ${5} $8 ${9}
-
-# length tests on positional parameters and some special parameters
-
-expect '<5> <5>'
-recho $# ${#}
-expect '<3>'
-recho ${#1}
-expect '<1>'
-recho ${##}
-expect '<1>'
-recho ${#?}
-expect '<5>'
-recho ${#@}
-expect '<5>'
-recho ${#*}
-expect '<5>'
-recho "${#@}"
-expect '<5>'
-recho "${#*}"
-
-expect '<42>'
-recho $((28 + 14))
-expect '<26>'
-recho $[ 13 * 2 ]
-
-expect '<\>'
-recho `echo \\\\`
-
-expect '<~>'
-recho '~'
-
-expect nothing
-recho $!
-expect nothing
-recho ${!}
-
-# test word splitting of assignment statements not preceding a command
-a="a b c d e"
-declare b=$a
-expect '<a> <b> <c> <d> <e>'
-recho $b
-
-a="a?b?c"
-
-echo ${a//\\?/ }
-
-echo ${a//\?/ }