8009969: CodeCoverage should use template

Tue, 19 Mar 2013 11:03:24 -0300

author
jlaskey
date
Tue, 19 Mar 2013 11:03:24 -0300
changeset 143
606a1946e3e2
parent 142
3b0a0d9d51f0
child 144
4be452026847

8009969: CodeCoverage should use template
Reviewed-by: jlaskey, sundar
Contributed-by: pavel.stepanov@oracle.com

make/build.xml file | annotate | diff | comparison | revisions
make/code_coverage.xml file | annotate | diff | comparison | revisions
make/project.properties file | annotate | diff | comparison | revisions
     1.1 --- a/make/build.xml	Mon Mar 18 21:03:11 2013 +0530
     1.2 +++ b/make/build.xml	Tue Mar 19 11:03:24 2013 -0300
     1.3 @@ -124,7 +124,7 @@
     1.4      <echo message="release=${nashorn.version}" file="${build.classes.dir}/jdk/nashorn/internal/runtime/resources/version.properties" append="true"/>
     1.5    </target>
     1.6  
     1.7 -  <target name="jar" depends="compile, run-nasgen" description="Creates nashorn.jar">
     1.8 +  <target name="jar" depends="compile, run-nasgen, generate-cc-template" description="Creates nashorn.jar">
     1.9      <jar jarfile="${dist.jar}" manifest="${meta.inf.dir}/MANIFEST.MF" index="true" filesetmanifest="merge">
    1.10        <fileset dir="${build.classes.dir}"/>
    1.11        <manifest>
     2.1 --- a/make/code_coverage.xml	Mon Mar 18 21:03:11 2013 +0530
     2.2 +++ b/make/code_coverage.xml	Tue Mar 19 11:03:24 2013 -0300
     2.3 @@ -36,7 +36,12 @@
     2.4        <equals arg1="${jcov}" arg2="dynamic" trim="true"/>
     2.5      </condition>
     2.6  
     2.7 +    <condition property="cc.generate.template" value="true">
     2.8 +      <equals arg1="${cc.dynamic.genereate.template}" arg2="true" trim="true"/>
     2.9 +    </condition>
    2.10 +
    2.11      <mkdir dir="${cc.dir}"/>
    2.12 +    <mkdir dir="${build.dir}/to_be_instrumented"/>
    2.13  
    2.14      <!-- info -->
    2.15      <echo message="jcov=${jcov}"/>
    2.16 @@ -51,25 +56,66 @@
    2.17      <property name="run.test.cc.jvmargs" value=""/>
    2.18    </target>
    2.19  
    2.20 +  <target name="prepare-to-be-instrumented" depends="compile" description="Prepares to_be_instrumented dir">
    2.21 +    <copy todir="${build.dir}/to_be_instrumented">
    2.22 +      <fileset dir="${build.classes.dir}">
    2.23 +        <include name="**/*.class"/>
    2.24 +        <include name="**/*.clazz"/>
    2.25 +      </fileset>
    2.26 +    </copy>
    2.27 +
    2.28 +    <move todir="${build.dir}/to_be_instrumented/jdk/nashorn/internal/objects">
    2.29 +      <fileset dir="${build.dir}/to_be_instrumented/jdk/nashorn/internal/objects">
    2.30 +        <include name="**/*.clazz"/>
    2.31 +      </fileset>
    2.32 +      <mapper type="glob" from="*.clazz" to="*.class"/>
    2.33 +    </move>
    2.34 +  </target>
    2.35 +
    2.36 +  <target name="generate-cc-template" depends="prepare-to-be-instrumented" description="Generates code coverage template for dynamic CC" if="cc.generate.template">
    2.37 +    <property name="cc.instrumented.path" location="${build.dir}/to_be_instrumented"/>
    2.38 +    <java classname="com.sun.tdk.jcov.TmplGen">
    2.39 +      <arg value="-verbose"/>
    2.40 +      <arg line="-include ${cc.include}"/>
    2.41 +      <arg line="-type all"/>
    2.42 +      <arg line="-template ${cc.template}"/>
    2.43 +      <arg value="${cc.instrumented.path}"/>
    2.44 +      <classpath>
    2.45 +        <pathelement location="${jcov.jar}"/>
    2.46 +      </classpath>
    2.47 +    </java>
    2.48 +
    2.49 +    <java classname="com.sun.tdk.jcov.RepGen">
    2.50 +      <arg value="-verbose"/>
    2.51 +      <arg line="-output ${cc.dir}/CC_template_report"/>
    2.52 +      <arg value="${cc.template}"/>
    2.53 +      <classpath>
    2.54 +        <pathelement location="${jcov.jar}"/>
    2.55 +      </classpath>
    2.56 +    </java>
    2.57 +  </target>
    2.58 +
    2.59    <target name="init-cc" depends="init-cc-disabled, init-cc-enabled">
    2.60      <property name="run.test.cc.jvmargs" value=""/>
    2.61    </target>
    2.62  
    2.63    <target name="init-cc-cleanup" if="${cc.enabled}">
    2.64      <delete dir="${cc.dir}" failonerror="false" />
    2.65 +    <delete dir="${build.dir}/to_be_instrumented" failonerror="false" />
    2.66    </target>
    2.67  
    2.68    <target name="check-merging-files" depends="init">
    2.69 -	<resourcecount property="cc.xmls">
    2.70 -  		<filelist dir="${cc.dir}" files="*.xml" />
    2.71 -	</resourcecount>	
    2.72 +	<echo message="checking avalibility of ${cc.template}"/>
    2.73      <condition property="nothing-to-merge" value="true">
    2.74 -      <equals arg1="${cc.xmls}" arg2="1" trim="true"/>
    2.75 +		<not>
    2.76 +	      <available file="${cc.template}"/>
    2.77 +		</not>
    2.78      </condition>
    2.79 +	<echo message="nothing-to-merge = ${nothing-to-merge}"/>
    2.80    </target>
    2.81  
    2.82    <target name="fix-merging-files" depends="check-merging-files" if="${nothing-to-merge}">
    2.83 -	<echo message="making pre-merge workaround"/>
    2.84 +	<echo message="making pre-merge workaround due to missed template"/>
    2.85  	<move todir="${cc.dir}" includeemptydirs="false">
    2.86  		<fileset dir="${cc.dir}">
    2.87  			<include name="*.xml"/>
    2.88 @@ -81,12 +127,12 @@
    2.89    <target name="merge-code-coverage" depends="fix-merging-files" unless="${nothing-to-merge}">
    2.90  	<echo message="merging files"/>
    2.91      <fileset dir="${cc.dir}" id="cc.xmls">
    2.92 -      <include name="**/*${jcov}*.xml"/>
    2.93 +      <include name="**/*_${jcov}_*.xml"/>
    2.94        <include name="**/CC_template.xml"/>
    2.95      </fileset>
    2.96  
    2.97      <pathconvert pathsep=" " property="cc.all.xmls" refid="cc.xmls"/>
    2.98 -
    2.99 +	<echo message="merging files - ${cc.all.xmls}" />
   2.100      <java classname="com.sun.tdk.jcov.Merger">
   2.101        <arg value="-verbose"/>
   2.102        <arg value="-output"/>
     3.1 --- a/make/project.properties	Mon Mar 18 21:03:11 2013 +0530
     3.2 +++ b/make/project.properties	Tue Mar 19 11:03:24 2013 -0300
     3.3 @@ -235,10 +235,12 @@
     3.4  	#naming of CC results
     3.5  	#NB directory specified in the cc.dir will be cleaned up!!!
     3.6  cc.dir=${basedir}/../Codecoverage_Nashorn
     3.7 -cc.result.file.name=cc_nashorn.xml
     3.8 +cc.result.file.name=CC_${jcov}_nashorn.xml
     3.9  	#dynamic CC parameters; please redefine in the ${user.home}/.nashorn.project.local.properties
    3.10  jcov2.lib.dir=${basedir}/../jcov2/lib
    3.11  jcov.jar=${jcov2.lib.dir}/jcov.jar
    3.12  cc.include=jdk\.nashorn\.*
    3.13  cc.exclude=jdk\.nashorn\.internal\.scripts\.*
    3.14 +cc.dynamic.genereate.template=true
    3.15 +cc.template=${cc.dir}/CC_template.xml
    3.16  cc.dynamic.args=-javaagent:${jcov.jar}=include=${cc.include},exclude=${cc.exclude},type=all,verbose=0,file=${cc.dir}/${cc.result.file.name}

mercurial