Bug #12237 » 0001-Demonstrate-Coverage-bug.patch
| ChangeLog | ||
|---|---|---|
|
Thu Mar 31 22:43:59 2016 Benoit Daloze <eregontp@gmail.com>
|
||
|
Thu Mar 31 19:16:16 2016 Koichi Sasada <ko1@atdot.net>
|
||
|
* gc.c: need to set initial value of GC_HEAP_FREE_SLOTS_GOAL_RATIO.
|
||
| test/coverage/test_coverage.rb | ||
|---|---|---|
|
# so coverage is not recorded.
|
||
|
Coverage.start
|
||
|
coverage_test_method
|
||
|
assert_equal 0, Coverage.result[tmp + '/test.rb'].size
|
||
|
assert_equal 0, p(Coverage.result)[tmp + '/test.rb'].size
|
||
|
# Restart coverage and '/test2.rb' is required after restart,
|
||
|
# so coverage is recorded.
|
||
|
Coverage.start
|
||
|
coverage_test_method
|
||
|
require tmp + '/test2.rb'
|
||
|
assert_equal 4, Coverage.result[tmp + '/test2.rb'].size
|
||
|
assert_equal 4, p(Coverage.result)[tmp + '/test2.rb'].size
|
||
|
}
|
||
|
}
|
||
|
ensure
|
||
| ... | ... | |
|
end
|
||
|
def test_big_code
|
||
|
skip
|
||
|
loaded_features = $".dup
|
||
|
Dir.mktmpdir {|tmp|
|
||
| ... | ... | |
|
}
|
||
|
}
|
||
|
ensure
|
||
|
$".replace loaded_features
|
||
|
#$".replace loaded_features
|
||
|
end
|
||
|
end unless ENV['COVERAGE']
|
||
| thread.c | ||
|---|---|---|
|
if (RB_TYPE_P(coverage, T_ARRAY) && !RBASIC_CLASS(coverage)) {
|
||
|
long line = rb_sourceline() - 1;
|
||
|
long count;
|
||
|
// if (line >= RARRAY_LEN(coverage)) {
|
||
|
if (RARRAY_AREF(coverage, line) == Qnil) {
|
||
|
return;
|
||
|
}
|
||
|
count = FIX2LONG(RARRAY_AREF(coverage, line)) + 1;
|
||
|
printf("Updating cov for %s:%ld : %ld size=%ld\n", rb_sourcefile(), line+1, count, RARRAY_LEN(coverage));
|
||
|
if (POSFIXABLE(count)) {
|
||
|
RARRAY_ASET(coverage, line, LONG2FIX(count));
|
||
|
}
|
||