ruby-changes:22132
From: kosaki <ko1@a...>
Date: Tue, 3 Jan 2012 09:27:56 +0900 (JST)
Subject: [ruby-changes:22132] kosaki:r34181 (ruby_1_9_3): merge revision(s) 33030:
kosaki 2012-01-03 09:27:45 +0900 (Tue, 03 Jan 2012) New Revision: 34181 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=34181 Log: 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. Modified files: branches/ruby_1_9_3/ChangeLog branches/ruby_1_9_3/test/coverage/test_coverage.rb branches/ruby_1_9_3/thread.c branches/ruby_1_9_3/version.h Index: ruby_1_9_3/ChangeLog =================================================================== --- ruby_1_9_3/ChangeLog (revision 34180) +++ ruby_1_9_3/ChangeLog (revision 34181) @@ -1,3 +1,11 @@ +Mon Jan 2 19:27:18 2012 Yusuke Endoh <mame@t...> + + * 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. + Mon Jan 2 19:08:54 2012 KOSAKI Motohiro <kosaki.motohiro@g...> * thread_pthread.c (gvl_yield): don't prevent concurrent sched_yield(). Index: ruby_1_9_3/thread.c =================================================================== --- ruby_1_9_3/thread.c (revision 34180) +++ ruby_1_9_3/thread.c (revision 34181) @@ -4804,7 +4804,7 @@ long line = rb_sourceline() - 1; long count; if (RARRAY_PTR(coverage)[line] == Qnil) { - rb_bug("bug"); + return; } count = FIX2LONG(RARRAY_PTR(coverage)[line]) + 1; if (POSFIXABLE(count)) { Index: ruby_1_9_3/version.h =================================================================== --- ruby_1_9_3/version.h (revision 34180) +++ ruby_1_9_3/version.h (revision 34181) @@ -1,10 +1,10 @@ #define RUBY_VERSION "1.9.3" -#define RUBY_PATCHLEVEL 8 +#define RUBY_PATCHLEVEL 9 -#define RUBY_RELEASE_DATE "2012-01-03" +#define RUBY_RELEASE_DATE "2012-01-02" #define RUBY_RELEASE_YEAR 2012 #define RUBY_RELEASE_MONTH 1 -#define RUBY_RELEASE_DAY 3 +#define RUBY_RELEASE_DAY 2 #include "ruby/version.h" Index: ruby_1_9_3/test/coverage/test_coverage.rb =================================================================== --- ruby_1_9_3/test/coverage/test_coverage.rb (revision 34180) +++ ruby_1_9_3/test/coverage/test_coverage.rb (revision 34181) @@ -31,13 +31,34 @@ 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 + $".replace loaded_features + end end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/