Results for toysh.test.sh

statusbashmkshosh
pass 812
ok 020
N-I 030
BUG 020
FAIL 006
total888
casebashmkshoshdescription
0pass N-I FAIL @Q
detailsdetails
1pass ok FAIL extglob $IFS 1
detailsdetails
2pass pass FAIL extglob $IFS 2
details
3pass BUG FAIL char class / extglob
detailsdetails
4pass BUG FAIL patsub of $* - http://landley.net/notes.html#23-04-2020
detailsdetails
5pass ok pass Brace Expansion
details
6pass N-I pass {abc}<<< - http://landley.net/notes-2019.html#09-12-2019
details
7pass N-I FAIL slice of @ and @ - http://landley.net/notes.html#23-04-2020
detailsdetails
11 passed, 2 OK, 3 not implemented, 2 BUG, 6 failed, 0 timeouts, 0 cases skipped
6 failed under osh

Details on runs that didn't PASS

mksh0 @Q

stdout:
stderr: 
osh0 @Q

[osh stdout] Expected 'a b c d\na b c d\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 202, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1253, 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 401, in Batch2
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 2175, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1812, in _Dispatch
    status = self._ExecuteList(node.children)
  File "/home/uke/oil/osh/cmd_eval.py", line 2051, in _ExecuteList
    status = self._Execute(child)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1701, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 959, in _DoSimple
    status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 594, in _RunSimpleCommand
    run_flags)
  File "/home/uke/oil/core/vm.py", line 224, in RunSimpleCommand
    run_flags)
  File "/home/uke/oil/core/executor.py", line 420, in _RunSimpleCommand
    cmd_val)
  File "/home/uke/oil/core/vm.py", line 302, in _RunInvokable
    status = self.cmd_ev.RunProc(proc, cmd_val)
  File "/home/uke/oil/osh/cmd_eval.py", line 2389, in RunProc
    status = self._Execute(proc.body)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1820, in _Dispatch
    status = self._ExecuteList(node.children)
  File "/home/uke/oil/osh/cmd_eval.py", line 2051, in _ExecuteList
    status = self._Execute(child)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1719, in _Dispatch
    status = self._Execute(node.child)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1701, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 904, in _DoSimple
    allow_assign=True)
  File "/home/uke/oil/osh/word_eval.py", line 2566, in EvalWordSequence2
    self._EvalWordToParts(w, part_vals, EXTGLOB_FILES)
  File "/home/uke/oil/osh/word_eval.py", line 2048, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1932, in _EvalWordPart
    self._EvalDoubleQuoted(part.parts, part_vals)
  File "/home/uke/oil/osh/word_eval.py", line 1453, in _EvalDoubleQuoted
    self._EvalWordPart(p, part_vals, QUOTED)
  File "/home/uke/oil/osh/word_eval.py", line 1956, in _EvalWordPart
    self._EvalBracedVarSub(part, part_vals, quoted)
  File "/home/uke/oil/osh/word_eval.py", line 1705, in _EvalBracedVarSub
    part.name_tok, vsub_state)
  File "/home/uke/oil/osh/word_eval.py", line 1252, in _Nullary
    s for s in bash_impl.InternalStringArray_GetValues(
NameError: global name 'bash_impl' is not defined
mksh1 extglob $IFS 1

stdout:
abc)d
ab+(  ?d)
_tmp abc)d
stderr:
rm: cannot remove '_tmp': Is a directory
mksh: <stdin>[2]: shopt: not found
osh1 extglob $IFS 1

[osh stdout] Expected 'abc)d\nab+( ?d)\n_tmp abc)d\n', got 'abc)d\nabc)d\n_tmp abc)d\n'

stdout:
abc)d
abc)d
_tmp abc)d
stderr:
rm: cannot remove '_tmp': Is a directory
osh2 extglob $IFS 2

[osh stdout] Expected '=+(c=\n=d)=\n', got '=+(c d)=\n'

stdout:
=+(c d)=
stderr:
mksh3 char class / extglob

stdout:
[hello]
b
[+()]
[+(])
stderr:
mksh: <stdin>[1]: shopt: not found
rm: cannot remove '_tmp': Is a directory
osh3 char class / extglob

[osh stdout] Expected '[hello]\nb\n+\n[+(])\n', got '[hello]\nb\n[+()]\n[+(])\n'

stdout:
[hello]
b
[+()]
[+(])
stderr:
rm: cannot remove '_tmp': Is a directory
mksh4 patsub of $* - http://landley.net/notes.html#23-04-2020

stdout:
stderr: 
mksh: <stdin>[1]: ${*/b c/ghi}: bad substitution
osh4 patsub of $* - http://landley.net/notes.html#23-04-2020

