Michael Blow has submitted this change and it was merged. Change subject: Misc. Coverage Fixes ......................................................................
Misc. Coverage Fixes - Collect coverage data for hyracks modules - Generate aggregate coverage report for SonarQube Change-Id: Ib44d8ed4fe81d2e26380e1bf6e02b7458910be0a Reviewed-on: https://asterix-gerrit.ics.uci.edu/841 Tested-by: Jenkins <[email protected]> Reviewed-by: Ian Maxon <[email protected]> --- M asterixdb/asterix-coverage/pom.xml M asterixdb/pom.xml M hyracks-fullstack/pom.xml 3 files changed, 195 insertions(+), 101 deletions(-) Approvals: Ian Maxon: Looks good to me, approved Jenkins: Verified diff --git a/asterixdb/asterix-coverage/pom.xml b/asterixdb/asterix-coverage/pom.xml index 6cc00d3..3692fb2 100644 --- a/asterixdb/asterix-coverage/pom.xml +++ b/asterixdb/asterix-coverage/pom.xml @@ -29,106 +29,142 @@ <version>0.8.9-SNAPSHOT</version> </parent> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-antrun-plugin</artifactId> - <version>1.8</version> - <executions> - <execution> - <phase>test</phase> - <goals> - <goal>run</goal> - </goals> - <configuration> - <target if="coverage" unless="skipTests"> - <echo message="Generating JaCoCo Reports" /> - <property name="asterix.dir" location="${basedir}/.."/> - <!-- special case for jenkins --> - <condition property="hyracks.dir" value="${asterix.dir}/hyracks"> - <available file="${asterix.dir}/hyracks/pom.xml"/> - </condition> - <pathconvert property="hyracks.dir"> - <first> - <dirset dir="${asterix.dir}/.."> - <include name="*hyracks"/> - </dirset> - </first> - </pathconvert> - <!-- gather all of the source dirs --> - <pathconvert property="source.dirs" pathsep=","> - <dirset dir="${asterix.dir}"> - <include name="**/src/main/java"/> + <profiles> + <profile> + <id>coverage</id> + <activation> + <property> + <name>coverage</name> + </property> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <version>1.8</version> + <executions> + <execution> + <phase>test</phase> + <goals> + <goal>run</goal> + </goals> + <configuration> + <target if="coverage" unless="skipTests"> + <echo message="Generating JaCoCo Reports" /> + <property name="asterix.dir" location="${basedir}/.."/> <!-- special case for jenkins --> - <exclude name="hyracks/**"/> - </dirset> - </pathconvert> - <pathconvert property="hyracks.source.dirs" pathsep=","> - <dirset dir="${hyracks.dir}"> - <include name="**/src/main/java"/> - </dirset> - </pathconvert> - <echo message="asterix dir: ${asterix.dir}/"/> - <echo message="hyracks dir: ${hyracks.dir}"/> - <echo message="asterix source dirs: ${source.dirs}/"/> - <echo message="hyracks source dirs: ${hyracks.source.dirs}/"/> + <condition property="hyracks.dir" value="${asterix.dir}/hyracks"> + <available file="${asterix.dir}/hyracks/pom.xml"/> + </condition> + <pathconvert property="hyracks.dir"> + <first> + <dirset dir="${asterix.dir}/.."> + <include name="*hyracks"/> + </dirset> + </first> + </pathconvert> + <!-- gather all of the source dirs --> + <pathconvert property="source.dirs" pathsep=","> + <dirset dir="${asterix.dir}"> + <include name="**/src/main/java"/> + <!-- special case for jenkins --> + <exclude name="hyracks/**"/> + </dirset> + </pathconvert> + <pathconvert property="hyracks.source.dirs" pathsep=","> + <dirset dir="${hyracks.dir}"> + <include name="**/src/main/java"/> + </dirset> + </pathconvert> + <echo message="asterix dir: ${asterix.dir}/"/> + <echo message="hyracks dir: ${hyracks.dir}"/> + <echo message="asterix source dirs: ${source.dirs}/"/> + <echo message="hyracks source dirs: ${hyracks.source.dirs}/"/> - <taskdef name="report" classname="org.jacoco.ant.ReportTask"> - <classpath path="${basedir}/target/jacoco-jars/org.jacoco.ant.jar" /> - </taskdef> - <mkdir dir="${basedir}/target/coverage-report" /> - <report> - <executiondata> - <fileset dir="${asterix.dir}"> - <include name="**/jacoco.exec" /> - </fileset> - </executiondata> - <structure name="AsterixDB Coverage Project"> - <group name="AsterixDB"> - <classfiles> + <taskdef name="report" classname="org.jacoco.ant.ReportTask"> + <classpath path="${basedir}/target/jacoco-jars/org.jacoco.ant.jar" /> + </taskdef> + <mkdir dir="${basedir}/target/coverage-report" /> + <report> + <executiondata> <fileset dir="${asterix.dir}"> - <include name="**/target/classes/**/*.class"/> - <!-- special case for jenkins --> - <exclude name="hyracks/**"/> + <include name="**/jacoco.exec" /> </fileset> - </classfiles> - <sourcefiles encoding="UTF-8"> - <multirootfileset basedirs="${source.dirs}" type="file"> - <include name="**/*.java"/> - </multirootfileset> - </sourcefiles> - </group> - <group name="Hyracks"> - <classfiles> - <fileset dir="${hyracks.dir}"> - <include name="**/target/classes/**/*.class"/> - <exclude name="hyracks/hyracks-hdfs/hyracks-hdfs-1.x/**"/> - </fileset> - </classfiles> - <sourcefiles encoding="UTF-8"> - <multirootfileset basedirs="${hyracks.source.dirs}" type="file"> - <include name="**/*.java"/> - </multirootfileset> - </sourcefiles> - </group> - </structure> - <html destdir="${basedir}/target/coverage-report/html" /> - <xml destfile="${basedir}/target/coverage-report/coverage-report.xml" /> - <csv destfile="${basedir}/target/coverage-report/coverage-report.csv" /> - </report> - </target> - </configuration> - </execution> - </executions> - <dependencies> - <dependency> + </executiondata> + <structure name="AsterixDB Coverage Project"> + <group name="AsterixDB"> + <classfiles> + <fileset dir="${asterix.dir}"> + <include name="**/target/classes/**/*.class"/> + <!-- special case for jenkins --> + <exclude name="hyracks/**"/> + </fileset> + </classfiles> + <sourcefiles encoding="UTF-8"> + <multirootfileset basedirs="${source.dirs}" type="file"> + <include name="**/*.java"/> + </multirootfileset> + </sourcefiles> + </group> + <group name="Hyracks"> + <classfiles> + <fileset dir="${hyracks.dir}"> + <include name="**/target/classes/**/*.class"/> + <exclude name="hyracks/hyracks-hdfs/hyracks-hdfs-1.x/**"/> + </fileset> + </classfiles> + <sourcefiles encoding="UTF-8"> + <multirootfileset basedirs="${hyracks.source.dirs}" type="file"> + <include name="**/*.java"/> + </multirootfileset> + </sourcefiles> + </group> + </structure> + <html destdir="${basedir}/target/coverage-report/html" /> + <xml destfile="${basedir}/target/coverage-report/coverage-report.xml" /> + <csv destfile="${basedir}/target/coverage-report/coverage-report.csv" /> + </report> + </target> + </configuration> + </execution> + </executions> + <dependencies> + <dependency> + <groupId>org.jacoco</groupId> + <artifactId>org.jacoco.ant</artifactId> + <version>${jacoco.version}</version> + </dependency> + </dependencies> + </plugin> + <plugin> <groupId>org.jacoco</groupId> - <artifactId>org.jacoco.ant</artifactId> + <artifactId>jacoco-maven-plugin</artifactId> <version>${jacoco.version}</version> - </dependency> - </dependencies> - </plugin> - </plugins> - </build> + <executions> + <execution> + <goals> + <goal>merge</goal> + </goals> + <phase>test</phase> + <configuration> + <fileSets> + <fileSet> + <directory>${session.executionRootDirectory}</directory> + <includes> + <include>**/target/jacoco.exec</include> + <include>**/target/jacoco-it.exec</include> + </includes> + </fileSet> + </fileSets> + <destFile>${session.executionRootDirectory}/target/jacoco-merged.exec</destFile> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> + </project> diff --git a/asterixdb/pom.xml b/asterixdb/pom.xml index 4073247..d72b465 100644 --- a/asterixdb/pom.xml +++ b/asterixdb/pom.xml @@ -45,6 +45,7 @@ <jdk.version>1.8</jdk.version> <runSlowAQLTests>false</runSlowAQLTests> <appendedResourcesDirectory>${basedir}/src/main/appended-resources</appendedResourcesDirectory> + <sonar.jacoco.reportPath>${env.PWD}/target/jacoco-merged.exec</sonar.jacoco.reportPath> <!-- Definition of tests in various categories which may be excluded --> <optimizer.tests>**/optimizer/**/*Test.java</optimizer.tests> diff --git a/hyracks-fullstack/pom.xml b/hyracks-fullstack/pom.xml index f2e0eea..54e7f34 100644 --- a/hyracks-fullstack/pom.xml +++ b/hyracks-fullstack/pom.xml @@ -45,6 +45,8 @@ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <jdk.version>1.8</jdk.version> <jvm.extraargs/> + <sonar.jacoco.reportPath>${env.PWD}/target/jacoco-merged.exec</sonar.jacoco.reportPath> + <!-- Definition of tests in various categories which may be excluded --> <hanging.pregelix.tests>**/pregelix/**/FailureRecovery*.java</hanging.pregelix.tests> <hivesterix.perf.tests>**/hivesterix/perf/PerfTestSuite.java</hivesterix.perf.tests> @@ -55,6 +57,7 @@ <hadoop.version>2.2.0</hadoop.version> <junit.version>4.8.1</junit.version> <commons.io.version>2.4</commons.io.version> + <jacoco.version>0.7.6.201602180812</jacoco.version> </properties> <dependencyManagement> <dependencies> @@ -218,11 +221,14 @@ <failIfNoTests>false</failIfNoTests> <forkCount>1</forkCount> <reuseForks>false</reuseForks> - <argLine>-enableassertions -Xmx2048m - -Dfile.encoding=UTF-8 - -Djava.util.logging.config.file=${user.home}/logging.properties - -Xdebug - -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n</argLine> + <argLine> + -enableassertions -Xmx2048m + -Dfile.encoding=UTF-8 + -Djava.util.logging.config.file=${user.home}/logging.properties + -Xdebug + -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n + ${coverageArgLine} + </argLine> <includes> <include>${global.test.includes},${test.includes}</include> </includes> @@ -385,6 +391,57 @@ </build> </profile> <profile> + <id>coverage</id> + <activation> + <property> + <name>coverage</name> + </property> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>${jacoco.version}</version> + <executions> + <execution> + <id>default-prepare-agent</id> + <goals> + <goal>prepare-agent</goal> + </goals> + <configuration> + <propertyName>coverageArgLine</propertyName> + </configuration> + </execution> + <execution> + <id>default-prepare-agent-integration</id> + <goals> + <goal>prepare-agent-integration</goal> + </goals> + <configuration> + <propertyName>coverageArgLine</propertyName> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + <properties> + <coverage/> + </properties> + </profile> + <profile> + <id>no-coverage</id> + <activation> + <property> + <name>!coverage</name> + </property> + </activation> + <properties> + <coverageArgLine/> + </properties> + </profile> + <profile> <id>java8</id> <activation> <jdk>1.8</jdk> -- To view, visit https://asterix-gerrit.ics.uci.edu/841 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ib44d8ed4fe81d2e26380e1bf6e02b7458910be0a Gerrit-PatchSet: 3 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Michael Blow <[email protected]> Gerrit-Reviewer: Ian Maxon <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Michael Blow <[email protected]>
