mirror of
https://github.com/ruby/ruby.git
synced 2025-09-23 20:44:00 +02:00
[ruby/irb] refactoring an error handling in IRB::Inspector
* moved rescue clause to `#inspect_value` to catch all failures in inspectors
* test with all (currently five kind of) inspect modes
- tweaked the input due to only `Marshal` can inspect(dump) a `BasicObject`
9d112fab8e
This commit is contained in:
parent
f594775230
commit
ed3264d37a
2 changed files with 22 additions and 17 deletions
|
@ -106,15 +106,22 @@ module TestIRB
|
|||
|
||||
def test_eval_object_without_inspect_method
|
||||
verbose, $VERBOSE = $VERBOSE, nil
|
||||
input = TestInputMethod.new([
|
||||
"BasicObject.new\n",
|
||||
])
|
||||
irb = IRB::Irb.new(IRB::WorkSpace.new(Object.new), input)
|
||||
out, err = capture_output do
|
||||
irb.eval_input
|
||||
all_assertions do |all|
|
||||
IRB::Inspector::INSPECTORS.invert.each_value do |mode|
|
||||
all.for(mode) do
|
||||
input = TestInputMethod.new([
|
||||
"[BasicObject.new, Class.new]\n",
|
||||
])
|
||||
irb = IRB::Irb.new(IRB::WorkSpace.new(Object.new), input)
|
||||
irb.context.inspect_mode = mode
|
||||
out, err = capture_output do
|
||||
irb.eval_input
|
||||
end
|
||||
assert_empty err
|
||||
assert_match(/\(Object doesn't support #inspect\)\n(=> )?\n/, out)
|
||||
end
|
||||
end
|
||||
end
|
||||
assert_empty err
|
||||
assert(/\(Object doesn't support #inspect\)\n(=> )?\n/, out)
|
||||
ensure
|
||||
$VERBOSE = verbose
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue