Prakash
Prakash

Reputation: 600

Emma is not creating the coverage.ec file

Copied the emma.jar to $JAVA_HOME/lib/ext & instrumented it using the following command.

java -cp emma.jar emma instr -m overwrite -cp @jarlist.txt

jarlist.txt contains the list of jar files deployed by tomcat from the war file. And it got instrumented successfully & created the coverage.em

EMMA: processing instrumentation path ...

EMMA: instrumentation path processed in 5119 ms

EMMA: [4125 class(es) instrumented, 3142 resource(s) copied]

EMMA: metadata merged into [/root/install/apache-tomcat-7.0.19/webapps/coverage.em] {in 553 ms}

But even after restarting the tomcat multiple times coverage.ec file was not created. What I'm missing here?

Upvotes: 0

Views: 2928

Answers (3)

Devarajan
Devarajan

Reputation: 131

I followed the below steps:

  1. Copied the emma.jar into \jre\lib\ext folder
  2. Created jarlist.txt manually with the list of jar files i want to instrument.

example:

Jar names with the full path:

e:\driven\web\web-inf\lib\abc.jar e:\driven\web\web-inf\lib\xyz.jar

Placed the jarlist.txt in the same folder - jre\lib\ext folder

  1. Instrumented JARS using the Following command:

c:\Program files\java\jre\lib\ext> java -cp emma.jar emma instr -m overwrite -cp @jarlist.txt

Result: EMMA: processing instrumentation path ... EMMA: instrumentation path processed in 3819 ms EMMA: [1942 class(es) instrumented, 1030 resource(s) copied] EMMA: metadata merged into [\jre\lib\ext\coverage.em] {in 668 ms}

Second time if you try with the same command you will get only the following result:

EMMA: processing instrumentation path ... EMMA: instrumentation path processed in 1875 ms EMMA: [0 class(es) instrumented, 2972 resource(s) copied] EMMA: no output created: metadata is empty

Because jars already instrumented --> 0 classes and no output created.

--> Start your Tomcat and Perform some operations

Tomcat Log you can find like below: EMMA: collecting runtime coverage data ...

If u can find this means you will get coverage.ec file while stopping the Tomcat service.

Stop the Tomcat Service: Final phase of log will show like below:

EMMA: runtime coverage data merged into [\tomcat\bin\coverage.ec] {in 48 ms}

Report Generation:

c:\jre\lib\ext>java -cp emma.jar emma report -r html -in coverage.em,......\tomcat\bin\coverage.ec

EMMA: processing input files ... EMMA: 2 file(s) read and merged in 582 ms EMMA: writing [html] report to [c:\jre\lib\ext\coverage\index.html] ...

You can Open and view the Index.html to see the Report.

Upvotes: 0

Devarajan
Devarajan

Reputation: 131

You can Search the coverage.ec in tomcat log after stopping the Tomcat service.

it will appear in log in the End of log with the Specified Path.

Upvotes: 3

Prakash
Prakash

Reputation: 600

When I copied the emma.jar inside the $CATALINA_HOME/webapps/myapplication/WEB-INF/lib & then instrumenting emma resolved this issue.

Upvotes: 1

Related Questions