Results for ble-idioms.test.sh

statusbashzshmkshashosh
pass 251518819
ok 13310
N-I 054140
BUG 03130
FAIL 00007
total2626262626
casebashzshmkshashoshdescription
0pass pass pass pass pass recursive arith: one level
1pass pass pass pass pass recursive arith: two levels
2pass pass BUG BUG pass recursive arith: short circuit &&, ||
detailsdetails
3pass pass pass BUG pass recursive arith: short circuit ?:
details
4pass BUG pass BUG pass recursive arith: side effects
detailsdetails
5pass pass N-I N-I pass recursive arith: recursion
detailsdetails
6pass pass pass N-I pass recursive arith: array elements
details
7pass pass pass pass pass dynamic arith varname: assign
8pass pass pass pass pass dynamic arith varname: read
9pass pass pass pass pass dynamic arith varname: copy/add
10pass N-I N-I N-I pass is-array with ${var@a}
detailsdetailsdetails
11pass BUG pass N-I pass Sparse array with big index
detailsdetails
12pass BUG N-I N-I FAIL shift unshift reverse
detailsdetailsdetailsdetails
13pass N-I N-I N-I pass shopt -u expand_aliases and eval
detailsdetailsdetails
14pass pass pass N-I FAIL Issue #1069 [40] BUG: a=(declare v); "${a[@]}" fails
detailsdetails
15pass pass pass N-I pass Issue #1069 [40] BUG: a=declare; "$a" v=1 fails
details
16pass pass pass pass pass Issue #1069 [49] BUG: \return 0 does not work
17pass ok pass N-I pass Issue #1069 [49] BUG: \return 0 does not work (other variations)
detailsdetails
18pass pass pass N-I pass Issue #1069 [52] BUG: \builtin local v=1 fails
details
19pass ok pass N-I FAIL Issue #1069 [53] BUG: a[1 + 1]=2, etc. fails
detailsdetailsdetails
20pass N-I ok N-I FAIL Issue #1069 [53] - LHS array parsing a[1 + 2]=3 (see spec/array-assign for more)
detailsdetailsdetailsdetails
21ok ok ok ok pass Issue #1069 [56] BUG: declare -p unset does not print any error message
detailsdetailsdetailsdetails
22pass pass pass pass pass Issue #1069 [57] BUG: variable v is invisible after IFS= eval 'local v=...'
23pass pass pass pass FAIL Issue #1069 [57] - Variable v should be visible after IFS= eval 'local v=...'
details
24pass N-I pass N-I FAIL Issue #1069 [59] N-I: arr=s should set RHS to arr[0]
detailsdetailsdetails
25pass N-I ok N-I FAIL Issue #1069 [59] - Assigning Str to BashArray/BashAssoc should not remove BashArray/BashAssoc
detailsdetailsdetailsdetails
85 passed, 8 OK, 23 not implemented, 7 BUG, 7 failed, 0 timeouts, 0 cases skipped
7 failed under osh

Details on runs that didn't PASS

mksh2 recursive arith: short circuit &&, ||

stdout:
1:123
1:123
0:321
1:321
stderr:
ash2 recursive arith: short circuit &&, ||

stdout:
1:123
1:123
0:321
1:321
stderr:
ash3 recursive arith: short circuit ?:

stdout:
123:321
321:321
stderr:
zsh4 recursive arith: side effects

stdout:
0:123
stderr:
ash4 recursive arith: side effects

stdout:
0:123
stderr:
mksh5 recursive arith: recursion

stdout:
stderr: 
mksh: <stdin>[2]: i<=100&&(s+=i,i++,loop): expression recurses on parameter 'loop'
ash5 recursive arith: recursion

stdout:
stderr: 
ash: expression recursion loop detected
ash6 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
zsh10 is-array with ${var@a}

stdout:
stderr: 
ble/is-array: bad substitution
mksh10 is-array with ${var@a}

stdout:
stderr: 
ash10 is-array with ${var@a}

stdout:
stderr: 
zsh11 Sparse array with big index

stdout:
len=1048576
stderr:
ash11 Sparse array with big index

stdout:
stderr: 
ash: syntax error: unexpected "("
zsh12 shift unshift reverse

stdout:
1 2 3 4 5 6
2 3 4 5 6
4 5 6
---
99 4 5 6
---
5 4 99
stderr:
(eval):4: a: assignment to invalid subscript range
mksh12 shift unshift reverse

stdout:
stderr: 
ash12 shift unshift reverse

