mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* test/ruby/test_object.rb: new tests to achieve over 90% test
coverage of object.c, eval.c and eval_method.c. * test/ruby/test_module.rb: ditto. * test/ruby/test_trace.rb: ditto. * test/ruby/test_integer.rb: ditto. * test/ruby/test_float.rb: ditto. * test/ruby/test_method.rb: ditto. * test/ruby/test_variable.rb: ditto. * test/ruby/test_eval.rb: ditto. * test/ruby/test_exception.rb: ditto. * test/ruby/test_class.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
e4f8e61ddd
commit
f09f597422
11 changed files with 882 additions and 0 deletions
|
@ -1,6 +1,11 @@
|
|||
require 'test/unit'
|
||||
require_relative 'envutil'
|
||||
|
||||
class TestException < Test::Unit::TestCase
|
||||
def ruby(*r, &b)
|
||||
EnvUtil.rubyexec(*r, &b)
|
||||
end
|
||||
|
||||
def test_exception
|
||||
begin
|
||||
raise "this must be handled"
|
||||
|
@ -184,4 +189,61 @@ class TestException < Test::Unit::TestCase
|
|||
assert(false)
|
||||
end
|
||||
end
|
||||
|
||||
def test_raise_with_wrong_number_of_arguments
|
||||
assert_raise(TypeError) { raise nil }
|
||||
assert_raise(TypeError) { raise 1, 1 }
|
||||
assert_raise(ArgumentError) { raise 1, 1, 1, 1 }
|
||||
end
|
||||
|
||||
def test_errat
|
||||
ruby do |w, r, e|
|
||||
w.puts "p $@"
|
||||
w.close
|
||||
assert_equal("nil", r.read.chomp)
|
||||
assert_equal("", e.read.chomp)
|
||||
end
|
||||
|
||||
ruby do |w, r, e|
|
||||
w.puts "$@ = 1"
|
||||
w.close
|
||||
assert_equal("", r.read.chomp)
|
||||
assert_match(/\$! not set \(ArgumentError\)$/, e.read.chomp)
|
||||
end
|
||||
|
||||
ruby do |w, r, e|
|
||||
w.puts "begin"
|
||||
w.puts " raise"
|
||||
w.puts "rescue"
|
||||
w.puts " $@ = 1"
|
||||
w.puts "end"
|
||||
w.close
|
||||
assert_equal("", r.read.chomp)
|
||||
assert_match(/backtrace must be Array of String \(TypeError\)$/, e.read.chomp)
|
||||
end
|
||||
|
||||
ruby do |w, r, e|
|
||||
w.puts "begin"
|
||||
w.puts " raise"
|
||||
w.puts "rescue"
|
||||
w.puts " $@ = 'foo'"
|
||||
w.puts " raise"
|
||||
w.puts "end"
|
||||
w.close
|
||||
assert_equal("", r.read.chomp)
|
||||
assert_match(/^foo: unhandled exception$/, e.read.chomp)
|
||||
end
|
||||
|
||||
ruby do |w, r, e|
|
||||
w.puts "begin"
|
||||
w.puts " raise"
|
||||
w.puts "rescue"
|
||||
w.puts " $@ = %w(foo bar baz)"
|
||||
w.puts " raise"
|
||||
w.puts "end"
|
||||
w.close
|
||||
assert_equal("", r.read.chomp)
|
||||
assert_match(/^foo: unhandled exception\s+from bar\s+from baz$/, e.read.chomp)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue