From: nagachika00@... Date: 2021-05-22T06:51:59+00:00 Subject: [ruby-core:103966] [Ruby master Bug#17868] Strange result of Coverage for while-in-while Issue #17868 has been updated by nagachika (Tomoyuki Chikanaga). Backport changed from 2.6: REQUIRED, 2.7: REQUIRED, 3.0: REQUIRED to 2.6: REQUIRED, 2.7: REQUIRED, 3.0: DONE ruby_3_0 ddd720f8dcd98de6a250a152fa40c3c044d62383 merged revision(s) 5026f9a5d5012248729a0052cd6cec811748291b. ---------------------------------------- Bug #17868: Strange result of Coverage for while-in-while https://bugs.ruby-lang.org/issues/17868#change-92099 * Author: universato (Yoshimine Sato) * Status: Closed * Priority: Normal * Assignee: mame (Yusuke Endoh) * Backport: 2.6: REQUIRED, 2.7: REQUIRED, 3.0: DONE ---------------------------------------- ```ruby n = 3 while n > 0 n -= 1 while n > 0 end ``` This `while_in_while.rb` is the file to be measured. ```ruby require "coverage" Coverage.start load "while_in_while.rb" pp Coverage.result # {"while_in_while.rb"=>[1, 1, 0, nil]} ``` The value of this lines coverage result should be `[1, 1, 1, nil]`. ```ruby require "coverage" Coverage.start(oneshot_lines: true) load "while_in_while.rb" pp Coverage.result # {"while_in_while.rb"=>{:oneshot_lines=>[1, 2]}} ``` The value of this oneshot lines coverage result should be `[1, 2, 3]`. ```ruby require "coverage" Coverage.start(lines: true) load "while_in_while.rb" pp Coverage.result # {"while_in_while.rb"=>{:lines=>[1, 1, 0, nil]}} ``` The value of this lines coverage result should be `[1, 1, 1, nil]`. ```ruby require "coverage" Coverage.start(:all) load "while_in_while.rb" pp Coverage.result # {"while_in_while.rb"=> # {:lines=>[1, 1, 1, nil], # :branches=> # {[:while, 0, 2, 0, 4, 3]=>{[:body, 1, 3, 2, 3, 20]=>1}, # [:while, 2, 3, 2, 3, 20]=>{[:body, 3, 3, 2, 3, 8]=>3}}, # :methods=>{}}} ``` I think the value of this lines coverage result is right. -- https://bugs.ruby-lang.org/ Unsubscribe: