Project

General

Profile

Bug #12237 » 0001-Demonstrate-Coverage-bug.patch

Eregon (Benoit Daloze), 03/31/2016 01:44 PM

View differences:

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));
}
(1-1/2)