ble-idioms () { sh-spec spec/ble-idioms.test.sh $BASH $ZSH $MKSH $BUSYBOX_ASH $OSH_LIST "$@" }
spec test index / oilshell.org
status | bash | zsh | mksh | ash | osh | |
pass | 13 | 9 | 9 | 5 | 14 | |
N-I | 1 | 2 | 4 | 6 | 0 | |
BUG | 0 | 3 | 1 | 3 | 0 | |
total | 14 | 14 | 14 | 14 | 14 | |
case | bash | zsh | mksh | ash | osh | description |
0 | pass | pass | pass | pass | pass | recursive arith: one level |
1 | pass | pass | pass | pass | pass | recursive arith: two levels |
2 | pass | pass | BUG | BUG | pass | recursive arith: short circuit &&, || |
details | details | |||||
3 | pass | pass | pass | BUG | pass | recursive arith: short circuit ?: |
details | ||||||
4 | pass | BUG | pass | BUG | pass | recursive arith: side effects |
details | details | |||||
5 | pass | pass | N-I | N-I | pass | recursive arith: recursion |
details | details | |||||
6 | pass | pass | pass | N-I | pass | recursive arith: array elements |
details | ||||||
7 | pass | pass | pass | pass | pass | dynamic arith varname: assign |
8 | pass | pass | pass | pass | pass | dynamic arith varname: read |
9 | pass | pass | pass | pass | pass | dynamic arith varname: copy/add |
10 | pass | N-I | N-I | N-I | pass | is-array with ${var@a} |
details | details | details | ||||
11 | pass | BUG | pass | N-I | pass | Sparse array with big index |
details | details | |||||
12 | pass | BUG | N-I | N-I | pass | shift unshift reverse |
details | details | details | ||||
13 | N-I | N-I | N-I | N-I | pass | Performance demo |
details | details | details | details |
50 passed, 0 OK, 13 not implemented, 7 BUG, 0 failed, 0 timeouts, 0 cases skipped
mksh | 2 recursive arith: short circuit &&, || stdout: 1:123 1:123 0:321 1:321stderr: |
ash | 2 recursive arith: short circuit &&, || stdout: 1:123 1:123 0:321 1:321stderr: |
ash | 3 recursive arith: short circuit ?: stdout: 123:321 321:321stderr: |
zsh | 4 recursive arith: side effects stdout: 0:123stderr: |
ash | 4 recursive arith: side effects stdout: 0:123stderr: |
mksh | 5 recursive arith: recursion stdout: stderr: mksh: <stdin>[2]: i<=100&&(s+=i,i++,loop): expression recurses on parameter 'loop' |
ash | 5 recursive arith: recursion stdout: stderr: ash: expression recursion loop detected |
ash | 6 recursive arith: array elements stdout: stderr: ash: text[1]=d=123: not found ash: text[2]=text[1]: not found ash: text[3]=text[2]: not found ash: arithmetic syntax error |
zsh | 10 is-array with ${var@a} stdout: stderr: ble/is-array: bad substitution |
mksh | 10 is-array with ${var@a} stdout: stderr: |
ash | 10 is-array with ${var@a} stdout: stderr: |
zsh | 11 Sparse array with big index stdout: len=1048576stderr: |
ash | 11 Sparse array with big index stdout: stderr: ash: syntax error: unexpected "(" |
zsh | 12 shift unshift reverse stdout: 1 2 3 4 5 6 2 3 4 5 6 4 5 6 --- 99 4 5 6 --- 5 4 99stderr: (eval):4: a: assignment to invalid subscript range |
mksh | 12 shift unshift reverse stdout: stderr: |
ash | 12 shift unshift reverse stdout: stderr: |
bash | 13 Performance demo stdout: stderr: |
zsh | 13 Performance demo stdout: stderr: |
mksh | 13 Performance demo stdout: stderr: |
ash | 13 Performance demo stdout: stderr: |