diff options
author | kosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-01-03 00:27:45 +0000 |
---|---|---|
committer | kosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-01-03 00:27:45 +0000 |
commit | d0ad683bb238f22c9e90aa4e429e1298c89dec7c (patch) | |
tree | 9478ee735aa28baeff69c916a88c763ebece19d0 /test/coverage | |
parent | 60f63dc3858c4cf3bd471e5d44078eb7ef977e7d (diff) |
merge revision(s) 33030:
* thread.c (update_coverage): skip coverage count up if the current
line is out of the way. rb_sourceline() is unreliable when source
code is big. [ruby-dev:44413]
* test/coverage/test_coverage.rb: add a test for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@34181 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/coverage')
-rw-r--r-- | test/coverage/test_coverage.rb | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/test/coverage/test_coverage.rb b/test/coverage/test_coverage.rb index 56966b1f0e..4d785c3c0e 100644 --- a/test/coverage/test_coverage.rb +++ b/test/coverage/test_coverage.rb @@ -31,10 +31,31 @@ class TestCoverage < Test::Unit::TestCase Coverage.start require tmp + '/test.rb' - Coverage.result + assert_equal 3, Coverage.result[tmp + '/test.rb'].size Coverage.start coverage_test_method - assert_equal 1, Coverage.result.size + assert_equal 0, Coverage.result[tmp + '/test.rb'].size + } + } + ensure + $".replace loaded_features + end + + def test_big_code + loaded_features = $".dup + + Dir.mktmpdir {|tmp| + Dir.chdir(tmp) { + File.open("test.rb", "w") do |f| + f.puts "p\n" * 10000 + f.puts "def ignore(x); end" + f.puts "ignore([1" + f.puts "])" + end + + Coverage.start + require tmp + '/test.rb' + assert_equal 10003, Coverage.result[tmp + '/test.rb'].size } } ensure |