stdout:
stderr: 
osh12 shift unshift reverse

[osh stdout] Expected '1 2 3 4 5 6\n2 3 4 5 6\n4 5 6\n---\n99 4 5 6\n---\n6 5 4 99\n' Got ''
[osh status] Expected 0 Got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 263, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 232, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 198, in AppBundleMain
    bash_compat=(applet == 'bash'))
  File "/home/uke/oil/core/shell.py", line 1296, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/uke/oil/core/main_loop.py", line 336, in Batch
    was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags)
  File "/home/uke/oil/core/main_loop.py", line 375, in Batch2
    node = c_parser.ParseLogicalLine()  # can raise ParseError
  File "/home/uke/oil/osh/cmd_parse.py", line 2839, in ParseLogicalLine
    node = self._ParseCommandLine()
  File "/home/uke/oil/osh/cmd_parse.py", line 2695, in _ParseCommandLine
    child = self.ParseAndOr()
  File "/home/uke/oil/osh/cmd_parse.py", line 2619, in ParseAndOr
    return self._ParseAndOr()
  File "/home/uke/oil/osh/cmd_parse.py", line 2630, in _ParseAndOr
    child = self.ParsePipeline()
  File "/home/uke/oil/osh/cmd_parse.py", line 2578, in ParsePipeline
    child = self.ParseCommand()
  File "/home/uke/oil/osh/cmd_parse.py", line 2491, in ParseCommand
    return self.ParseKshFunctionDef()
  File "/home/uke/oil/osh/cmd_parse.py", line 2217, in ParseKshFunctionDef
    func.body = self.ParseCompoundCommand()
  File "/home/uke/oil/osh/cmd_parse.py", line 2073, in ParseCompoundCommand
    n1 = self.ParseBraceGroup()
  File "/home/uke/oil/osh/cmd_parse.py", line 1365, in ParseBraceGroup
    c_list = self._ParseCommandList()
  File "/home/uke/oil/osh/cmd_parse.py", line 2823, in _ParseCommandList
    return self._ParseCommandTerm()
  File "/home/uke/oil/osh/cmd_parse.py", line 2760, in _ParseCommandTerm
    child = self.ParseAndOr()
  File "/home/uke/oil/osh/cmd_parse.py", line 2619, in ParseAndOr
    return self._ParseAndOr()
  File "/home/uke/oil/osh/cmd_parse.py", line 2630, in _ParseAndOr
    child = self.ParsePipeline()
  File "/home/uke/oil/osh/cmd_parse.py", line 2578, in ParsePipeline
    child = self.ParseCommand()
  File "/home/uke/oil/osh/cmd_parse.py", line 2554, in ParseCommand
    return self.ParseSimpleCommand()
  File "/home/uke/oil/osh/cmd_parse.py", line 1222, in ParseSimpleCommand
    redirects, words, typed_args, block = self._ScanSimpleCommand()
  File "/home/uke/oil/osh/cmd_parse.py", line 904, in _ScanSimpleCommand
    self._GetWord()
  File "/home/uke/oil/osh/cmd_parse.py", line 670, in _GetWord
    w = self.w_parser.ReadWord(self.next_lex_mode)
  File "/home/uke/oil/osh/word_parse.py", line 2334, in ReadWord
    w = self._ReadWord(word_mode)
  File "/home/uke/oil/osh/word_parse.py", line 2251, in _ReadWord
    return self._ReadCompoundOrRedir(lex_mode)
  File "/home/uke/oil/osh/word_parse.py", line 1899, in _ReadCompoundOrRedir
    return self._ReadCompoundOrRedir3(lex_mode, Id.Undefined_Tok, True)
  File "/home/uke/oil/osh/word_parse.py", line 2004, in _ReadCompoundOrRedir3
    part = self._ReadUnquotedLeftParts(is_triple_quoted)
  File "/home/uke/oil/osh/word_parse.py", line 910, in _ReadUnquotedLeftParts
    dq_part = self._ReadDoubleQuoted(self.cur_token)
  File "/home/uke/oil/osh/word_parse.py", line 1196, in _ReadDoubleQuoted
    self._ReadLikeDQ(left_token, False, parts)
  File "/home/uke/oil/osh/word_parse.py", line 1107, in _ReadLikeDQ
    tok, "\"")
UnboundLocalError: local variable 'tok' referenced before assignment
zsh13 shopt -u expand_aliases and eval

stdout:
stderr: 
mksh13 shopt -u expand_aliases and eval

stdout:
stderr: 
ash13 shopt -u expand_aliases and eval

stdout:
stderr: 
ash14 Issue #1069 [40] BUG: a=(declare v); "${a[@]}" fails

stdout:
stderr: 
osh14 Issue #1069 [40] BUG: a=(declare v); "${a[@]}" fails

[osh stdout] Expected 'v=1\n' Got 'COMP_WORDBREAKS=$\' \\t\\n"\\\'><=;|&(:\'\nEUID=1000\nHOSTNAME=a378014356b1\nIFS=$\' \\t\\n\'\nLC_ALL=C.UTF-8\nLOCALE_ARCHIVE=\'\'\nOILS_GC_ON_EXIT=\'\'\nOPTIND=1\nOSTYPE=linux\nPATH=\'/home/uke/oil/spec/bin:/home/uke/oil/../oils.DEPS/bin:/home/uke/oil/../oils.DEPS/bin:/home/uke/oil/../oils.DEPS/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\'\nPPID=12933\nPS4=\'${SHX_indent}${SHX_punct}${SHX_pid_str} \'\nPWD=/home/uke/oil/_tmp/spec-tmp/ble-idioms.test.sh/14-osh\nPYTHONPATH=\'/home/uke/oil:/home/uke/oil/vendor\'\nREPO_ROOT=/home/uke/oil\nSH=/home/uke/oil/bin/osh\nSHELLOPTS=hashall\nTMP=/home/uke/oil/_tmp/spec-tmp/ble-idioms.test.sh/14-osh\nUID=1000\na=(typeset \'v=1\')\nv=x\nv=x\n'

stdout:
COMP_WORDBREAKS=$' \t\n"\'><=;|&(:'
EUID=1000
HOSTNAME=a378014356b1
IFS=$' \t\n'
LC_ALL=C.UTF-8
LOCALE_ARCHIVE=''
OILS_GC_ON_EXIT=''
OPTIND=1
OSTYPE=linux
PATH='/home/uke/oil/spec/bin:/home/uke/oil/../oils.DEPS/bin:/home/uke/oil/../oils.DEPS/bin:/home/uke/oil/../oils.DEPS/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
PPID=12933
PS4='${SHX_indent}${SHX_punct}${SHX_pid_str} '
PWD=/home/uke/oil/_tmp/spec-tmp/ble-idioms.test.sh/14-osh
PYTHONPATH='/home/uke/oil:/home/uke/oil/vendor'
REPO_ROOT=/home/uke/oil
SH=/home/uke/oil/bin/osh
SHELLOPTS=hashall
TMP=/home/uke/oil/_tmp/spec-tmp/ble-idioms.test.sh/14-osh
UID=1000
a=(typeset 'v=1')
v=x
v=x
stderr:
ash15 Issue #1069 [40] BUG: a=declare; "$a" v=1 fails

stdout:
stderr: 
zsh17 Issue #1069 [49] BUG: \return 0 does not work (other variations)

stdout:
status=3
status=3
unexpected
status=0
stderr:
f4: command not found: return
ash17 Issue #1069 [49] BUG: \return 0 does not work (other variations)

stdout:
unexpected
status=0
unexpected
status=0
status=3
stderr:
ash: builtin: not found
ash: builtin: not found
ash18 Issue #1069 [52] BUG: \builtin local v=1 fails

stdout:
stderr: 
zsh19 Issue #1069 [53] BUG: a[1 + 1]=2, etc. fails

stdout:
status=1, a[1]=x
status=1, a[2]=x
status=1, a[3]=x
stderr:
zsh: bad pattern: a[5
zsh: bad pattern: a[1
zsh: bad pattern: a[1
ash19 Issue #1069 [53] BUG: a[1 + 1]=2, etc. fails

stdout:
stderr: 
osh19 Issue #1069 [53] BUG: a[1 + 1]=2, etc. fails

[osh stdout] Expected 'status=0, a[1]=hello\nstatus=0, a[2]=hello\nstatus=0, a[3]=hello\n' Got 'status=127, a[1]=x\nstatus=127, a[2]=x\nstatus=127, a[3]=x\n'

stdout:
status=127, a[1]=x
status=127, a[2]=x
status=127, a[3]=x
stderr:
  a[5&3]=hello
  ^~
  a[5&3]=hello
      ^
[ eval arg at line 5 of [ stdin ] ]:1

[ eval arg at line 5 of [ stdin ] ]:1

  eval 'a[5&3]=hello'
  ^~~~
[ stdin ]:5: Command '3]=hello' not found (OILS-ERR-100)
  eval 'a[5&3]=hello'
  ^~~~
[ stdin ]:5: Command 'a[5' not found (OILS-ERR-100)
  a[1 + 1]=hello
  ^~
[ eval arg at line 9 of [ stdin ] ]:1

  eval 'a[1 + 1]=hello'
  ^~~~
[ stdin ]:9: Command 'a[1' not found (OILS-ERR-100)
  a[1|2]=hello
  ^~
  a[1|2]=hello
      ^
[ eval arg at line 13 of [ stdin ] ]:1

[ eval arg at line 13 of [ stdin ] ]:1

  eval 'a[1|2]=hello'
  ^~~~
[ stdin ]:13: Command '2]=hello' not found (OILS-ERR-100)
  eval 'a[1|2]=hello'
  ^~~~
[ stdin ]:13: Command 'a[1' not found (OILS-ERR-100)
zsh20 Issue #1069 [53] - LHS array parsing a[1 + 2]=3 (see spec/array-assign for more)

stdout:
stderr: 
mksh20 Issue #1069 [53] - LHS array parsing a[1 + 2]=3 (see spec/array-assign for more)

stdout:
set -A a
typeset a[3]=7
typeset a[7]=8
typeset a[9]=9
set -A a
typeset a[3]=55
typeset a[7]=8
typeset a[9]=9
typeset a[41]=66
stderr:
ash20 Issue #1069 [53] - LHS array parsing a[1 + 2]=3 (see spec/array-assign for more)

stdout:
stderr: 
osh20 Issue #1069 [53] - LHS array parsing a[1 + 2]=3 (see spec/array-assign for more)

[osh stdout] Expected 'declare -a a=([3]="7" [7]="8" [9]="9")\ndeclare -a a=([3]="55" [7]="8" [9]="9" [41]="66")\n' Got ''
[osh status] Expected 0 Got 2

stdout:
stderr: 
  a[1 + 2]=7
  ^~
[ stdin ]:3: Command 'a[1' not found (OILS-ERR-100)
  a[3|4]=8
  ^~
  a[3|4]=8
      ^
[ stdin ]:4: Command '4]=8' not found (OILS-ERR-100)
[ stdin ]:4: Command 'a[3' not found (OILS-ERR-100)
  a[(1+2)*3]=9
    ^
[ stdin ]:5: Unexpected left paren (might need a space before it)
bash21 Issue #1069 [56] BUG: declare -p unset does not print any error message

stdout:
stderr: 
bash: line 1: typeset: nonexistent: not found
zsh21 Issue #1069 [56] BUG: declare -p unset does not print any error message

stdout:
stderr: 
typeset: no such variable: nonexistent
mksh21 Issue #1069 [56] BUG: declare -p unset does not print any error message

stdout:
stderr: 
ash21 Issue #1069 [56] BUG: declare -p unset does not print any error message

stdout:
stderr: 
ash: typeset: not found
osh23 Issue #1069 [57] - Variable v should be visible after IFS= eval 'local v=...'

[osh stdout] Expected 'v=hello\n' Got ''
[osh status] Expected 0 Got 1
[osh stderr] Found 'Traceback (most recent'

stdout:
stderr: 
Traceback (most recent call last):
  File "/home/uke/oil/bin/oils_for_unix.py", line 263, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 232, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 198, in AppBundleMain
    bash_compat=(applet == 'bash'))
  File "/home/uke/oil/core/shell.py", line 1296, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/uke/oil/core/main_loop.py", line 336, in Batch
    was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags)
  File "/home/uke/oil/core/main_loop.py", line 375, in Batch2
    node = c_parser.ParseLogicalLine()  # can raise ParseError
  File "/home/uke/oil/osh/cmd_parse.py", line 2839, in ParseLogicalLine
    node = self._ParseCommandLine()
  File "/home/uke/oil/osh/cmd_parse.py", line 2695, in _ParseCommandLine
    child = self.ParseAndOr()
  File "/home/uke/oil/osh/cmd_parse.py", line 2619, in ParseAndOr
    return self._ParseAndOr()
  File "/home/uke/oil/osh/cmd_parse.py", line 2630, in _ParseAndOr
    child = self.ParsePipeline()
  File "/home/uke/oil/osh/cmd_parse.py", line 2578, in ParsePipeline
    child = self.ParseCommand()
  File "/home/uke/oil/osh/cmd_parse.py", line 2521, in ParseCommand
    return self.ParseFunctionDef()  # f() { echo; }  # function
  File "/home/uke/oil/osh/cmd_parse.py", line 2172, in ParseFunctionDef
    func.body = self.ParseCompoundCommand()
  File "/home/uke/oil/osh/cmd_parse.py", line 2073, in ParseCompoundCommand
    n1 = self.ParseBraceGroup()
  File "/home/uke/oil/osh/cmd_parse.py", line 1365, in ParseBraceGroup
    c_list = self._ParseCommandList()
  File "/home/uke/oil/osh/cmd_parse.py", line 2823, in _ParseCommandList
    return self._ParseCommandTerm()
  File "/home/uke/oil/osh/cmd_parse.py", line 2760, in _ParseCommandTerm
    child = self.ParseAndOr()
  File "/home/uke/oil/osh/cmd_parse.py", line 2619, in ParseAndOr
    return self._ParseAndOr()
  File "/home/uke/oil/osh/cmd_parse.py", line 2630, in _ParseAndOr
    child = self.ParsePipeline()
  File "/home/uke/oil/osh/cmd_parse.py", line 2578, in ParsePipeline
    child = self.ParseCommand()
  File "/home/uke/oil/osh/cmd_parse.py", line 2554, in ParseCommand
    return self.ParseSimpleCommand()
  File "/home/uke/oil/osh/cmd_parse.py", line 1222, in ParseSimpleCommand
    redirects, words, typed_args, block = self._ScanSimpleCommand()
  File "/home/uke/oil/osh/cmd_parse.py", line 904, in _ScanSimpleCommand
    self._GetWord()
  File "/home/uke/oil/osh/cmd_parse.py", line 670, in _GetWord
    w = self.w_parser.ReadWord(self.next_lex_mode)
  File "/home/uke/oil/osh/word_parse.py", line 2334, in ReadWord
    w = self._ReadWord(word_mode)
  File "/home/uke/oil/osh/word_parse.py", line 2251, in _ReadWord
    return self._ReadCompoundOrRedir(lex_mode)
  File "/home/uke/oil/osh/word_parse.py", line 1899, in _ReadCompoundOrRedir
    return self._ReadCompoundOrRedir3(lex_mode, Id.Undefined_Tok, True)
  File "/home/uke/oil/osh/word_parse.py", line 2004, in _ReadCompoundOrRedir3
    part = self._ReadUnquotedLeftParts(is_triple_quoted)
  File "/home/uke/oil/osh/word_parse.py", line 910, in _ReadUnquotedLeftParts
    dq_part = self._ReadDoubleQuoted(self.cur_token)
  File "/home/uke/oil/osh/word_parse.py", line 1196, in _ReadDoubleQuoted
    self._ReadLikeDQ(left_token, False, parts)
  File "/home/uke/oil/osh/word_parse.py", line 1107, in _ReadLikeDQ
    tok, "\"")
