| 1 | ## oils_failures_allowed: 3
|
| 2 | ## compare_shells: bash mksh
|
| 3 |
|
| 4 | # TODO: compare with AT&T ksh - it has this feature
|
| 5 |
|
| 6 | #### K and V are variables in (( array[K] = V ))
|
| 7 | K=5
|
| 8 | V=42
|
| 9 | typeset -a array
|
| 10 | (( array[K] = V ))
|
| 11 |
|
| 12 | echo array[5]=${array[5]}
|
| 13 | echo keys = ${!array[@]}
|
| 14 | echo values = ${array[@]}
|
| 15 | ## STDOUT:
|
| 16 | array[5]=42
|
| 17 | keys = 5
|
| 18 | values = 42
|
| 19 | ## END
|
| 20 |
|
| 21 | #### test -v with strings
|
| 22 | test -v str
|
| 23 | echo str=$?
|
| 24 |
|
| 25 | str=x
|
| 26 |
|
| 27 | test -v str
|
| 28 | echo str=$?
|
| 29 |
|
| 30 | ## STDOUT:
|
| 31 | str=1
|
| 32 | str=0
|
| 33 | ## END
|
| 34 | ## BUG mksh STDOUT:
|
| 35 | str=2
|
| 36 | str=2
|
| 37 | ## END
|
| 38 |
|
| 39 | #### test -v with arrays
|
| 40 |
|
| 41 | typeset -a a
|
| 42 |
|
| 43 | test -v a
|
| 44 | echo a=$?
|
| 45 | test -v 'a[0]'
|
| 46 | echo "a[0]=$?"
|
| 47 | echo
|
| 48 |
|
| 49 | a[0]=1
|
| 50 |
|
| 51 | test -v a
|
| 52 | echo a=$?
|
| 53 | test -v 'a[0]'
|
| 54 | echo "a[0]=$?"
|
| 55 | echo
|
| 56 |
|
| 57 | test -v 'a[1]'
|
| 58 | echo "a[1]=$?"
|
| 59 |
|
| 60 | # stupid rule about undefined 'x'
|
| 61 | test -v 'a[x]'
|
| 62 | echo "a[x]=$?"
|
| 63 | echo
|
| 64 |
|
| 65 | ## STDOUT:
|
| 66 | a=1
|
| 67 | a[0]=1
|
| 68 |
|
| 69 | a=0
|
| 70 | a[0]=0
|
| 71 |
|
| 72 | a[1]=1
|
| 73 | a[x]=0
|
| 74 |
|
| 75 | ## END
|
| 76 |
|
| 77 | ## BUG mksh STDOUT:
|
| 78 | a=2
|
| 79 | a[0]=2
|
| 80 |
|
| 81 | a=2
|
| 82 | a[0]=2
|
| 83 |
|
| 84 | a[1]=2
|
| 85 | a[x]=2
|
| 86 |
|
| 87 | ## END
|
| 88 |
|
| 89 | #### test -v with assoc arrays
|
| 90 |
|
| 91 | typeset -A A
|
| 92 |
|
| 93 | test -v A
|
| 94 | echo A=$?
|
| 95 | test -v 'A[0]'
|
| 96 | echo "A[0]=$?"
|
| 97 | echo
|
| 98 |
|
| 99 | A['0']=x
|
| 100 |
|
| 101 | test -v A
|
| 102 | echo A=$?
|
| 103 | test -v 'A[0]'
|
| 104 | echo "A[0]=$?"
|
| 105 | echo
|
| 106 |
|
| 107 | test -v 'A[1]'
|
| 108 | echo "A[1]=$?"
|
| 109 |
|
| 110 | # stupid rule about undefined 'x'
|
| 111 | test -v 'A[x]'
|
| 112 | echo "A[x]=$?"
|
| 113 | echo
|
| 114 |
|
| 115 | ## STDOUT:
|
| 116 | A=1
|
| 117 | A[0]=1
|
| 118 |
|
| 119 | A=0
|
| 120 | A[0]=0
|
| 121 |
|
| 122 | A[1]=1
|
| 123 | A[x]=1
|
| 124 |
|
| 125 | ## END
|
| 126 |
|
| 127 | ## N-I ksh STDOUT:
|
| 128 | A=1
|
| 129 | A[0]=1
|
| 130 |
|
| 131 | A=1
|
| 132 | A[0]=1
|
| 133 |
|
| 134 | A[1]=1
|
| 135 | A[x]=1
|
| 136 |
|
| 137 | ## END
|
| 138 |
|
| 139 | ## BUG mksh STDOUT:
|
| 140 | A=2
|
| 141 | A[0]=2
|
| 142 |
|
| 143 | A=2
|
| 144 | A[0]=2
|
| 145 |
|
| 146 | A[1]=2
|
| 147 | A[x]=2
|
| 148 |
|
| 149 | ## END
|