mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
eval_error.c: restore errinfo
* eval_error.c (error_print): restore errinfo for the case new excecption raised while printing the message. [ruby-core:55365] [Bug #8501] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
222d028808
commit
b82ded24cc
3 changed files with 20 additions and 1 deletions
|
@ -1,4 +1,8 @@
|
|||
Mon Jun 10 15:34:26 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
Mon Jun 10 15:35:34 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* eval_error.c (error_print): restore errinfo for the case new
|
||||
excecption raised while printing the message. [ruby-core:55365]
|
||||
[Bug #8501]
|
||||
|
||||
* eval_error.c (error_print): reduce calling setjmp.
|
||||
|
||||
|
|
|
@ -197,6 +197,7 @@ error_print(void)
|
|||
}
|
||||
error:
|
||||
TH_POP_TAG();
|
||||
th->errinfo = errinfo;
|
||||
rb_thread_raised_set(th, raised_flag);
|
||||
}
|
||||
|
||||
|
|
|
@ -85,8 +85,22 @@ EOW
|
|||
'-e', 'raise %[SomethingElse]']) {|f|
|
||||
f.read
|
||||
}
|
||||
status = $?
|
||||
assert_match(/SomethingBad/, out, "[ruby-core:9675]")
|
||||
assert_match(/SomethingElse/, out, "[ruby-core:9675]")
|
||||
assert_not_predicate(status, :success?)
|
||||
end
|
||||
|
||||
def test_exitcode_in_at_exit
|
||||
bug8501 = '[ruby-core:55365] [Bug #8501]'
|
||||
out = IO.popen([ruby, '-e', 'STDERR.reopen(STDOUT)',
|
||||
'-e', 'o = Object.new; def o.inspect; raise "[Bug #8501]"; end',
|
||||
'-e', 'at_exit{o.nope}']) {|f|
|
||||
f.read
|
||||
}
|
||||
status = $?
|
||||
assert_match(/undefined method `nope'/, out, bug8501)
|
||||
assert_not_predicate(status, :success?, bug8501)
|
||||
end
|
||||
|
||||
def test_propagate_exit_code
|
||||
|
|
Loading…
Reference in a new issue