Results for errexit-oil.test.sh

statusoshosh_.pyosh_.cc
pass 333230
FAIL 013
total333333
caseoshosh_.pyosh_.ccdescription
0pass pass pass command sub: errexit is NOT inherited and outer shell keeps going
1pass pass pass command sub with inherit_errexit only
2pass pass pass strict_errexit and assignment builtins (local, export, readonly ...)
3pass pass pass strict_errexit and command sub in export / readonly
4pass pass pass strict_errexit disallows pipeline
5pass pass pass strict_errexit allows singleton pipeline
6pass pass pass strict_errexit without errexit proc
7pass pass pass strict_errexit without errexit proc / command sub
8pass pass FAIL strict_errexit and errexit disabled
details
9pass pass pass command sub with command_sub_errexit only
10pass pass pass command_sub_errexit stops at first error
11pass pass pass command sub with inherit_errexit and command_sub_errexit
12pass pass pass command sub: last command fails but keeps going and exit code is 0
13pass pass pass global assignment with command sub: middle command fails
14pass pass pass global assignment with command sub: last command fails and it aborts
15pass pass pass local: middle command fails and keeps going
16pass pass pass local: last command fails and also keeps going
17pass pass pass local and inherit_errexit / command_sub_errexit
18pass pass pass global assignment when last status is failure
19pass pass pass strict_errexit prevents errexit from being disabled in function
20pass pass pass strict_errexit prevents errexit from being disabled in brace group
21pass pass pass strict_errexit prevents errexit from being disabled in subshell
22pass pass pass strict_errexit and ! && || if while until
23pass pass pass if pipeline doesn't fail fatally
24pass pass pass errexit is silent (verbose_errexit for Oil)
25pass pass FAIL command sub errexit preserves exit code
details
26pass pass pass What's in strict:all?
27pass pass pass command_sub_errexit causes local d=$(date %x) to fail
28pass pass pass command_sub_errexit and command sub in array
29pass pass pass OLD: command sub in conditional, with inherit_errexit
30pass pass pass OLD: command sub in redirect in conditional
31pass FAIL FAIL Regression
detailsdetails
32pass pass pass ShAssignment used as conditional
95 passed, 0 OK, 0 not implemented, 0 BUG, 4 failed, 0 timeouts, 0 cases skipped

Details on runs that didn't PASS

osh_.cc8 strict_errexit and errexit disabled

[osh_.cc stdout] Expected 'before\nx=\n', got ''

stdout:
stderr: 
osh_.cc25 command sub errexit preserves exit code

[osh_.cc status] Expected 42, got 1

stdout:
before
stderr:
osh_.py31 Regression

[osh_.py stdout] Expected 'hi\np\n', got 'hi\n'
[osh_.py status] Expected 0, got 1
[osh_.py stderr] Found 'Traceback (most recent'

stdout:
hi
stderr:
Traceback (most recent call last):
  File "/home/uke/oil/bin/osh_eval.py", line 66, in <module>
    sys.exit(main(sys.argv))
  File "/home/uke/oil/bin/osh_eval.py", line 34, in main
    None)
  File "/home/uke/oil/core/shell_native.py", line 486, in Main
    cmd_flags=cmd_eval.IsMainProgram)
  File "/home/uke/oil/core/main_loop.py", line 317, in Batch
    node = c_parser.ParseLogicalLine()  # can raise ParseError
  File "/home/uke/oil/osh/cmd_parse.py", line 2366, in ParseLogicalLine
    node = self._ParseCommandLine()
  File "/home/uke/oil/osh/cmd_parse.py", line 2227, in _ParseCommandLine
    child = self.ParseAndOr()
  File "/home/uke/oil/osh/cmd_parse.py", line 2146, in ParseAndOr
    return self._ParseAndOr()
  File "/home/uke/oil/osh/cmd_parse.py", line 2157, in _ParseAndOr
    child = self.ParsePipeline()
  File "/home/uke/oil/osh/cmd_parse.py", line 2089, in ParsePipeline
    child = self.ParseCommand()
  File "/home/uke/oil/osh/cmd_parse.py", line 1951, in ParseCommand
    return self.ParseOilProc()
  File "/home/uke/oil/osh/cmd_parse.py", line 1822, in ParseOilProc
    self.w_parser.ParseProc(node)
  File "/home/uke/oil/osh/word_parse.py", line 1112, in ParseProc
    last_token = self.parse_ctx.ParseProc(self.lexer, node)
  File "/home/uke/oil/frontend/parse_lib.py", line 396, in ParseProc
    pnode, last_token = self._ParseOil(lexer, grammar_nt.oil_proc)
  File "/home/uke/oil/frontend/parse_lib.py", line 329, in _ParseOil
    return e_parser.Parse(lexer, start_symbol)
  File "/home/uke/oil/oil_lang/expr_parse.py", line 318, in Parse
    self.push_parser.setup(start_symbol)
  File "/home/uke/oil/pgen2/parse.py", line 111, in setup
    self.stack = [_StackItem(self.grammar.dfas[start], 0, newnode)]
AttributeError: 'NoneType' object has no attribute 'dfas'
osh_.cc31 Regression

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

stdout:
stderr: 
osh_eval.stripped: cpp/leaky_pgen2_parse.cc:8: void parse::Parser::setup(int): Assertion `0' failed.