var-op-slice () { run-file var-op-slice "$@" } run-file () { local spec_name=$1; shift; sh-spec spec/$spec_name.test.sh --compare-shells --oils-bin-dir $PWD/bin "$@" } var-op-slice: spec test case results

Results for var-op-slice.test.sh

statusbashmkshzshosh
pass 2051520
ok 0132
N-I 1610
BUG 11030
total22222222
casebashmkshzshoshdescription
0pass pass pass pass String slice
1pass pass ok ok Cannot take length of substring slice
detailsdetails
2pass BUG pass pass Out of range string slice: begin
details
3pass BUG pass pass Out of range string slice: length
details
4pass pass pass pass Negative start index
5pass BUG pass pass Negative start index respects unicode
details
6pass BUG pass pass Negative second arg is position, not length!
details
7pass BUG pass pass Negative start index respects unicode
details
8pass pass pass pass String slice with math
9pass BUG pass pass Slice undefined
details
10pass BUG pass pass Slice UTF-8 String
details
11BUG BUG BUG pass Slice string with invalid UTF-8 results in empty string and warning
detailsdetailsdetails
12N-I N-I N-I pass Slice string with invalid UTF-8 with strict_word_eval
detailsdetailsdetails
13pass pass ok pass Slice with an index that's an array -- silent a[0] decay
details
14pass N-I pass pass Slice with an assoc array
details
15pass N-I pass pass Simple ${@:offset}
details
16pass N-I BUG pass ${@:offset} and ${*:offset}
detailsdetails
17pass N-I BUG pass ${@:offset:length} and ${*:offset:length}
detailsdetails
18pass N-I pass pass ${@:0:1}
details
19pass BUG pass pass Permutations of implicit begin and length
details
20pass BUG pass ok ${array[@]:} vs ${array[@]: } - bash and zsh inconsistent
detailsdetails
21pass ok ok pass ${array[@]::} has implicit length of zero - for ble.sh
detailsdetails
60 passed, 6 OK, 8 not implemented, 14 BUG, 0 failed, 0 timeouts, 0 cases skipped

Details on runs that didn't PASS

zsh1 Cannot take length of substring slice

stdout:
3
stderr:
osh1 Cannot take length of substring slice

stdout:
stderr: 
  echo ${#v:1:3}
           ^
[ stdin ]:2: Expected } after length expression
mksh2 Out of range string slice: begin

stdout:
0
stderr:
mksh3 Out of range string slice: length

stdout:
_defg
0
stderr:
mksh5 Negative start index respects unicode

stdout:
stderr:
mksh6 Negative second arg is position, not length!

stdout:
defg defg defg
stderr:
mksh7 Negative start index respects unicode

stdout:
d-μ-
stderr:
mksh9 Slice undefined

stdout:
--
--
-done-
stderr:
mksh10 Slice UTF-8 String

stdout:
stderr:
bash11 Slice string with invalid UTF-8 results in empty string and warning

stdout:
-bcd-
stderr:
mksh11 Slice string with invalid UTF-8 results in empty string and warning

stdout:
-bcd-
stderr:
zsh11 Slice string with invalid UTF-8 results in empty string and warning

stdout:
-bcd-
stderr:
bash12 Slice string with invalid UTF-8 with strict_word_eval

stdout:
slice
-bcd-
stderr:
bash: line 1: shopt: strict_word_eval: invalid shell option name
mksh12 Slice string with invalid UTF-8 with strict_word_eval

stdout:
slice
-bcd-
stderr:
mksh: <stdin>[1]: shopt: not found
zsh12 Slice string with invalid UTF-8 with strict_word_eval

stdout:
slice
-bcd-
stderr:
zsh: command not found: shopt
zsh13 Slice with an index that's an array -- silent a[0] decay

stdout:
assigned
stderr:
zsh: bad math expression: operator expected at `4 5'
mksh14 Slice with an assoc array

stdout:
stderr: 
mksh: <stdin>[1]: syntax error: '(' unexpected
mksh15 Simple ${@:offset}

stdout:
stderr: 
mksh: <stdin>[3]: ${@: 0}: bad substitution
mksh: <stdin>[6]: ${@: 1}: bad substitution
mksh16 ${@:offset} and ${*:offset}

stdout:
stderr: 
mksh: <stdin>[28]: ${*: 0}: bad substitution
zsh16 ${@:offset} and ${*:offset}

stdout:
stderr: 
mksh17 ${@:offset:length} and ${*:offset:length}

stdout:
stderr: 
mksh: <stdin>[28]: ${*: 0:2}: bad substitution
zsh17 ${@:offset:length} and ${*:offset:length}

stdout:
stderr: 
mksh18 ${@:0:1}

stdout:
stderr: 
mksh: <stdin>[2]: ${@: 0:1}: bad substitution
mksh19 Permutations of implicit begin and length

stdout:
['1', '2', '3']
stderr:
mksh: <stdin>[5]: ${array[@]: 0}: bad substitution
mksh20 ${array[@]:} vs ${array[@]: } - bash and zsh inconsistent

stdout:
['space', '123']
stderr:
mksh: ${array[@]:}: bad substitution
mksh: ${array[@]: }: bad substitution
mksh: ${s:}: bad substitution
osh20 ${array[@]:} vs ${array[@]: } - bash and zsh inconsistent

stdout:
['1', '2', '3']
['space', '1', '2', '3']
['123']
['space', '123']
stderr:
mksh21 ${array[@]::} has implicit length of zero - for ble.sh

stdout:
stderr: 
mksh: <stdin>[2]: ${array[@]:0:}: bad substitution
zsh21 ${array[@]::} has implicit length of zero - for ble.sh

stdout:
stderr: 
zsh: closing brace expected