Search code examples
javaeclipseeclemma

Eclipse EcLemma number of covered instructions more than lines of code


In the coverage result, it shows that I've covered 9 instructions while there are only 5 lines highlighted green. Which are the other 4 instructions?

enter image description here


Solution

  • Click the dropdown arrow at the top right of the Coverage box. It'll give you a couple different ways to measure your coverage. The default seems to be instructions (bytecode instructions), but you can manually select lines.

    2

    The reason you are seeing 9 instructions is because there are 9 bytecode instructions in Foo:

    $ javap -c Foo.class 
    Compiled from "Foo.java"
    public class Foo {
      public Foo();
        Code:
           0: aload_0
           1: invokespecial #8                  // Method java/lang/Object."<init>":()V
           4: return
    
      public static void main(java.lang.String[]);
        Code:
           0: getstatic     #16                 // Field java/lang/System.out:Ljava/io/PrintStream;
           3: ldc           #22                 // String Test
           5: invokevirtual #24                 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
           8: new           #1                  // class Foo
          11: invokespecial #30                 // Method "<init>":()V
          14: return
    }