Results for errexit.test.sh

statusoshosh_.pyosh_.cc
pass 272618
FAIL 1210
total282828
caseoshosh_.pyosh_.ccdescription
0pass pass pass errexit aborts early
1pass pass FAIL errexit for nonexistent command
details
2pass pass FAIL errexit aborts early on pipeline
details
3pass pass pass errexit with { }
4pass pass pass errexit with if and { }
5pass pass FAIL errexit with ||
details
6pass pass FAIL errexit with &&
details
7pass pass pass errexit test && -- from gen-module-init
8pass pass pass errexit test && and fail
9pass pass pass errexit and loop
10pass pass pass errexit and brace group { }
11pass pass FAIL errexit and time { }
details
12pass pass pass errexit with !
13pass pass pass errexit with ! and ;
14pass pass pass errexit with while/until
15pass pass pass errexit with (( ))
16pass pass pass errexit with subshell
17pass pass pass set -o errexit while it's being ignored (moot with strict_errexit)
18pass pass pass set +o errexit while it's being ignored (moot with strict_errexit)
19pass pass pass setting errexit in a subshell works but doesn't affect parent shell
20pass pass pass set errexit while it's ignored in a subshell (moot with strict_errexit)
21pass pass pass shopt -s strict:all || true while errexit is on
22pass pass pass errexit double guard
23pass FAIL FAIL background processes respect errexit
detailsdetails
24pass pass FAIL pipeline process respects errexit
details
25pass pass FAIL compound command
details
26pass pass FAIL while loop
details
27FAIL FAIL FAIL set -e enabled in function (regression)
detailsdetailsdetails
71 passed, 0 OK, 0 not implemented, 0 BUG, 13 failed, 0 timeouts, 0 cases skipped
1 failed under osh

Details on runs that didn't PASS

osh_.cc1 errexit for nonexistent command

[osh_.cc status] Expected 127, got 1

stdout:
stderr: 
  nonexistent__ZZ
  ^~~~~~~~~~~~~~~
[ stdin ]:2: 'nonexistent__ZZ' not found
  nonexistent__ZZ
  ^~~~~~~~~~~~~~~
[ stdin ]:2: fatal: Exiting with status 127 (command in PID 18990)
osh_.cc2 errexit aborts early on pipeline

[osh_.cc status] Expected 1, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc5 errexit with ||

[osh_.cc stdout] Expected 'ok\n', got ''
[osh_.cc status] Expected 0, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc6 errexit with &&

[osh_.cc status] Expected 1, got -6

stdout:
ok
stderr:
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc11 errexit and time { }

[osh_.cc status] Expected 1, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/core_pyos.h:30: Tuple3<double, double, double> pyos::Time(): Assertion `0' failed.
osh_.py23 background processes respect errexit

[osh_.py stderr] Found 'Traceback (most recent'

stdout:
one
stderr:
[%1] Started PID 20417
Traceback (most recent call last):
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 71, in <module>
    sys.exit(main(sys.argv))
  File "/home/andy/git/oilshell/oil/bin/osh_eval.py", line 39, in main
    status = pure.Main('osh', arg_r, environ, login_shell, loader, None)
  File "/home/andy/git/oilshell/oil/core/pure.py", line 451, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/andy/git/oilshell/oil/core/main_loop.py", line 168, in Batch
    is_return, is_fatal = cmd_ev.ExecuteAndCatch(node, cmd_flags=cmd_flags)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1438, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1318, in _Execute
    status, check_errexit = self._Dispatch(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 570, in _Dispatch
    status = self._RunSimpleCommand(cmd_val, node.do_fork)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 481, in _RunSimpleCommand
    return self.shell_ex.RunSimpleCommand(cmd_val, do_fork)
  File "/home/andy/git/oilshell/oil/core/executor.py", line 231, in RunSimpleCommand
    return self.RunBuiltin(builtin_id, cmd_val)
  File "/home/andy/git/oilshell/oil/core/executor.py", line 112, in RunBuiltin
    builtin_func = self.builtins[builtin_id]
KeyError: 32
  { echo one; false; echo two; exit 42; } &
              ^~~~~
[ stdin ]:2: fatal: Exiting with status 1 (command in PID 20417)
osh_.cc23 background processes respect errexit

[osh_.cc status] Expected 1, got -6

stdout:
one
stderr:
[%1] Started PID 20432
osh_eval.dbg: mycpp/mylib.h:700: V Dict<int, vm::_Builtin *>::index(K) [K = int, V = vm::_Builtin *]: Assertion `0' failed.
  { echo one; false; echo two; exit 42; } &
              ^~~~~
[ stdin ]:2: fatal: Exiting with status 1 (command in PID 20432)
osh_.cc24 pipeline process respects errexit

[osh_.cc stdout] Expected 'one\n[three]\n', got ''
[osh_.cc status] Expected 1, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:106: Tuple2<int, int> posix::pipe(): Assertion `0' failed.
osh_.cc25 compound command

[osh_.cc status] Expected 1, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh_.cc26 while loop

[osh_.cc status] Expected 1, got -6

stdout:
stderr: 
osh_eval.dbg: cpp/posix.h:139: void posix::dup2(int, int): Assertion `0' failed.
osh27 set -e enabled in function (regression)

[osh stdout] Expected 'should be executed\nshould be executed\n', got ''
[osh status] Expected 0, got 1

stdout:
stderr: 
    false
    ^~~~~
[ stdin ]:4: fatal: Exiting with status 1 (command in PID 20818)
osh_.py27 set -e enabled in function (regression)

[osh_.py stdout] Expected 'should be executed\nshould be executed\n', got ''
[osh_.py status] Expected 0, got 1

stdout:
stderr: 
    false
    ^~~~~
[ stdin ]:4: fatal: Exiting with status 1 (command in PID 20867)
osh_.cc27 set -e enabled in function (regression)

[osh_.cc stdout] Expected 'should be executed\nshould be executed\n', got ''
[osh_.cc status] Expected 0, got 1

stdout:
stderr: 
    false
    ^~~~~
[ stdin ]:4: fatal: Exiting with status 1 (command in PID 20888)