From: eregontp@... Date: 2016-04-06T14:21:48+00:00 Subject: [ruby-core:74831] [Ruby trunk Bug#12220] Why does Coverage keep previously-loaded files as empty arrays? Issue #12220 has been updated by Benoit Daloze. Yusuke Endoh wrote: > Xavier, thank you for your opinion. I also don't think that it is a good idea to change because of a spec, but I don't have a strong objection if the OP of #4796 is satisfied. So I agree with eregon's patch. Eregon, could you commit it? Will do, thank you! > I think this is not a bug but a feature, but I'd like to leave the decision to a branch maintainer. Of course, this part is unclear for me too for older versions. It would be nice if it behaves consistently on updates of existing releases though. ---------------------------------------- Bug #12220: Why does Coverage keep previously-loaded files as empty arrays? https://bugs.ruby-lang.org/issues/12220#change-57956 * Author: Benoit Daloze * Status: Open * Priority: Normal * Assignee: Benoit Daloze * ruby -v: ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux] * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- For instance, ruby -e 'require "coverage"; Coverage.start; require "set"; Coverage.result; Coverage.start; require "tmpdir"; p Coverage.result' {".../lib/ruby/2.2.0/set.rb"=>[], ".../lib/ruby/2.2.0/tmpdir.rb"=>[nil, nil, nil, nil, nil, nil, 1, 1, ...]} So Coverage.result stops coverage but also does some cleaning up. I think the most intuitive would be that the coverage Hash would be reset to be empty, but instead it's filled with empty arrays. As an example, this makes it fairly awkward to test and it enforces irreversible global state (https://github.com/ruby/spec/pull/219). I also do not see how this would be useful for coverage libraries. Is there a reason for this behavior? If not, would it be OK to clear the Hash when calling #result? ---Files-------------------------------- 0001-ext-coverage-coverage.c-Fully-reset-coverage-to-not-.patch (5.14 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: