Results for errexit.test.sh

statusoshosh_.pyosh_.cc
pass 313021
FAIL 0110
total313131
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 set +o errexit with 2 levels of ignored
20pass pass pass setting errexit in a subshell works but doesn't affect parent shell
21pass pass pass set errexit while it's ignored in a subshell (moot with strict_errexit)
22pass pass pass shopt -s strict:all || true while errexit is on
23pass pass pass errexit double guard
24pass FAIL FAIL background processes respect errexit
detailsdetails
25pass pass FAIL pipeline process respects errexit
details
26pass pass FAIL compound command
details
27pass pass FAIL while loop
details
28pass pass pass set -e enabled in function (regression)
29pass pass pass set -e in function #2
30pass pass FAIL Command sub exit code is lost
details
82 passed, 0 OK, 0 not implemented, 0 BUG, 11 failed, 0 timeouts, 0 cases skipped

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 8679)
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_.py24 background processes respect errexit

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

stdout:
one
stderr:
[%1] Started PID 10474
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 497, 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 1470, in ExecuteAndCatch
    status = self._Execute(node)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 1317, in _Execute
    status, check_errexit = self._Dispatch(node, pipeline_st)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 626, in _Dispatch
    status = self._RunSimpleCommand(cmd_val, node.do_fork)
  File "/home/andy/git/oilshell/oil/osh/cmd_eval.py", line 476, in _RunSimpleCommand
    return self.shell_ex.RunSimpleCommand(cmd_val, do_fork)
  File "/home/andy/git/oilshell/oil/core/executor.py", line 223, in RunSimpleCommand
    return self.RunBuiltin(builtin_id, cmd_val)
  File "/home/andy/git/oilshell/oil/core/executor.py", line 116, 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 10474)
osh_.cc24 background processes respect errexit

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

stdout:
one
stderr:
[%1] Started PID 10543
osh_eval.dbg: mycpp/mylib.h:670: 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 10543)
osh_.cc25 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_.cc26 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_.cc27 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.
osh_.cc30 Command sub exit code is lost

[osh_.cc stdout] Expected 'ft\nstatus=0\nf\nstatus=0\nft\nstatus=0\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.