Name: kbR10066 Date: 05/12/2003
Typical JCov usage scheme with static instrumentation does not work
if -commonTimeStamp switch is passed to the static instrumenter:
1. Compile sources
2. Instrument classes using static instrumenter with -commonTimeStamp switch
3. Run the app and get code coverage file 'java.jcov'
4. Generate template for the app classes 'tmpl.jcov'
5. Merge 'java.jcov' and 'tmpl.jcov' to get master coverage file 'master.jcov'
'master.jcov' will then contain duplicates for all classes present in 'java.jcov':
one class will have TIMESTAMP '0', another - TIMESTAMP '1'.
Loading such 'master.jcov' into JCov gui or generating a report for it will reveal
these duplicated classes to the user.
======================================================================
Name: kbR10066 Date: 05/12/2003
Another (much more common) usage scheme also leads to duplicates:
1. Compile sources *without* -Xjcov
2. Instrument classes using static instrumenter *without*
-commonTimeStamp switch
3. Run the app and get code coverage file 'java.jcov'
4. Generate template for the app classes 'tmpl.jcov'
5. Merge 'java.jcov' and 'tmpl.jcov' to get master coverage file 'master.jcov'
======================================================================
Name: kbR10066 Date: 05/12/2003
Another, much more likely usage scheme also leads to duplicates:
1. Compile sources *without* -Xjcov
2. Instrument classes using static instrumenter *without*
-commonTimeStamp switch
3. Run the app and get code coverage file 'java.jcov'
4. Generate template for the app classes 'tmpl.jcov'
5. Merge 'java.jcov' and 'tmpl.jcov' to get master coverage file 'master.jcov
======================================================================