85 passed, 8 OK, 23 not implemented, 7 BUG, 7 failed, 0 timeouts, 0 cases skipped 7 failed under osh
| 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: |
| osh | 12 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
|
| zsh | 13 shopt -u expand_aliases and eval stdout: stderr: |
| mksh | 13 shopt -u expand_aliases and eval stdout: stderr: |
| ash | 13 shopt -u expand_aliases and eval stdout: stderr: |
| ash | 14 Issue #1069 [40] BUG: a=(declare v); "${a[@]}" fails stdout: stderr: |
| osh | 14 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: |
| ash | 15 Issue #1069 [40] BUG: a=declare; "$a" v=1 fails stdout: stderr: |
| zsh | 17 Issue #1069 [49] BUG: \return 0 does not work (other variations) stdout: status=3 status=3 unexpected status=0stderr: f4: command not found: return |
| ash | 17 Issue #1069 [49] BUG: \return 0 does not work (other variations) stdout: unexpected status=0 unexpected status=0 status=3stderr: ash: builtin: not found ash: builtin: not found |
| ash | 18 Issue #1069 [52] BUG: \builtin local v=1 fails stdout: stderr: |
| zsh | 19 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]=xstderr: zsh: bad pattern: a[5 zsh: bad pattern: a[1 zsh: bad pattern: a[1 |
| ash | 19 Issue #1069 [53] BUG: a[1 + 1]=2, etc. fails stdout: stderr: |
| osh | 19 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]=xstderr: 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)
|
| zsh | 20 Issue #1069 [53] - LHS array parsing a[1 + 2]=3 (see spec/array-assign for more) stdout: stderr: |
| mksh | 20 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]=66stderr: |
| ash | 20 Issue #1069 [53] - LHS array parsing a[1 + 2]=3 (see spec/array-assign for more) stdout: stderr: |
| osh | 20 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)
|
| bash | 21 Issue #1069 [56] BUG: declare -p unset does not print any error message stdout: stderr: bash: line 1: typeset: nonexistent: not found |
| zsh | 21 Issue #1069 [56] BUG: declare -p unset does not print any error message stdout: stderr: typeset: no such variable: nonexistent |
| mksh | 21 Issue #1069 [56] BUG: declare -p unset does not print any error message stdout: stderr: |
| ash | 21 Issue #1069 [56] BUG: declare -p unset does not print any error message stdout: stderr: ash: typeset: not found |
| osh | 23 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
|
| zsh | 24 Issue #1069 [59] N-I: arr=s should set RHS to arr[0] stdout: ['v']stderr: |
| ash | 24 Issue #1069 [59] N-I: arr=s should set RHS to arr[0] stdout: stderr: |
| osh | 24 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: |
| zsh | 25 Issue #1069 [59] - Assigning Str to BashArray/BashAssoc should not remove BashArray/BashAssoc stdout: stderr: |
| mksh | 25 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]=3stderr: mksh: <stdin>[7]: syntax error: '(' unexpected
|
| ash | 25 Issue #1069 [59] - Assigning Str to BashArray/BashAssoc should not remove BashArray/BashAssoc stdout: stderr: |
| osh | 25 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=99stderr: |