Author: vhennebert
Date: Fri Nov 18 17:08:20 2011
New Revision: 1203749
URL: http://svn.apache.org/viewvc?rev=1203749&view=rev
Log:
Bugzilla #52151: added ant script to get JaCoCo code coverage
Patch by Mehdi Houshmand, applied with changes
Added:
xmlgraphics/fop/trunk/jacoco.xml (with props)
xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/HyphenationLayoutTestCase.java
(with props)
Modified:
xmlgraphics/fop/trunk/build.xml
xmlgraphics/fop/trunk/status.xml
xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/LayoutEngineTestUtils.java
Modified: xmlgraphics/fop/trunk/build.xml
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/build.xml?rev=1203749&r1=1203748&r2=1203749&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/build.xml (original)
+++ xmlgraphics/fop/trunk/build.xml Fri Nov 18 17:08:20 2011
@@ -151,7 +151,7 @@ list of possible build targets.
<property name="javac.source" value="1.5"/>
<property name="javac.target" value="1.5"/>
<property name="javac.fork" value="no"/>
- <property name="junit.fork" value="on"/>
+ <property name="junit.fork" value="yes"/>
<property name="junit.haltonfailure" value="off"/>
<property name="javadoc.packages" value="org.apache.fop.*"/>
<property name="src.dir" value="${basedir}/src"/>
@@ -784,7 +784,8 @@ list of possible build targets.
</sequential>
</macrodef>
<target name="junit-all" depends="junit-compile, junit-transcoder,
junit-layout-hyphenation, setup-xml-schema" description="Runs FOP's JUnit basic
tests" if="junit.present">
- <junit dir="${basedir}" haltonfailure="yes" fork="${junit.fork}"
errorproperty="fop.junit.error" failureproperty="fop.junit.failure">
+ <junit dir="${basedir}" haltonfailure="yes" fork="${junit.fork}"
forkmode="once"
+ errorproperty="fop.junit.error" failureproperty="fop.junit.failure">
<sysproperty key="jawa.awt.headless" value="true"/>
<formatter type="brief" usefile="false"/>
<formatter type="plain" usefile="true"/>
@@ -807,8 +808,8 @@ list of possible build targets.
<junit-run title="standard layout engine"
testsuite="org.apache.fop.layoutengine.LayoutEngineTestSuite"
outfile="TEST-layoutengine-standard"/>
</target>
<target name="junit-layout-hyphenation" depends="hyphenation-present,
junit-compile" if="hyphenation.present" description="Runs FOP's JUnit
hyphenation layout tests">
- <property name="fop.layoutengine.testset" value="hyphenation"/>
- <junit-run title="hyphenation layout engine"
testsuite="org.apache.fop.layoutengine.LayoutEngineTestSuite"
outfile="TEST-layoutengine-hyphenation"/>
+ <junit-run title="hyphenation layout engine"
testsuite="org.apache.fop.layoutengine.HyphenationLayoutTestCase"
+ outfile="TEST-layoutengine-hyphenation"/>
</target>
<target name="junit-layout" depends="junit-layout-standard,
junit-layout-hyphenation" description="Runs all FOP's JUnit layout tests"/>
<target name="junit-fotree" depends="junit-compile" description="Runs FOP's
FO tree JUnit tests" if="junit.present">
@@ -851,7 +852,8 @@ list of possible build targets.
<junit-run title="render-pdf"
testsuite="org.apache.fop.render.pdf.RenderPDFTestSuite"
outfile="TEST-render-pdf"/>
</target>
<target name="junit-reduced" depends="junit-userconfig, junit-basic,
junit-transcoder, junit-text-linebreak, junit-fotree, junit-render-pdf"/>
- <target name="junit" depends="junit-all" description="Runs all of FOP's
JUnit tests" if="junit.present">
+ <target name="junit" depends="junit-all" description="Runs all of FOP's
JUnit tests"
+ if="junit.present">
<fail><condition><or><isset property="fop.junit.error"/><isset
property="fop.junit.failure"/><not><isset
property="hyphenation.present"/></not></or></condition>
NOTE:
**************************************************************************
Added: xmlgraphics/fop/trunk/jacoco.xml
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/jacoco.xml?rev=1203749&view=auto
==============================================================================
--- xmlgraphics/fop/trunk/jacoco.xml (added)
+++ xmlgraphics/fop/trunk/jacoco.xml Fri Nov 18 17:08:20 2011
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<project xmlns:jacoco="antlib:org.jacoco.ant" name="JaCoCo"
default="coverage-report">
+ <import file="build.xml"/>
+ <property name="jacoco.report.dir" value="${build.dir}/report_jacoco"/>
+ <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
+ <classpath location="${jacocoant.jar}"/>
+ </taskdef>
+ <target name="test-coverage" depends="junit-compile, setup-xml-schema">
+ <jacoco:coverage destfile="${jacoco.report.dir}/jacoco.exec">
+ <junit dir="${basedir}" haltonfailure="yes" fork="on" forkmode="once">
+ <sysproperty key="jawa.awt.headless" value="true"/>
+ <classpath>
+ <path refid="standard-junit-classpath"/>
+ </classpath>
+ <batchtest>
+ <fileset dir="${build.unit.tests.dir}"
includes="**/*TestCase.class"/>
+ </batchtest>
+ </junit>
+ </jacoco:coverage>
+ </target>
+ <target name="coverage-report" depends="test-coverage"
+ description="Runs JaCoCo for a code coverage report">
+ <jacoco:report>
+ <executiondata>
+ <file file="${jacoco.report.dir}/jacoco.exec"/>
+ </executiondata>
+ <structure name="Apache FOP">
+ <classfiles>
+ <fileset dir="${build.classes.dir}"/>
+ </classfiles>
+ <sourcefiles>
+ <fileset dir="${src.java.dir}"/>
+ </sourcefiles>
+ </structure>
+ <html destdir="${jacoco.report.dir}"/>
+ </jacoco:report>
+ </target>
+</project>
Propchange: xmlgraphics/fop/trunk/jacoco.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: xmlgraphics/fop/trunk/jacoco.xml
------------------------------------------------------------------------------
svn:keywords = Revision Id
Modified: xmlgraphics/fop/trunk/status.xml
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/status.xml?rev=1203749&r1=1203748&r2=1203749&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/status.xml (original)
+++ xmlgraphics/fop/trunk/status.xml Fri Nov 18 17:08:20 2011
@@ -60,6 +60,9 @@
documents. Example: the fix of marks layering will be such a case when
it's done.
-->
<release version="FOP Trunk" date="TBD">
+ <action context="Code" dev="VH" type="add" fixes-bug="52151"
due-to="Mehdi Houshmand">
+ Added ant script to get JaCoCo code coverage.
+ </action>
<action context="Code" dev="VH" type="add" fixes-bug="52136"
due-to="Mehdi Houshmand">
Added to build file JUnit target that uses a regex to run all of the
test cases. This
reduces the risk that some of them are omitted when building FOP.
Added:
xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/HyphenationLayoutTestCase.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/HyphenationLayoutTestCase.java?rev=1203749&view=auto
==============================================================================
---
xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/HyphenationLayoutTestCase.java
(added)
+++
xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/HyphenationLayoutTestCase.java
Fri Nov 18 17:08:20 2011
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id$ */
+
+package org.apache.fop.layoutengine;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Collection;
+
+import org.junit.runners.Parameterized.Parameters;
+
+/**
+ * Class for testing the FOP's hyphenation layout engine using testcases
specified in XML
+ * files.
+ */
+public class HyphenationLayoutTestCase extends LayoutEngineTestCase {
+
+ /**
+ * Creates the parameters for this test.
+ *
+ * @return the list of file arrays populated with test files
+ * @throws IOException if an I/O error occurs while reading the test file
+ */
+ @Parameters
+ public static Collection<File[]> getParameters() throws IOException {
+ return
LayoutEngineTestUtils.getLayoutTestFiles("hyphenation-testcases");
+ }
+
+ /**
+ * Constructor
+ * @param testFile the file to test
+ */
+ public HyphenationLayoutTestCase(File testFile) {
+ super(testFile);
+ }
+
+}
Propchange:
xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/HyphenationLayoutTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/HyphenationLayoutTestCase.java
------------------------------------------------------------------------------
svn:keywords = Revision Id
Modified:
xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/LayoutEngineTestUtils.java
URL:
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/LayoutEngineTestUtils.java?rev=1203749&r1=1203748&r2=1203749&view=diff
==============================================================================
---
xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/LayoutEngineTestUtils.java
(original)
+++
xmlgraphics/fop/trunk/test/java/org/apache/fop/layoutengine/LayoutEngineTestUtils.java
Fri Nov 18 17:08:20 2011
@@ -172,15 +172,26 @@ public final class LayoutEngineTestUtils
* @return A collection of file arrays that contain the test files
*/
public static Collection<File[]> getLayoutTestFiles() {
- TestFilesConfiguration.Builder builder = new
TestFilesConfiguration.Builder();
String testSet = System.getProperty("fop.layoutengine.testset");
testSet = (testSet != null ? testSet : "standard") + "-testcases";
+ return getLayoutTestFiles(testSet);
+ }
+
+ /**
+ * This is a helper method that uses the standard parameters for FOP's
layout engine tests,
+ * given a test set name returns a set of test files.
+ *
+ * @param testSetName the name of the test set
+ * @return A collection of file arrays that contain the test files
+ */
+ public static Collection<File[]> getLayoutTestFiles(String testSetName) {
+ TestFilesConfiguration.Builder builder = new
TestFilesConfiguration.Builder();
builder.testDir("test/layoutengine")
.singleProperty("fop.layoutengine.single")
.startsWithProperty("fop.layoutengine.starts-with")
.suffix(".xml")
- .testSet(testSet)
+ .testSet(testSetName)
.disabledProperty("fop.layoutengine.disabled",
"test/layoutengine/disabled-testcases.xml")
.privateTestsProperty("fop.layoutengine.private");
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]