Feature #217

test-coverage measurement

Added by mame (Yusuke Endoh) almost 4 years ago. Updated about 1 year ago.

[ruby-dev:35324]
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

Revision 17857
Added by mame (Yusuke Endoh) almost 4 years ago

* 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.

Also available in: Atom PDF