diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-05 18:33:23 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-05 18:33:23 +0000 |
commit | 1d5cace9db9aef76f26b2d7ba54bbb76443b00b2 (patch) | |
tree | 314a15dd1aa103da13bdc83ba1d2105a290bc5ba /tests/nameref.right | |
parent | Initial commit. (diff) | |
download | bash-upstream/5.0.tar.xz bash-upstream/5.0.zip |
Adding upstream version 5.0.upstream/5.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | tests/nameref.right | 485 |
1 files changed, 485 insertions, 0 deletions
diff --git a/tests/nameref.right b/tests/nameref.right new file mode 100644 index 0000000..698002e --- /dev/null +++ b/tests/nameref.right @@ -0,0 +1,485 @@ +one +two +three +declare -n fee="flip" +declare -n foo="bar" +turning off nameref attribute on foo +bar +after +n foo bar = other +one +two +one +expect <one> +argv[1] = <one> +expect <two> +argv[1] = <two> +expect <one> +one +expect <one> +one +expect <one> +argv[1] = <one> +changevar: expect <two> +argv[1] = <two> +expect <two> +argv[1] = <two> +changevar: expect <three four five> +argv[1] = <three four five> +expect <three four five> +argv[1] = <three four five> +./nameref.tests: line 93: foo: readonly variable +./nameref.tests: line 94: foo: readonly variable +one +one +./nameref.tests: line 106: foo: readonly variable +./nameref.tests: line 103: foo: readonly variable +one +abxde +abxde +one +bar + +./nameref2.sub: line 5: foo: readonly variable + +expect <unset> +argv[1] = <unset> +expect <unset> +argv[1] = <unset> +expect <bar> +argv[1] = <bar> +expect <unset> +./nameref3.sub: line 16: foo: invalid indirect expansion +./nameref3.sub: line 21: unset: bar: cannot unset: readonly variable +expect <two> +two +expect <two> +two +three +unset +four +0 +expect <a b> +a b +expect <foo> +foo +1 3 5 7 9 +9 +1 3 42 7 9 +1 3 42 7 9 +9 +1 3 44 7 9 +unset +expect <a b c d e> +argv[1] = <a b c d e> +expect <zero> <one> <seven> <three> <four> +argv[1] = <zero> +argv[2] = <one> +argv[3] = <seven> +argv[4] = <three> +argv[5] = <four> +16 +expect <4> +4 +expect <4> +4 +expect <4> +4 +expect <one> +one +expect <one> +one +expect <one> +one +expect <four> +four +errors = 0 +1 +2 +v1: 1 +v2: 2 +ref -> first, value: I am first +ref -> second, value: I am in the middle +ref -> third, value: I am last +final state: ref -> third, value: I am last +ref -> one, value: 1 +ref -> two, value: 2 +ref -> three, value: 3 +final state: ref -> three, value: 3 +./nameref5.sub: line 43: unset: three: cannot unset: readonly variable +ref -> one, value: 1 +ref -> two, value: 2 +ref -> three, value: 3 +final state: ref -> three, value: 3 +./nameref6.sub: line 2: typeset: x: nameref variable self references not allowed +./nameref6.sub: line 5: typeset: x[3]: reference variable cannot be an array +./nameref6.sub: line 12: typeset: x: reference variable cannot be an array +the -- 1 +42 -- 0 +y -- 0 +2 -- 0 +2 -- 0 +y -- 0 +bar +unset +./nameref8.sub: line 3: typeset: warning: v: circular name reference +./nameref8.sub: line 3: warning: v: circular name reference +./nameref8.sub: line 5: warning: v: circular name reference +inside +inside: two +outside: +./nameref8.sub: line 29: typeset: warning: x: circular name reference +./nameref8.sub: line 29: warning: x: circular name reference +./nameref8.sub: line 31: warning: x: circular name reference +foo +./nameref8.sub: line 38: typeset: warning: v: circular name reference +./nameref8.sub: line 38: warning: v: circular name reference +./nameref8.sub: line 38: warning: v: circular name reference +local +./nameref8.sub: line 47: typeset: v: nameref variable self references not allowed +./nameref8.sub: line 54: warning: x: circular name reference +./nameref8.sub: line 55: warning: x: circular name reference +x = +idx2 +idX2 +idx2 +idX2 +declare -n foo="x[\$zero]" +42 +declare -a x=([0]="4") +declare -n foo="x[\$(echo 0)]" +4 +comsub +x[i=0] +comsub +4 +comsub +4 +comsub +4 +declare -n foo="somevariable" +./nameref10.sub: line 38: typeset: somevariable: not found +foo = +declare -n foo="somevariable" +declare -A somevariable=([jug]="brown" ) +declare -n foo="somevariable" +declare -A somevariable=([jug]="brown" ) +declare -n foo="somevariable" +./nameref10.sub: line 49: typeset: somevariable: not found +./nameref10.sub: line 51: typeset: foo: not found +./nameref10.sub: line 51: typeset: somevariable: not found +declare -n foo="bar" +./nameref10.sub: line 55: typeset: bar: not found +declare -n foo="bar" +./nameref10.sub: line 57: typeset: bar: not found +declare -n foo="bar" +declare -i bar="8" +8 +declare -n foo="bar" +./nameref10.sub: line 64: typeset: bar: not found +./nameref11.sub: line 1: declare: `/': invalid variable name for name reference +./nameref11.sub: line 2: declare: `/': invalid variable name for name reference +./nameref11.sub: line 3: `/': not a valid identifier +./nameref11.sub: line 4: declare: `/': not a valid identifier +./nameref11.sub: line 5: `/': not a valid identifier +1) / +#? ./nameref11.sub: line 6: `/': not a valid identifier +x + +./nameref11.sub: line 7: ((: `0': not a valid identifier +./nameref11.sub: line 8: declare: `0': invalid variable name for name reference +./nameref11.sub: line 9: declare: `/': invalid variable name for name reference +./nameref11.sub: line 10: declare: `/': invalid variable name for name reference +/ +./nameref11.sub: line 12: `/': not a valid identifier +./nameref11.sub: line 13: exec: `10': not a valid identifier +./nameref11.sub: line 13: r: cannot assign fd to variable +./nameref11.sub: line 14: warning: r: removing nameref attribute +63 +./nameref11.sub: line 15: declare: RO: readonly variable +./nameref11.sub: line 15: RO: readonly variable +./nameref11.sub: line 16: declare: `/': invalid variable name for name reference +/ +./nameref11.sub: line 17: declare: `/': invalid variable name for name reference +./nameref11.sub: illegal option -- h +./nameref11.sub: line 18: getopts: `?': not a valid identifier +./nameref11.sub: line 19: warning: r: removing nameref attribute +declare -a r=() +./nameref11.sub: line 20: declare: r: reference variable cannot be an array +./nameref11.sub: line 21: printf: `/': not a valid identifier +./nameref11.sub: line 23: `': not a valid identifier +./nameref11.sub: line 24: declare: `': not a valid identifier +./nameref11.sub: line 25: `': not a valid identifier +./nameref11.sub: line 26: printf: `': not a valid identifier +./nameref11.sub: line 27: declare: `': invalid variable name for name reference +declare -r ROVAR="42" +./nameref11.sub: line 32: ROVAR: readonly variable +./nameref11.sub: line 32: ROVAR: cannot unset: readonly variable +declare -r ROVAR="42" +./nameref11.sub +./nameref11.sub: line 34: `@': not a valid identifier +./nameref11.sub +declare -n ref="x" +./nameref11.sub: line 39: RO: readonly variable +declare -r RO_PID +./nameref11.sub: line 39: RO: cannot unset: readonly variable +declare -r RO="x" +./nameref11.sub: line 39: declare: RO_PID: not found +./nameref11.sub: line 41: RO2: readonly variable +declare -r RO2="a" +2 +./nameref11.sub: line 52: typeset: `2': invalid variable name for name reference +2 +./nameref11.sub: line 57: typeset: `2': invalid variable name for name reference +2 +./nameref11.sub: line 62: foo[2]: invalid indirect expansion +./nameref11.sub: line 63: bar: invalid indirect expansion +./nameref12.sub: line 6: declare: `/': invalid variable name for name reference +./nameref12.sub: line 9: declare: `%': invalid variable name for name reference +./nameref12.sub: line 13: `^': not a valid identifier +declare -n r +declare -a foo +declare -a foo=([0]="7") +./nameref12.sub: line 26: declare: `42': not a valid identifier +./nameref12.sub: line 27: declare: x: not found +declare -nr RO="foo" +/ +./nameref12.sub: line 45: declare: `7*6': not a valid identifier +./nameref12.sub: line 45: declare: foo: not found +./nameref12.sub: line 47: `7*6': not a valid identifier +declare -n ref="var" +declare -n ref="var" +./nameref12.sub: line 74: readonly: `var[0]': not a valid identifier +declare -- var="foo" +declare -r var2="foo" +declare -n ref="var" +declare -a var=([0]="foo") +./nameref12.sub: line 91: `': not a valid identifier +declare -n ref +declare -- ref="global" +declare -a var=([0]="foo2") +./nameref12.sub: line 100: declare: global: not found +declare -- a +declare -n r="a" +declare -- a +declare -n r="a" +0 +declare -n r="P" +declare -n ref="var" +declare -- a +declare -n r="a" +0 +declare -n r +declare -n r +./nameref13.sub: line 88: typeset: `12345': invalid variable name for name reference +declare -n foo +./nameref13.sub: line 97: typeset: `12345': invalid variable name for name reference +declare -n foo +declare -nx ref="var" +var +var +var +var +foo +foo +foo +foo +before +declare -n ref="var" +./nameref14.sub: line 23: typeset: var: not found +first +declare -n ref="var" +declare -x var="xxx" +invalid +declare -n ref="var" +declare -x var="5" +after +declare -n ref="var" +./nameref14.sub: line 32: typeset: var: not found +declare -n ref="var" +./nameref15.sub: line 1: local: warning: a: circular name reference +./nameref15.sub: line 1: warning: a: circular name reference +./nameref15.sub: line 1: `a[0]': not a valid identifier +declare -a a=([0]="0") +./nameref15.sub: line 1: local: warning: a: circular name reference +./nameref15.sub: line 1: warning: a: circular name reference +./nameref15.sub: line 1: warning: a: circular name reference +declare -a a=([0]="X") +declare -a b=([0]="X") +./nameref15.sub: line 1: local: warning: a: circular name reference +./nameref15.sub: line 1: warning: a: circular name reference +./nameref15.sub: line 1: `a[0]': not a valid identifier +declare -a b=([0]="0") +./nameref15.sub: line 19: typeset: warning: ref: circular name reference +./nameref15.sub: line 19: warning: ref: circular name reference +./nameref15.sub: line 20: warning: ref: circular name reference +./nameref15.sub: line 21: warning: ref: circular name reference +inside X +outside X +before: 7 +./nameref15.sub: line 32: typeset: warning: xxx: circular name reference +./nameref15.sub: line 32: warning: xxx: circular name reference +./nameref15.sub: line 33: warning: xxx: circular name reference +declare -n xxx="xxx" +./nameref15.sub: line 35: warning: xxx: circular name reference +xxx_func: inside: xxx = foo +after: foo +./nameref15.sub: line 46: typeset: ref: nameref variable self references not allowed +./nameref15.sub: line 48: ref: nameref variable self references not allowed +declare -n ref="re" +declare -n ref="re" +declare -- re="4" +4 +declare -n foo="var[@]" +declare -n ref="var[@]" +./nameref15.sub: line 65: var[@]: bad array subscript +declare -n bar="var[@]" +./nameref15.sub: line 70: var[@]: bad array subscript +declare -n a="b" +declare -n b="a[1]" +./nameref15.sub: line 78: warning: a: removing nameref attribute +declare -a a=([1]="foo") +declare -n b="a[1]" +./nameref15.sub: line 83: warning: a: removing nameref attribute +declare -a a=([1]="foo") +declare -n b="a[1]" +declare -n n="v" +declare -a v=([1]="1") +./nameref15.sub: line 99: typeset: n: not found +declare -a v=([0]="0" [1]="1") +declare -n n="v[1]" +declare -a v=([0]="0") +declare -n r1="y" +declare -n r2="x" +./nameref16.sub: line 12: typeset: x: not found +./nameref16.sub: line 12: typeset: y: not found +declare -n r1="y" +declare -n r2="x" +./nameref16.sub: line 21: typeset: x: not found +./nameref16.sub: line 21: typeset: y: not found +declare -n r1="y" +declare -n r2="x" +./nameref16.sub: line 33: typeset: x: not found +./nameref16.sub: line 33: typeset: y: not found +declare -n r1="y" +declare -n r2="x" +declare -- x="one" +declare -- y="two" +./nameref17.sub: line 8: declare: bar: not found +./nameref17.sub: line 9: unset: foo0: cannot unset: readonly variable +declare -nr foo0="bar" +declare -nr foo0="bar" +declare -- bar +./nameref17.sub: line 14: declare: foo0: readonly variable +./nameref17.sub: line 15: declare: foo0: readonly variable +declare -nr foo1 +./nameref17.sub: line 24: typeset: foo1: readonly variable +declare -nr foo1 +declare -n foo2="bar" +declare -r bar +./nameref17.sub: line 35: bar: readonly variable +./nameref17.sub: line 36: typeset: bar: readonly variable +declare -n foo2="bar" +declare -r bar +declare -- bar3="three" +./nameref17.sub: line 46: unset: foo3: cannot unset: readonly variable +./nameref17.sub: line 49: declare: bar3: readonly variable +declare -nr foo3="bar3" +declare -r bar3="three" +./nameref17.sub: line 51: declare: foo3: readonly variable +declare -nr foo4="bar4" +declare -- bar4="four" +./nameref17.sub: line 63: typeset: foo4: readonly variable +declare -nr foo4="bar4" +declare -nr foo4="bar4" +declare -- bar4="four" +./nameref17.sub: line 79: typeset: foo4: readonly variable +declare -nr foo4="bar4" +declare -nr foo4="bar4" +declare -- bar4="four" +declare -nr foo5 +declare -r foo5 +declare -nr foo5 +declare -r foo5 +./nameref18.sub: line 2: mapfile: `XXX[0]': not a valid identifier +./nameref18.sub: line 3: declare: XXX[0]: not found +./nameref18.sub: line 9: `XXX[0]': not a valid identifier +./nameref18.sub: line 10: declare: XXX[0]: not found +declare -n ref="XXX[0]" +declare -a XXX=([0]="4") +./nameref18.sub: line 24: `XXX[0]': not a valid identifier +declare -n ref="XXX[0]" +./nameref18.sub: line 25: declare: XXX[0]: not found +./nameref18.sub: line 29: read: `XXX[0]': not a valid identifier +./nameref18.sub: line 30: declare: XXX[0]: not found +./nameref18.sub: line 35: `XXX[0]': not a valid identifier +declare -n ref="XXX[0]" +./nameref18.sub: line 38: `XXX[0]': not a valid identifier +./nameref18.sub: line 38: declare: XXX[0]: not found +declare -n ref="var[123]" +./nameref18.sub: line 46: declare: var[123]: not found +declare -a var=([123]="") +declare -n ref="var[123]" +./nameref18.sub: line 50: declare: var[123]: not found +declare -a var=([123]="") +declare -n ref="var[123]" +./nameref18.sub: line 54: declare: var[123]: not found +declare -a var=([123]="X") +declare -n foo="bar" +declare -- foo="bar" +./nameref19.sub: line 9: declare: bar: not found +declare -n foo="bar" +declare -- foo="bar" +declare -i bar="11" +declare -inx foo6 +declare -ix foo6 +declare -n foo="bar" +declare -- bar="Hello World!" +declare -- foo="bar" +declare -- bar="Hello World!" +declare -n foo="bar" +declare -- bar +declare -- foo="bar" +declare -- bar +declare -a v=([0]="Y") +r: <Y> +v: <Y> +declare -n ref="var" +declare -a var=([0]="X") +declare -n ref="var" +declare -a var=([0]="X") +declare -n ref="var" +./nameref20.sub: line 23: declare: var: not found +outside: +declare -a foo=([0]="X") +declare -n ref="var" +declare -a var=([0]="X") +outside: +./nameref20.sub: line 38: declare: ref: not found +./nameref20.sub: line 38: declare: var: not found +declare -n ref="var" +declare -- var="X" +outside: +./nameref20.sub: line 45: declare: ref: not found +./nameref20.sub: line 45: declare: var: not found +declare -n ref="var" +declare -a var=([0]="Y") +declare -- ref="Y" +declare -- var="X" +ref=Y +declare -- ref="Y" +./nameref20.sub: line 61: declare: var: not found +ref=Y +declare -n ref="var" +declare -A var=([2]="" ) +declare -n ref="var" +declare -A var=([2]="" ) +declare -n ref="var" +declare -a var=([2]="") +declare -n ref="var" +declare -a var=([2]="") +declare -n ref="var" +declare -ai var=([1]="0") +declare -n ref="var" +declare -ai var=([1]="0") +declare -n ref="var" +declare -- var="1" |