Results for pipeline.test.sh

statusbashdashmkshzshosh
pass 2316211920
ok 11100
N-I 08341
BUG 10020
FAIL 00004
total2525252525
casebashdashmkshzshoshdescription
0pass pass pass pass pass Brace group in pipeline
1pass pass pass pass pass For loop starts pipeline
2pass pass pass pass pass While Loop ends pipeline
3pass pass pass BUG pass Redirect in Pipeline
details
4pass pass pass pass pass Pipeline comments
5pass pass pass pass pass Exit code is last status
6pass N-I pass N-I FAIL PIPESTATUS
detailsdetailsdetails
7pass N-I pass N-I FAIL PIPESTATUS is set on simple commands, but NOT in OSH
detailsdetailsdetails
8pass N-I pass N-I FAIL PIPESTATUS with shopt -s lastpipe
detailsdetailsdetails
9pass N-I N-I pass N-I |&
detailsdetailsdetails
10pass pass pass pass pass ! turns non-zero into zero
11pass pass pass pass pass ! turns zero into 1
12pass pass pass pass pass ! in if
13pass pass pass pass pass ! with ||
14pass pass pass pass pass ! with { }
15pass pass pass pass pass ! with ( )
16pass pass pass pass pass ! is not a command
17pass pass pass BUG pass Evaluation of argv[0] in pipeline occurs in child
details
18ok ok ok pass pass bash/dash/mksh run the last command is run in its own process
detailsdetailsdetails
19pass N-I N-I pass pass shopt -s lastpipe (always on in OSH)
detailsdetails
20pass N-I N-I pass pass shopt -s lastpipe (always on in OSH)
detailsdetails
21BUG N-I pass N-I FAIL SIGPIPE causes pipeline to die (regression for issue #295)
detailsdetailsdetailsdetails
22pass pass pass pass pass Nested pipelines
23pass pass pass pass pass Pipeline in eval
24pass N-I pass pass pass shopt -s lastpipe and shopt -s no_last_fork interaction
details
99 passed, 3 OK, 16 not implemented, 3 BUG, 4 failed, 0 timeouts, 0 cases skipped
4 failed under osh

Details on runs that didn't PASS

zsh3 Redirect in Pipeline

stdout:
1
stderr:
hi
dash6 PIPESTATUS

stdout:
stderr: 
dash: 5: Bad substitution
zsh6 PIPESTATUS

stdout:
stderr: 
osh6 PIPESTATUS

[osh stdout] Expected '1 2 3\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 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 1750, in _EvalBracedVarSub
    part_val = _ValueToPartValue(val, quoted or quoted2, part)
  File "/home/uke/oil/osh/word_eval.py", line 231, in _ValueToPartValue
    bash_impl.InternalStringArray_GetValues(val), quoted)
NameError: global name 'bash_impl' is not defined
dash7 PIPESTATUS is set on simple commands, but NOT in OSH

stdout:
stderr: 
zsh7 PIPESTATUS is set on simple commands, but NOT in OSH

stdout:
stderr: 
osh7 PIPESTATUS is set on simple commands, but NOT in OSH

[osh stdout] Expected 'pipestatus\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 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 1750, in _EvalBracedVarSub
    part_val = _ValueToPartValue(val, quoted or quoted2, part)
  File "/home/uke/oil/osh/word_eval.py", line 231, in _ValueToPartValue
    bash_impl.InternalStringArray_GetValues(val), quoted)
NameError: global name 'bash_impl' is not defined
dash8 PIPESTATUS with shopt -s lastpipe

stdout:
stderr: 
dash: 1: shopt: not found
dash: 6: Bad substitution
zsh8 PIPESTATUS with shopt -s lastpipe

stdout:
stderr: 
zsh: command not found: shopt
osh8 PIPESTATUS with shopt -s lastpipe

[osh stdout] Expected '1 2 3\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 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 1750, in _EvalBracedVarSub
    part_val = _ValueToPartValue(val, quoted or quoted2, part)
  File "/home/uke/oil/osh/word_eval.py", line 231, in _ValueToPartValue
    bash_impl.InternalStringArray_GetValues(val), quoted)
NameError: global name 'bash_impl' is not defined
dash9 |&

stdout:
stderr: 
dash: 1: Syntax error: "&" unexpected
mksh9 |&

stdout:
stderr: 
STDERR
close failed in file object destructor:
sys.excepthook is missing
lost sys.stderr
osh9 |&

stdout:
stderr: 
  stdout_stderr.py |& cat
                   ^~
[ stdin ]:1: fatal: |& isn't supported
zsh17 Evaluation of argv[0] in pipeline occurs in child

stdout:
1
cmd=echo
stderr:
bash18 bash/dash/mksh run the last command is run in its own process

stdout:
line=
stderr:
dash18 bash/dash/mksh run the last command is run in its own process

stdout:
line=
stderr:
mksh18 bash/dash/mksh run the last command is run in its own process

stdout:
line=
stderr:
dash19 shopt -s lastpipe (always on in OSH)

stdout:
line=
stderr:
dash: 1: shopt: not found
mksh19 shopt -s lastpipe (always on in OSH)

stdout:
line=
stderr:
mksh: <stdin>[1]: shopt: not found
dash20 shopt -s lastpipe (always on in OSH)

stdout:
i=0
stderr:
dash: 1: shopt: not found
dash: 4: i++: not found
dash: 4: i++: not found
dash: 4: i++: not found
mksh20 shopt -s lastpipe (always on in OSH)

stdout:
i=0
stderr:
mksh: <stdin>[1]: shopt: not found
bash21 SIGPIPE causes pipeline to die (regression for issue #295)

stdout:
1 0
stderr:
cat: write error: Broken pipe
dash21 SIGPIPE causes pipeline to die (regression for issue #295)

stdout:
stderr: 
cat: write error: Broken pipe
dash: 2: Bad substitution
zsh21 SIGPIPE causes pipeline to die (regression for issue #295)

stdout:
stderr: 
cat: write error: Broken pipe
osh21 SIGPIPE causes pipeline to die (regression for issue #295)

[osh stdout] Expected '141 0\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 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 1750, in _EvalBracedVarSub
    part_val = _ValueToPartValue(val, quoted or quoted2, part)
  File "/home/uke/oil/osh/word_eval.py", line 231, in _ValueToPartValue
    bash_impl.InternalStringArray_GetValues(val), quoted)
NameError: global name 'bash_impl' is not defined
dash24 shopt -s lastpipe and shopt -s no_last_fork interaction

stdout:
stderr: