From: John W. L. <Joh...@sa...> - 2007-09-10 19:25:13
|
You reasoning is good. Cobertura uses the bytecode directly. That unfortunately means there are some lines that show conditions because the compiler inserts them. I'm not an ASM expert, but I doubt it provides a way of differentiating between the two. I would think the bytecode would have to store information on what the source looked like. John=20 -----Original Message----- From: cob...@li... [mailto:cob...@li...] On Behalf Of Tarun Modi Sent: Monday, September 10, 2007 5:34 AM To: cob...@li... Subject: [Cobertura-devel] Branch Coverage Reason Hi all, I have run ur tool on my class i.e. public class IfOnly { 4 public boolean ifmethod(boolean b) { 5 1 boolean a =3D false; 6 1 if (b) { 7 1 a =3D a || b; 8 } 9 1 return a; 10 } On line 6 it is showing Conditional Coverge 50%(1/2) and on line 7 it is showing Conditional Coverage 50%(2/4)[each condition 50%,50%] . what i know about branch coverage is that branch are like if ,switch ,for ,while like statements.. But u have counted line 6 & line 7 in ur total(class) branch coverage i.e. 50%(3/6). what i have got reason behind that is in bytecode the or(||) of line 7 is breakdown into "ifeq" and "ifne" ... same as "if" statement Is this is the reason that tool cant diffrentiate the "if" and "or(||)" statement..?? Does ASM provide any class or feature that diffrences between the above two ..?? Kindly reply to this mail and clarify my doubts... and if possible please explain it.... Regards tarun ------------------------------------------------------------------------ - This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Cobertura-devel mailing list Cob...@li... https://lists.sourceforge.net/lists/listinfo/cobertura-devel |