[osh stdout] Expected 'a b c d\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 202, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1253, 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 401, in Batch2
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 2175, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1812, in _Dispatch
    status = self._ExecuteList(node.children)
  File "/home/uke/oil/osh/cmd_eval.py", line 2051, in _ExecuteList
    status = self._Execute(child)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1701, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 959, in _DoSimple
    status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 594, in _RunSimpleCommand
    run_flags)
  File "/home/uke/oil/core/vm.py", line 224, in RunSimpleCommand
    run_flags)
  File "/home/uke/oil/core/executor.py", line 420, in _RunSimpleCommand
    cmd_val)
  File "/home/uke/oil/core/vm.py", line 302, in _RunInvokable
    status = self.cmd_ev.RunProc(proc, cmd_val)
  File "/home/uke/oil/osh/cmd_eval.py", line 2389, in RunProc
    status = self._Execute(proc.body)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1820, in _Dispatch
    status = self._ExecuteList(node.children)
  File "/home/uke/oil/osh/cmd_eval.py", line 2051, in _ExecuteList
    status = self._Execute(child)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1719, in _Dispatch
    status = self._Execute(node.child)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1701, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 904, in _DoSimple
    allow_assign=True)
  File "/home/uke/oil/osh/word_eval.py", line 2566, in EvalWordSequence2
    self._EvalWordToParts(w, part_vals, EXTGLOB_FILES)
  File "/home/uke/oil/osh/word_eval.py", line 2048, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1956, in _EvalWordPart
    self._EvalBracedVarSub(part, part_vals, quoted)
  File "/home/uke/oil/osh/word_eval.py", line 1729, in _EvalBracedVarSub
    val = self._PatSub(val, op)
  File "/home/uke/oil/osh/word_eval.py", line 1132, in _PatSub
    values = bash_impl.InternalStringArray_GetValues(array_val)
NameError: global name 'bash_impl' is not defined
mksh5 Brace Expansion

stdout:
~/pwd ~root/pwd
{~,~root}/pwd
~/pwd ~root/pwd
stderr:
mksh6 {abc}<<< - http://landley.net/notes-2019.html#09-12-2019

stdout:
stderr: 
mksh: <stdin>[1]: syntax error: '{abc}' unexpected
mksh7 slice of @ and @ - http://landley.net/notes.html#23-04-2020

stdout:
stderr: 
mksh: b: not found
mksh: <stdin>[3]: ${@: 3:5}: bad substitution
mksh: <stdin>[5]: ${*: 3:5}: bad substitution
osh7 slice of @ and @ - http://landley.net/notes.html#23-04-2020

[osh stdout] Expected '=ef=\n=gh=\n=ij=\n=kl=\n=mn=\n=ef gh ij kl mn=\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 202, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/oils_for_unix.py", line 171, in main
    return AppBundleMain(argv)
  File "/home/uke/oil/bin/oils_for_unix.py", line 141, in AppBundleMain
    return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
  File "/home/uke/oil/core/shell.py", line 1253, 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 401, in Batch2
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 2175, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1812, in _Dispatch
    status = self._ExecuteList(node.children)
  File "/home/uke/oil/osh/cmd_eval.py", line 2051, in _ExecuteList
    status = self._Execute(child)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1701, in _Dispatch
    status = self._DoSimple(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 959, in _DoSimple
    status = self._RunSimpleCommand(cmd_val, cmd_st, run_flags)
  File "/home/uke/oil/osh/cmd_eval.py", line 594, in _RunSimpleCommand
    run_flags)
  File "/home/uke/oil/core/vm.py", line 224, in RunSimpleCommand
    run_flags)
  File "/home/uke/oil/core/executor.py", line 420, in _RunSimpleCommand
    cmd_val)
  File "/home/uke/oil/core/vm.py", line 302, in _RunInvokable
    status = self.cmd_ev.RunProc(proc, cmd_val)
  File "/home/uke/oil/osh/cmd_eval.py", line 2389, in RunProc
    status = self._Execute(proc.body)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1820, in _Dispatch
    status = self._ExecuteList(node.children)
  File "/home/uke/oil/osh/cmd_eval.py", line 2051, in _ExecuteList
    status = self._Execute(child)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1719, in _Dispatch
    status = self._Execute(node.child)
  File "/home/uke/oil/osh/cmd_eval.py", line 1974, in _Execute
    status = self._Dispatch(node, cmd_st)
  File "/home/uke/oil/osh/cmd_eval.py", line 1861, in _Dispatch
    status = self._DoForEach(node)
  File "/home/uke/oil/osh/cmd_eval.py", line 1261, in _DoForEach
    iter_list = self.word_ev.EvalWordSequence(words)
  File "/home/uke/oil/osh/word_eval.py", line 2623, in EvalWordSequence
    cmd_val = self.EvalWordSequence2(words, False)
  File "/home/uke/oil/osh/word_eval.py", line 2566, in EvalWordSequence2
    self._EvalWordToParts(w, part_vals, EXTGLOB_FILES)
  File "/home/uke/oil/osh/word_eval.py", line 2048, in _EvalWordToParts
    self._EvalWordPart(p, word_part_vals, eval_flags)
  File "/home/uke/oil/osh/word_eval.py", line 1932, in _EvalWordPart
    self._EvalDoubleQuoted(part.parts, part_vals)
  File "/home/uke/oil/osh/word_eval.py", line 1453, in _EvalDoubleQuoted
    self._EvalWordPart(p, part_vals, QUOTED)
  File "/home/uke/oil/osh/word_eval.py", line 1956, in _EvalWordPart
    self._EvalBracedVarSub(part, part_vals, quoted)
  File "/home/uke/oil/osh/word_eval.py", line 1734, in _EvalBracedVarSub
    val = self._Slice(val, op, var_name, part)
  File "/home/uke/oil/osh/word_eval.py", line 1168, in _Slice
    val = _PerformSlice(val, begin, length, has_length, part, arg0_val)
  File "/home/uke/oil/osh/word_eval.py", line 394, in _PerformSlice
    if bash_impl.BigInt_Less(offset, mops.ZERO):
NameError: global name 'bash_impl' is not defined