UnboundLocalError: local variable 'tok' referenced before assignment
zsh24 Issue #1069 [59] N-I: arr=s should set RHS to arr[0]

stdout:
['v']
stderr:
ash24 Issue #1069 [59] N-I: arr=s should set RHS to arr[0]

stdout:
stderr: 
osh24 Issue #1069 [59] N-I: arr=s should set RHS to arr[0]

[osh stdout] Expected "['v', '2', '3']\n" Got "['v']\n"

stdout:
['v']
stderr:
zsh25 Issue #1069 [59] - Assigning Str to BashArray/BashAssoc should not remove BashArray/BashAssoc

stdout:
stderr: 
mksh25 Issue #1069 [59] - Assigning Str to BashArray/BashAssoc should not remove BashArray/BashAssoc

stdout:
set -A a
typeset a[0]=99
typeset a[1]=2
typeset a[2]=3
stderr:
mksh: <stdin>[7]: syntax error: '(' unexpected
ash25 Issue #1069 [59] - Assigning Str to BashArray/BashAssoc should not remove BashArray/BashAssoc

stdout:
stderr: 
osh25 Issue #1069 [59] - Assigning Str to BashArray/BashAssoc should not remove BashArray/BashAssoc

[osh stdout] Expected 'declare -a a=([0]="99" [1]="2" [2]="3")\ndeclare -A A=([0]="99" [k]="v" )\n' Got 'declare -- a=99\ndeclare -- A=99\n'

stdout:
declare -- a=99
declare -- A=99
stderr: