Project

General

Profile

Feature #220

Updated by kevincolemaninc (kevin coleman) over 8 years ago

=begin 
  
  遠藤です。 
 
  Ruby 本体にカバレッジ測定機能を提供するのはどうでしょうか。 
 
  具体的には、ソースごとの各行の実行回数を表す定数 COVERAGE__ を 
  導入したいです。SCRIPT_LINES__ のカバレッジ版のようなイメージです。 
 
    1. ユーザが COVERAGE__ に {} を設定する 
    2. ユーザがソースファイルを require や load する 
    3. COVERAGE__[ファイル名] が各行の実行回数を表す配列を返すようになる 
       (この配列は実行に従って勝手に更新される) 
 
    ※ COVERAGE__ が設定されなければ何もしません。 
    ※ 空行など実行される可能性がない行は nil になります。 
    ※ eval は測定対象にしません。 
 
 
  動作の具体例です。 
 
  $ cat foo.rb 
  s = 0 
  10.times do |x| 
    s += x 
  end 
 
  if s == 45 
    p :ok 
  else 
    p :ng 
  end 
 
  $ ./ruby -e 'COVERAGE__ = {}; require "foo.rb"; p COVERAGE__' 
  :ok 
  {"/home/mame/work/ruby19/ruby/foo.rb"=>[1, 1, 10, nil, nil, 1, 1, nil, 0, nil]} 
 
  この配列は各行の実行回数を表しています。 
 
 
  上記の仕様を実装したものを添付します。 
 
  サンプルとして、lib/coverage.rb を同梱しています。 
  以下のように使えます。 
 
  $ ./ruby -rcoverage foo.rb 
 
  $ cat foo.rb.cov 
          1:      0:s = 0 
          1:      1:10.times do |x| 
         10:      2:    s += x 
          -:      3:end 
          -:      4: 
          1:      5:if s == 45 
          1:      6:    p :ok 
          -:      7:else 
      #####:      8:    p :ng 
          -:      9:end 
 
 
  また、RUNRUBYOPT="-rcoverage" make test-all した結果を集計して 
  みました。バグとかで不正確な結果になってる可能性はありますが、 
  このくらいは動くと言うことで。 
 
  $ ./ruby -e ' 
  aan = acn = 0 
  Dir["{lib,.ext}/**/*.cov"].each do |f| 
    an, cn = File.readlines(f).inject([0, 0]) do |(an, cn), l| 
      next [an, cn] if l.start_with?("          -") 
      an += 1 
      cn += 1 if !l.start_with?("      #####") 
      [an, cn] 
    end 
    puts "%s %.2f%% (%d/%d)" % [f, cn.to_f * 100 / an, cn, an] 
    aan += an 
    acn += cn 
  end 
  puts "(total) %.2f%% (%d/%d)" % [acn.to_f * 100 / aan, acn, aan] 
  ' 
  lib/drb/unix.rb.cov 86.11% (62/72) 
  lib/drb/drb.rb.cov 81.70% (491/601) 
  lib/drb/eq.rb.cov 100.00% (9/9) 
  lib/drb/ssl.rb.cov 83.90% (99/118) 
  lib/drb/acl.rb.cov 85.71% (66/77) 
  lib/drb/extservm.rb.cov 96.23% (51/53) 
  lib/drb/invokemethod.rb.cov 27.78% (5/18) 
  lib/irb/notifier.rb.cov 75.00% (54/72) 
  lib/irb/output-method.rb.cov 52.00% (13/25) 
  lib/irb/slex.rb.cov 20.39% (31/152) 
  lib/net/https.rb.cov 77.78% (14/18) 
  lib/net/http.rb.cov 87.73% (772/880) 
  lib/net/imap.rb.cov 35.81% (467/1304) 
  lib/net/protocol.rb.cov 59.49% (116/195) 
  lib/rss/content/1.0.rb.cov 100.00% (6/6) 
  lib/rss/content/2.0.rb.cov 100.00% (7/7) 
  lib/rss/1.0.rb.cov 98.08% (204/208) 
  lib/rss/image.rb.cov 96.26% (103/107) 
  lib/rss/syndication.rb.cov 96.55% (28/29) 
  lib/rss/maker/1.0.rb.cov 99.55% (223/224) 
  lib/rss/maker/image.rb.cov 100.00% (58/58) 
  lib/rss/maker/syndication.rb.cov 100.00% (10/10) 
  lib/rss/maker/taxonomy.rb.cov 97.67% (42/43) 
  lib/rss/maker/0.9.rb.cov 98.79% (245/248) 
  lib/rss/maker/2.0.rb.cov 98.45% (127/129) 
  lib/rss/maker/base.rb.cov 98.22% (441/449) 
  lib/rss/maker/dublincore.rb.cov 100.00% (42/42) 
  lib/rss/maker/entry.rb.cov 97.89% (93/95) 
  lib/rss/maker/feed.rb.cov 98.28% (228/232) 
  lib/rss/maker/itunes.rb.cov 97.62% (123/126) 
  lib/rss/maker/slash.rb.cov 100.00% (18/18) 
  lib/rss/maker/atom.rb.cov 98.73% (78/79) 
  lib/rss/maker/trackback.rb.cov 100.00% (31/31) 
  lib/rss/maker/content.rb.cov 100.00% (12/12) 
  lib/rss/taxonomy.rb.cov 98.75% (79/80) 
  lib/rss/rexmlparser.rb.cov 82.14% (23/28) 
  lib/rss/parser.rb.cov 93.00% (279/300) 
  lib/rss/0.9.rb.cov 99.51% (205/206) 
  lib/rss/xmlparser.rb.cov 6.67% (3/45) 
  lib/rss/utils.rb.cov 98.31% (58/59) 
  lib/rss/2.0.rb.cov 100.00% (49/49) 
  lib/rss/dublincore.rb.cov 100.00% (39/39) 
  lib/rss/xml.rb.cov 89.74% (35/39) 
  lib/rss/xml-stylesheet.rb.cov 100.00% (63/63) 
  lib/rss/itunes.rb.cov 91.83% (191/208) 
  lib/rss/rss.rb.cov 93.23% (592/635) 
  lib/rss/slash.rb.cov 100.00% (25/25) 
  lib/rss/atom.rb.cov 99.50% (397/399) 
  lib/rss/dublincore/1.0.rb.cov 100.00% (9/9) 
  lib/rss/dublincore/2.0.rb.cov 100.00% (8/8) 
  lib/rss/dublincore/atom.rb.cov 100.00% (10/10) 
  lib/rss/maker.rb.cov 96.55% (28/29) 
  lib/rss/trackback.rb.cov 100.00% (125/125) 
  lib/rss/xmlscanner.rb.cov 1.64% (1/61) 
  lib/rss/content.rb.cov 100.00% (19/19) 
  lib/rss/converter.rb.cov 30.00% (21/70) 
  lib/uri/ftp.rb.cov 82.46% (47/57) 
  lib/uri/ldaps.rb.cov 100.00% (5/5) 
  lib/uri/https.rb.cov 100.00% (5/5) 
  lib/uri/common.rb.cov 95.07% (135/142) 
  lib/uri/generic.rb.cov 90.04% (416/462) 
  lib/uri/ldap.rb.cov 74.23% (72/97) 
  lib/uri/http.rb.cov 93.33% (14/15) 
  lib/uri/mailto.rb.cov 81.40% (70/86) 
  lib/date/format.rb.cov 35.96% (233/648) 
  lib/rdoc/ri/paths.rb.cov 57.50% (23/40) 
  lib/rdoc/ri/display.rb.cov 81.89% (104/127) 
  lib/rdoc/ri/formatter.rb.cov 69.23% (216/312) 
  lib/rdoc/ri/driver.rb.cov 13.45% (30/223) 
  lib/rdoc/options.rb.cov 31.82% (70/220) 
  lib/rdoc/ri.rb.cov 100.00% (2/2) 
  lib/rdoc/rdoc.rb.cov 32.74% (37/113) 
  lib/rdoc/dot.rb.cov 47.06% (40/85) 
  lib/rdoc/markup.rb.cov 92.86% (117/126) 
  lib/rdoc/tokenstream.rb.cov 58.33% (7/12) 
  lib/rdoc/markup/lines.rb.cov 95.00% (57/60) 
  lib/rdoc/markup/to_flow.rb.cov 49.44% (44/89) 
  lib/rdoc/markup/to_test.rb.cov 100.00% (23/23) 
  lib/rdoc/markup/fragments.rb.cov 95.89% (140/146) 
  lib/rdoc/markup/inline.rb.cov 76.60% (36/47) 
  lib/rdoc/markup/attribute_manager.rb.cov 90.08% (118/131) 
  lib/rdoc/markup/preprocess.rb.cov 24.14% (7/29) 
  lib/rdoc/markup/formatter.rb.cov 83.33% (5/6) 
  lib/rdoc/stats.rb.cov 58.33% (7/12) 
  lib/rdoc/parsers/parse_c.rb.cov 49.80% (125/251) 
  lib/rdoc/parsers/parse_rb.rb.cov 13.46% (178/1322) 
  lib/rdoc/parsers/parse_simple.rb.cov 43.75% (7/16) 
  lib/rdoc/parsers/parse_f95.rb.cov 6.02% (53/881) 
  lib/rdoc/parsers/parserfactory.rb.cov 41.67% (10/24) 
  lib/rdoc/code_objects.rb.cov 57.22% (218/381) 
  lib/rdoc/diagram.rb.cov 10.00% (14/140) 
  lib/test/unit/ui/console/testrunner.rb.cov 92.96% (66/71) 
  lib/test/unit/ui/testrunnermediator.rb.cov 100.00% (32/32) 
  lib/test/unit/ui/testrunnerutilities.rb.cov 66.67% (10/15) 
  lib/test/unit/collector/objectspace.rb.cov 100.00% (18/18) 
  lib/test/unit/collector/dir.rb.cov 95.89% (70/73) 
  lib/test/unit/util/backtracefilter.rb.cov 100.00% (28/28) 
  lib/test/unit/util/observable.rb.cov 100.00% (31/31) 
  lib/test/unit/util/procwrapper.rb.cov 100.00% (12/12) 
  lib/test/unit/failure.rb.cov 95.00% (19/20) 
  lib/test/unit/testcase.rb.cov 91.78% (67/73) 
  lib/test/unit/testsuite.rb.cov 100.00% (31/31) 
  lib/test/unit/collector.rb.cov 100.00% (25/25) 
  lib/test/unit/autorunner.rb.cov 66.94% (81/121) 
  lib/test/unit/testresult.rb.cov 100.00% (30/30) 
  lib/test/unit/error.rb.cov 95.24% (20/21) 
  lib/test/unit/assertions.rb.cov 97.01% (227/234) 
  lib/test/unit/assertionfailederror.rb.cov 100.00% (3/3) 
  lib/test/unit.rb.cov 90.91% (10/11) 
  lib/yaml/rubytypes.rb.cov 74.58% (176/236) 
  lib/yaml/syck.rb.cov 100.00% (6/6) 
  lib/yaml/store.rb.cov 95.83% (23/24) 
  lib/yaml/tag.rb.cov 88.89% (16/18) 
  lib/yaml/stream.rb.cov 61.11% (11/18) 
  lib/yaml/constants.rb.cov 100.00% (15/15) 
  lib/yaml/types.rb.cov 49.02% (50/102) 
  lib/yaml/ypath.rb.cov 92.59% (25/27) 
  lib/yaml/error.rb.cov 100.00% (18/18) 
  lib/yaml/basenode.rb.cov 15.38% (16/104) 
  lib/tempfile.rb.cov 79.59% (78/98) 
  lib/rdoc.rb.cov 100.00% (11/11) 
  lib/fileutils.rb.cov 81.93% (544/664) 
  lib/rexml/node.rb.cov 44.44% (16/36) 
  lib/rexml/rexml.rb.cov 100.00% (7/7) 
  lib/rexml/attribute.rb.cov 72.22% (52/72) 
  lib/rexml/streamlistener.rb.cov 100.00% (16/16) 
  lib/rexml/parseexception.rb.cov 28.57% (8/28) 
  lib/rexml/syncenumerator.rb.cov 50.00% (7/14) 
  lib/rexml/undefinednamespaceexception.rb.cov 80.00% (4/5) 
  lib/rexml/encodings/UTF-8.rb.cov 100.00% (10/10) 
  lib/rexml/encodings/ICONV.rb.cov 100.00% (13/13) 
  lib/rexml/text.rb.cov 47.13% (74/157) 
  lib/rexml/xpath_parser.rb.cov 33.78% (125/370) 
  lib/rexml/functions.rb.cov 27.39% (43/157) 
  lib/rexml/encoding.rb.cov 73.33% (33/45) 
  lib/rexml/validation/validationexception.rb.cov 80.00% (4/5) 
  lib/rexml/source.rb.cov 54.92% (67/122) 
  lib/rexml/document.rb.cov 68.75% (55/80) 
  lib/rexml/xpath.rb.cov 80.65% (25/31) 
  lib/rexml/formatters/pretty.rb.cov 22.22% (16/72) 
  lib/rexml/formatters/default.rb.cov 78.43% (40/51) 
  lib/rexml/element.rb.cov 45.36% (181/399) 
  lib/rexml/doctype.rb.cov 37.60% (47/125) 
  lib/rexml/instruction.rb.cov 56.25% (18/32) 
  lib/rexml/attlistdecl.rb.cov 60.00% (12/20) 
  lib/rexml/entity.rb.cov 52.94% (45/85) 
  lib/rexml/parsers/baseparser.rb.cov 61.00% (183/300) 
  lib/rexml/parsers/xpathparser.rb.cov 45.59% (181/397) 
  lib/rexml/parsers/streamparser.rb.cov 83.33% (20/24) 
  lib/rexml/parsers/treeparser.rb.cov 51.72% (30/58) 
  lib/rexml/xmldecl.rb.cov 80.88% (55/68) 
  lib/rexml/comment.rb.cov 51.85% (14/27) 
  lib/rexml/output.rb.cov 61.54% (8/13) 
  lib/rexml/cdata.rb.cov 55.00% (11/20) 
  lib/rexml/xmltokens.rb.cov 100.00% (9/9) 
  lib/rexml/parent.rb.cov 58.67% (44/75) 
  lib/rexml/namespace.rb.cov 81.82% (18/22) 
  lib/rexml/child.rb.cov 70.00% (21/30) 
  lib/rinda/tuplespace.rb.cov 66.67% (152/228) 
  lib/rinda/rinda.rb.cov 67.47% (56/83) 
  lib/delegate.rb.cov 54.44% (49/90) 
  lib/ostruct.rb.cov 58.93% (33/56) 
  lib/pathname.rb.cov 83.97% (309/368) 
  lib/pp.rb.cov 41.95% (146/348) 
  lib/open-uri.rb.cov 18.48% (61/330) 
  lib/e2mmap.rb.cov 68.29% (28/41) 
  lib/rubygems/source_index.rb.cov 94.12% (208/221) 
  lib/rubygems/ext/rake_builder.rb.cov 90.91% (10/11) 
  lib/rubygems/ext/ext_conf_builder.rb.cov 100.00% (8/8) 
  lib/rubygems/ext/builder.rb.cov 100.00% (27/27) 
  lib/rubygems/ext/configure_builder.rb.cov 100.00% (8/8) 
  lib/rubygems/spec_fetcher.rb.cov 96.23% (102/106) 
  lib/rubygems/dependency_list.rb.cov 86.76% (59/68) 
  lib/rubygems/command_manager.rb.cov 85.39% (76/89) 
  lib/rubygems/package.rb.cov 64.81% (35/54) 
  lib/rubygems/server.rb.cov 78.66% (129/164) 
  lib/rubygems/exceptions.rb.cov 100.00% (28/28) 
  lib/rubygems/command.rb.cov 90.18% (147/163) 
  lib/rubygems/source_info_cache.rb.cov 93.20% (137/147) 
  lib/rubygems/rubygems_version.rb.cov 100.00% (2/2) 
  lib/rubygems/install_update_options.rb.cov 94.74% (36/38) 
  lib/rubygems/source_info_cache_entry.rb.cov 91.30% (21/23) 
  lib/rubygems/security.rb.cov 72.99% (100/137) 
  lib/rubygems/version.rb.cov 98.25% (56/57) 
  lib/rubygems/remote_fetcher.rb.cov 90.28% (130/144) 
  lib/rubygems/config_file.rb.cov 94.12% (112/119) 
  lib/rubygems/dependency.rb.cov 95.12% (39/41) 
  lib/rubygems/local_remote_options.rb.cov 97.73% (43/44) 
  lib/rubygems/digest/md5.rb.cov 50.00% (4/8) 
  lib/rubygems/digest/sha2.rb.cov 66.67% (4/6) 
  lib/rubygems/digest/sha1.rb.cov 66.67% (4/6) 
  lib/rubygems/commands/mirror_command.rb.cov 14.55% (8/55) 
  lib/rubygems/commands/fetch_command.rb.cov 85.71% (30/35) 
  lib/rubygems/commands/outdated_command.rb.cov 100.00% (19/19) 
  lib/rubygems/commands/pristine_command.rb.cov 95.00% (38/40) 
  lib/rubygems/commands/unpack_command.rb.cov 89.74% (35/39) 
  lib/rubygems/commands/dependency_command.rb.cov 89.58% (86/96) 
  lib/rubygems/commands/server_command.rb.cov 94.12% (16/17) 
  lib/rubygems/commands/cert_command.rb.cov 100.00% (45/45) 
  lib/rubygems/commands/update_command.rb.cov 64.84% (59/91) 
  lib/rubygems/commands/specification_command.rb.cov 88.10% (37/42) 
  lib/rubygems/commands/generate_index_command.rb.cov 41.18% (7/17) 
  lib/rubygems/commands/stale_command.rb.cov 93.75% (15/16) 
  lib/rubygems/commands/contents_command.rb.cov 91.89% (34/37) 
  lib/rubygems/commands/build_command.rb.cov 96.55% (28/29) 
  lib/rubygems/commands/sources_command.rb.cov 92.41% (73/79) 
  lib/rubygems/commands/query_command.rb.cov 98.33% (118/120) 
  lib/rubygems/commands/install_command.rb.cov 81.67% (49/60) 
  lib/rubygems/commands/check_command.rb.cov 33.33% (14/42) 
  lib/rubygems/commands/uninstall_command.rb.cov 66.67% (22/33) 
  lib/rubygems/commands/environment_command.rb.cov 95.45% (42/44) 
  lib/rubygems/uninstaller.rb.cov 15.46% (15/97) 
  lib/rubygems/installer.rb.cov 97.99% (195/199) 
  lib/rubygems/indexer.rb.cov 14.88% (25/168) 
  lib/rubygems/defaults.rb.cov 80.95% (17/21) 
  lib/rubygems/builder.rb.cov 91.67% (33/36) 
  lib/rubygems/format.rb.cov 92.59% (25/27) 
  lib/rubygems/gem_runner.rb.cov 51.61% (16/31) 
  lib/rubygems/package/tar_writer.rb.cov 98.89% (89/90) 
  lib/rubygems/package/tar_input.rb.cov 79.81% (83/104) 
  lib/rubygems/package/tar_reader/entry.rb.cov 100.00% (50/50) 
  lib/rubygems/package/tar_header.rb.cov 100.00% (63/63) 
  lib/rubygems/package/f_sync_dir.rb.cov 85.71% (6/7) 
  lib/rubygems/package/tar_output.rb.cov 86.27% (44/51) 
  lib/rubygems/package/tar_reader.rb.cov 84.62% (33/39) 
  lib/rubygems/gem_openssl.rb.cov 67.86% (19/28) 
  lib/rubygems/ext.rb.cov 100.00% (6/6) 
  lib/rubygems/user_interaction.rb.cov 83.19% (99/119) 
  lib/rubygems/dependency_installer.rb.cov 93.75% (105/112) 
  lib/rubygems/require_paths_builder.rb.cov 40.00% (4/10) 
  lib/rubygems/version_option.rb.cov 100.00% (17/17) 
  lib/rubygems/platform.rb.cov 94.57% (87/92) 
  lib/rubygems/requirement.rb.cov 100.00% (61/61) 
  lib/rubygems/gem_path_searcher.rb.cov 100.00% (19/19) 
  lib/rubygems/test_utilities.rb.cov 100.00% (54/54) 
  lib/rubygems/doc_manager.rb.cov 63.16% (48/76) 
  lib/rubygems/specification.rb.cov 90.23% (397/440) 
  lib/rubygems/validator.rb.cov 35.96% (32/89) 
  lib/date.rb.cov 48.27% (307/636) 
  lib/singleton.rb.cov 24.44% (33/135) 
  lib/prettyprint.rb.cov 39.55% (157/397) 
  lib/timeout.rb.cov 70.73% (29/41) 
  lib/set.rb.cov 91.18% (186/204) 
  lib/rubygems.rb.cov 91.90% (261/284) 
  lib/erb.rb.cov 95.47% (274/287) 
  lib/webrick.rb.cov 100.00% (17/17) 
  lib/tmpdir.rb.cov 60.38% (32/53) 
  lib/shellwords.rb.cov 77.78% (28/36) 
  lib/monitor.rb.cov 87.65% (71/81) 
  lib/rss.rb.cov 100.00% (12/12) 
  lib/thread.rb.cov 76.86% (93/121) 
  lib/open3.rb.cov 59.26% (16/27) 
  lib/pstore.rb.cov 72.47% (129/178) 
  lib/find.rb.cov 82.61% (19/23) 
  lib/xmlrpc/config.rb.cov 100.00% (10/10) 
  lib/xmlrpc/server.rb.cov 48.29% (113/234) 
  lib/xmlrpc/create.rb.cov 78.18% (86/110) 
  lib/xmlrpc/parser.rb.cov 51.20% (213/416) 
  lib/xmlrpc/utils.rb.cov 57.58% (38/66) 
  lib/xmlrpc/datetime.rb.cov 100.00% (36/36) 
  lib/xmlrpc/marshal.rb.cov 100.00% (29/29) 
  lib/xmlrpc/client.rb.cov 57.14% (100/175) 
  lib/xmlrpc/base64.rb.cov 80.00% (12/15) 
  lib/uri.rb.cov 100.00% (11/11) 
  lib/forwardable.rb.cov 75.00% (15/20) 
  lib/optparse.rb.cov 77.87% (482/619) 
  lib/yaml.rb.cov 72.53% (66/91) 
  lib/webrick/config.rb.cov 100.00% (13/13) 
  lib/webrick/server.rb.cov 77.31% (92/119) 
  lib/webrick/httprequest.rb.cov 90.53% (220/243) 
  lib/webrick/utils.rb.cov 90.72% (88/97) 
  lib/webrick/compat.rb.cov 100.00% (4/4) 
  lib/webrick/httpauth/digestauth.rb.cov 14.78% (30/203) 
  lib/webrick/httpauth/basicauth.rb.cov 86.11% (31/36) 
  lib/webrick/httpauth/htpasswd.rb.cov 93.33% (42/45) 
  lib/webrick/httpauth/htdigest.rb.cov 26.92% (14/52) 
  lib/webrick/httpauth/htgroup.rb.cov 27.27% (9/33) 
  lib/webrick/httpauth/authenticator.rb.cov 86.96% (40/46) 
  lib/webrick/httpauth/userdb.rb.cov 80.00% (8/10) 
  lib/webrick/version.rb.cov 100.00% (2/2) 
  lib/webrick/log.rb.cov 84.78% (39/46) 
  lib/webrick/httpservlet.rb.cov 100.00% (9/9) 
  lib/webrick/https.rb.cov 69.70% (23/33) 
  lib/webrick/httpproxy.rb.cov 83.77% (129/154) 
  lib/webrick/httputils.rb.cov 78.50% (168/214) 
  lib/webrick/ssl.rb.cov 60.29% (41/68) 
  lib/webrick/htmlutils.rb.cov 100.00% (10/10) 
  lib/webrick/httpservlet/filehandler.rb.cov 80.59% (191/237) 
  lib/webrick/httpservlet/prochandler.rb.cov 100.00% (11/11) 
  lib/webrick/httpservlet/abstract.rb.cov 71.43% (25/35) 
  lib/webrick/httpservlet/cgihandler.rb.cov 80.88% (55/68) 
  lib/webrick/httpservlet/erbhandler.rb.cov 38.46% (10/26) 
  lib/webrick/httpserver.rb.cov 87.68% (121/138) 
  lib/webrick/httpversion.rb.cov 90.00% (18/20) 
  lib/webrick/httpstatus.rb.cov 88.10% (37/42) 
  lib/webrick/httpauth.rb.cov 95.45% (21/22) 
  lib/webrick/httpresponse.rb.cov 67.93% (125/184) 
  lib/webrick/cookie.rb.cov 92.54% (62/67) 
  lib/webrick/accesslog.rb.cov 82.93% (34/41) 
  lib/logger.rb.cov 79.69% (153/192) 
  lib/cgi.rb.cov 17.86% (115/644) 
  lib/scanf.rb.cov 98.43% (188/191) 
  lib/ipaddr.rb.cov 78.35% (181/231) 
  lib/time.rb.cov 38.83% (160/412) 
  lib/English.rb.cov 100.00% (25/25) 
  lib/tsort.rb.cov 57.75% (41/71) 
  lib/rational.rb.cov 100.00% (10/10) 
  .ext/common/io/nonblock.rb.cov 64.29% (9/14) 
  .ext/common/json/add/core.rb.cov 97.83% (45/46) 
  .ext/common/json/add/rails.rb.cov 42.86% (9/21) 
  .ext/common/json/version.rb.cov 100.00% (7/7) 
  .ext/common/json/common.rb.cov 64.71% (77/119) 
  .ext/common/json/ext.rb.cov 100.00% (8/8) 
  .ext/common/openssl.rb.cov 100.00% (6/6) 
  .ext/common/ripper.rb.cov 100.00% (4/4) 
  .ext/common/digest/hmac.rb.cov 90.24% (37/41) 
  .ext/common/digest/sha2.rb.cov 46.43% (13/28) 
  .ext/common/ripper/lexer.rb.cov 60.56% (43/71) 
  .ext/common/ripper/sexp.rb.cov 90.48% (19/21) 
  .ext/common/ripper/filter.rb.cov 41.67% (10/24) 
  .ext/common/ripper/core.rb.cov 93.75% (15/16) 
  .ext/common/kconv.rb.cov 94.29% (66/70) 
  .ext/common/json.rb.cov 77.78% (7/9) 
  .ext/common/openssl/x509.rb.cov 83.33% (70/84) 
  .ext/common/openssl/ssl.rb.cov 95.65% (88/92) 
  .ext/common/openssl/cipher.rb.cov 81.82% (18/22) 
  .ext/common/openssl/buffering.rb.cov 83.09% (113/136) 
  .ext/common/openssl/bn.rb.cov 83.33% (5/6) 
  .ext/common/openssl/digest.rb.cov 95.24% (20/21) 
  .ext/common/digest.rb.cov 58.33% (14/24) 
  (total) 66.40% (23543/35456) 
 
  ご検討お願いします。 
 
  --  
  Yusuke ENDOH <mame@tsg.ne.jp> 
 
  Attachment: coverage.patch 
 
 =end 
 

Back