Feature #217
test-coverage measurement
| Status: | Closed | Start date: | ||
|---|---|---|---|---|
| Priority: | Low | Due date: | ||
| Assignee: | - | % Done: | 100% |
|
| Category: | - | |||
| Target version: | - |
Description
遠藤です。 2008/07/01 13:04 Yukihiro Matsumoto <matz@ruby-lang.org>: > 一晩考えましたが、内部実装はどうでもよいように思えてきたので、 > そのままコミットしてください。ドキュメントに「直接使うべきで > ない」とか書いてあると助かります。 一旦そのままコミットしました。 ささださんから「coverage.so を require したら測定開始するように してほしい」との意見を頂きました。 COVERAGE__ をやめて、以下のような仕様にしようかと思っています。 1. ユーザが coverage.so を require する (Coverage モジュールが 定義される) 2. ユーザがソースファイルを require や load する 3. Coverage.result が旧 COVERAGE__ と同等のハッシュを返す (Coverage.result[ファイル名] でカバレッジが得られる) ちなみに、今のところ coverage.so は計測開始のフラグを立てるのと 計測結果を得る API を提供するだけで、計測自体はほとんど本体で 行われます。 また、カバレッジ測定の外部仕様である lib/coverage.rb はもっと 検討する事項があります。こっちについてはもうちょっと考えた後で 別スレッドで意見を募りたいと思います。 -- Yusuke ENDOH <mame@tsg.ne.jp>
Associated revisions
* ext/coverage/coverage.c, ext/coverage/extconf.rb: eliminate
COVERAGE__ and introduce coverage.so instead. How to measure
coverage: (1) require "coverage.so", (2) require or load Ruby source
file, and (3) Coverage.result will return the same hash as COVERAGE__.
[ruby-dev:35324]
* thread.c (rb_enable_coverages): start coverage measurement by using
rb_add_event_hook.
* thread.c (rb_get_coverages): returns current results of coverage
measurement.
* include/ruby/intern.h: add prototype for above two functions.
* vm_core.h, vm.c: add field of coverages to rb_vm_t.
* insns.def (trace): remove special handling for COVERAGE__.
* iseq.c (prepare_iseq_build): switch COVERAGE__ to
rb_get_coverages().
* parse.y (coverage): ditto.
* thread.c (clear_coverage): ditto.
* lib/coverage.rb: use coverage.so instead of COVERAGE__.
History
Updated by mame (Yusuke Endoh) almost 4 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
Applied in changeset r17857.