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));
|
||
}
|