summaryrefslogtreecommitdiffstats
path: root/tests/appendop.tests
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tests/appendop.tests87
1 files changed, 87 insertions, 0 deletions
diff --git a/tests/appendop.tests b/tests/appendop.tests
new file mode 100644
index 0000000..e4e52c2
--- /dev/null
+++ b/tests/appendop.tests
@@ -0,0 +1,87 @@
+# basic cases
+a=1
+a+=4
+echo $a
+
+x=(1 2 3)
+x+=(4 5 6)
+
+echo ${x[@]}
+
+x[4]+=1
+echo ${x[@]}
+
+# trickier cases
+# post-bash-4.2: bash understands += in environment assignments preceding
+# command names
+a+=5 printenv a
+echo $a
+
+# if the integer flag is set, ksh93 appears to do arithmetic += and evaluate
+# old value as an arithmetic expression
+a=
+typeset -i a
+a+=7
+echo $a
+
+b=4+1
+typeset -i b
+b+=37
+
+echo $b
+
+unset x
+x=(1 2 3 4 5)
+
+typeset -i x
+
+x[4]+=7
+
+echo ${x[@]}
+
+unset x
+typeset -i x
+
+x=([0]=7+11)
+echo ${x[@]}
+
+unset x
+x=(1 2 3 4 5)
+
+typeset -i x
+
+#x[4]=7+11
+
+x=(1 2 3 4 [4]=7+11 )
+echo ${x[@]}
+
+x=( 1 2 [2]+=7 4 5 )
+echo ${x[@]}
+
+x+=( [3]+=9 [5]=9 )
+echo ${x[@]}
+
+unset a
+a=1
+export a+=4
+printenv a
+printenv a+
+
+unset x
+typeset -i x=4+5
+echo $x
+
+unset x
+typeset x+=4
+echo $x
+
+typeset -i x+=5
+echo $x
+
+readonly x+=7
+echo $x
+
+x+=5
+
+${THIS_SH} ./appendop1.sub
+${THIS_SH} ./appendop2.sub