Граф коммитов

8 Коммитов

Автор SHA1 Сообщение Дата
mame 0a6816ecd7 Revamp method coverage to support define_method
Traditionally, method coverage measurement was implemented by inserting
`trace2` instruction to the head of method iseq.  So, it just measured
methods defined by `def` keyword.

This commit drastically changes the measuring mechanism of method
coverage; at `RUBY_EVENT_CALL`, it keeps a hash from rb_method_entry_t*
to runs (i.e., it counts the runs per method entry), and at
`Coverage.result`, it creates the result hash by enumerating all
`rb_method_entry_t*` objects (by `ObjectSpace.each_object`).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-12-05 07:16:42 +00:00
mame 732fe8014a run-lcov.rb: support overwritten tmpdir path
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60029 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-09-26 04:59:39 +00:00
mame d297bb1496 tool/run-lcov.rb: Filter tmp files out
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60028 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-09-26 04:51:09 +00:00
mame 0c482713dd tool/run-lcov.rb: Filter test files out
And refactoring.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-09-25 14:04:59 +00:00
mame b366c4d410 run-lcov.rb: wrongly used unique ID as lineno
The second value of key of branch/method coverage is unique ID, not
lineno.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-09-17 04:30:30 +00:00
mame e43f304478 Measure branch and method coverage for `make test-all`
To measure coverage of C code:
`./configure --enable-gcov && make && make exam && make lcov`

To measure coverage of Ruby code:
`./configure && make && make exam COVERAGE=true && make lcov`

To measure coverage of both languages at a time:
`./configure --enable-gcov && make && make exam COVERAGE=true && make lcov`

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59890 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-09-14 06:07:05 +00:00
mame 0919c05501 Support LCOV visualization for both C and Ruby code
`./configure --enable-gcov && make exam && make lcov` will create
`lcov-c-out/index.html` for coverage of C code of the interpreter.
`make exam COVERAGE=true && make lcov` will create
`lcov-rb-out/index.html` for coverage of Ruby stdlib code.
Using both `--enable-gcov` and `COVERAGE=true` will create
`lcov-out/index.html` for total coverage.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59794 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-09-09 13:09:21 +00:00
mame f85bc2906b Use lcov visualizer for gcov statistics
This experimental feature is only for Ruby-core team, not for casual users.

Usage: `./configure --enable-gcov && make && make exam && make lcov`

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59262 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-07-04 16:02:19 +00:00