diff options
author | Chet Ramey <chet.ramey@case.edu> | 2011-12-08 20:13:46 -0500 |
---|---|---|
committer | Chet Ramey <chet.ramey@case.edu> | 2011-12-08 20:13:46 -0500 |
commit | 3eb2d94ad75ee80120ed2879f56dc954ddfeb03d (patch) | |
tree | 9d760ed2f2be375cc39bd617de99a52e6fd9a600 /tests | |
parent | 9dd88db75708ed30ccf6288859e24eee19de5122 (diff) | |
download | bash-3eb2d94ad75ee80120ed2879f56dc954ddfeb03d.tar.gz |
commit bash-20090806 snapshot
Diffstat (limited to 'tests')
-rw-r--r-- | tests/assoc.right | 59 | ||||
-rw-r--r-- | tests/assoc.tests | 3 | ||||
-rw-r--r-- | tests/assoc6.sub | 146 |
3 files changed, 201 insertions, 7 deletions
diff --git a/tests/assoc.right b/tests/assoc.right index 2f15f413..5b3db932 100644 --- a/tests/assoc.right +++ b/tests/assoc.right @@ -13,11 +13,11 @@ declare -A BASH_CMDS='()' declare -Ai chaff='([one]="10" [zero]="5" )' declare -Ar waste='([version]="4.0-devel" [source]="./assoc.tests" [lineno]="28" [pid]="42134" )' declare -A wheat='([one]="a" [zero]="0" [two]="b" [three]="c" )' -declare -A chaff='([one]="10" [hello world]="flip" [zero]="5" )' +declare -A chaff='([one]="10" ["hello world"]="flip" [zero]="5" )' ./assoc.tests: line 38: unset: waste: cannot unset: readonly variable ./assoc.tests: line 39: chaff[*]: bad array subscript ./assoc.tests: line 40: [*]=12: invalid associative array key -declare -A chaff='([one]="a" [hello world]="flip" )' +declare -A chaff='([one]="a" ["hello world"]="flip" )' flip argv[1] = <a> argv[2] = <flip> @@ -34,11 +34,11 @@ argv[1] = <a flip multiple words> ./assoc.tests: line 57: declare: chaff: cannot destroy array variables in this way ./assoc.tests: line 59: chaff[*]: bad array subscript ./assoc.tests: line 60: [*]=12: invalid associative array key -declare -A wheat='([six]="6" [foo bar]="qux qix" )' +declare -A wheat='([six]="6" ["foo bar"]="qux qix" )' argv[1] = <qux> argv[2] = <qix> argv[1] = <qux qix> -declare -A wheat='([six]="6" [foo bar]="qux qix" )' +declare -A wheat='([six]="6" ["foo bar"]="qux qix" )' argv[1] = <2> argv[1] = <7> argv[1] = <qux> @@ -102,7 +102,7 @@ argv[4] = </usr/local/bin/qux -l> outside: outside declare -A BASH_ALIASES='()' declare -A BASH_CMDS='()' -declare -A afoo='([six]="six" [foo bar]="foo quux" )' +declare -A afoo='([six]="six" ["foo bar"]="foo quux" )' argv[1] = <inside:> argv[2] = <six> argv[3] = <foo quux> @@ -137,7 +137,52 @@ def def ./assoc5.sub: line 13: declare: `myarray[foo[bar]=bleh': not a valid identifier abc def bleh -myarray=([a]a]="abc" []]="def" [a]=test1;#a]="123" [foo]="bleh" ) +myarray=(["a]a"]="abc" ["]"]="def" ["a]=test1;#a"]="123" [foo]="bleh" ) 123 -myarray=([a]a]="abc" [a]=test2;#a]="def" []]="def" [a]=test1;#a]="123" [foo]="bleh" ) +myarray=(["a]a"]="abc" ["a]=test2;#a"]="def" ["]"]="def" ["a]=test1;#a"]="123" [foo]="bleh" ) +bar"bie +doll +declare -A foo='(["bar\"bie"]="doll" )' +bar"bie +doll +declare -A foo='(["bar\"bie"]="doll" )' +bar"bie +doll +declare -A foo='(["bar\"bie"]="doll" )' +bar"bie +doll +declare -A foo='(["bar\"bie"]="doll" )' +bar"bie +doll +declare -A foo='(["bar\"bie"]="doll" )' +bar'bie +doll +declare -A foo='(["bar'\''bie"]="doll" )' +bar'bie +doll +declare -A foo='(["bar'\''bie"]="doll" )' +bar'bie +doll +declare -A foo='(["bar'\''bie"]="doll" )' +bar'bie +doll +declare -A foo='(["bar'\''bie"]="doll" )' +bar'bie +doll +declare -A foo='(["bar'\''bie"]="doll" )' +bar$bie +doll +declare -A foo='(["bar\$bie"]="doll" )' +bar[bie +doll +declare -A foo='(["bar[bie"]="doll" )' +bar`bie +doll +declare -A foo='(["bar\`bie"]="doll" )' +bar\]bie +doll +declare -A foo='(["bar\\]bie"]="doll" )' +bar${foo}bie +doll +declare -A foo='(["bar\${foo}bie"]="doll" )' diff --git a/tests/assoc.tests b/tests/assoc.tests index 1aa3b2eb..38d29a4d 100644 --- a/tests/assoc.tests +++ b/tests/assoc.tests @@ -175,3 +175,6 @@ ${THIS_SH} ./assoc3.sub ${THIS_SH} ./assoc4.sub ${THIS_SH} ./assoc5.sub + +${THIS_SH} ./assoc6.sub + diff --git a/tests/assoc6.sub b/tests/assoc6.sub new file mode 100644 index 00000000..54112ee5 --- /dev/null +++ b/tests/assoc6.sub @@ -0,0 +1,146 @@ +declare -A foo + +foo=([bar\"bie]=doll) + +echo ${!foo[@]} +echo ${foo[@]} + +declare -p foo + +unset foo +declare -A foo=(["bar\"bie"]="doll") + +echo ${!foo[@]} +echo ${foo[@]} + +declare -p foo + +unset foo +declare -A foo + +foo=(["bar\"bie"]="doll") + +echo ${!foo[@]} +echo ${foo[@]} + +declare -p foo + +unset foo +declare -A foo + +foo["bar\"bie"]="doll" + +echo ${!foo[@]} +echo ${foo[@]} + +declare -p foo + +unset foo +declare -A foo + +foo[bar\"bie]="doll" + +echo ${!foo[@]} +echo ${foo[@]} + +declare -p foo + +unset foo +declare -A foo + +foo=([bar\'bie]=doll) + +echo ${!foo[@]} +echo ${foo[@]} + +declare -p foo + +unset foo +declare -A foo=(["bar'bie"]="doll") + +echo ${!foo[@]} +echo ${foo[@]} + +declare -p foo + +unset foo +declare -A foo + +foo=(["bar'bie"]="doll") + +echo ${!foo[@]} +echo ${foo[@]} + +declare -p foo + +unset foo +declare -A foo + +foo["bar'bie"]="doll" + +echo ${!foo[@]} +echo ${foo[@]} + +declare -p foo + +unset foo +declare -A foo + +foo[bar\'bie]="doll" + +echo ${!foo[@]} +echo ${foo[@]} + +declare -p foo + +unset foo +declare -A foo + +foo=([bar\$bie]=doll) + +echo ${!foo[@]} +echo ${foo[@]} + +declare -p foo + +unset foo +declare -A foo=(["bar[bie"]="doll") + +echo ${!foo[@]} +echo ${foo[@]} + +declare -p foo + +unset foo +declare -A foo + +foo=(["bar\`bie"]="doll") + +echo ${!foo[@]} +echo ${foo[@]} + +declare -p foo + +unset foo +declare -A foo + +# this doesn't work right without the backslash +foo["bar\]bie"]="doll" + +echo ${!foo[@]} +echo ${foo[@]} + +declare -p foo + +unset foo +declare -A foo + +foo[bar\${foo}bie]="doll" + +echo ${!foo[@]} +echo ${foo[@]} + +declare -p foo + +unset foo +declare -A foo |