RAT-228: Fix broken Ant integration tests
Make tests more deterministic and fix matcher setup.
Thanks to Romain Manni-Bucau
git-svn-id: https://svn.apache.org/repos/asf/creadur/rat/trunk@1842757 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/apache-rat-plugin/src/test/java/org/apache/rat/mp/RatCheckMojoTest.java b/apache-rat-plugin/src/test/java/org/apache/rat/mp/RatCheckMojoTest.java
index 4e6e915..bfa2490 100644
--- a/apache-rat-plugin/src/test/java/org/apache/rat/mp/RatCheckMojoTest.java
+++ b/apache-rat-plugin/src/test/java/org/apache/rat/mp/RatCheckMojoTest.java
@@ -42,6 +42,7 @@
import static org.apache.rat.mp.RatTestHelpers.newArtifactResolver;
import static org.apache.rat.mp.RatTestHelpers.newSiteRenderer;
import org.w3c.dom.Document;
+import org.w3c.dom.NodeList;
/**
* Test case for the {@link RatCheckMojo} and {@link RatReportMojo}.
@@ -233,23 +234,23 @@
assertFalse("no null allowed in '" + msg + "'", (msg.toUpperCase()
.contains("NULL")));
}
+ assertTrue(ratTxtFile.exists());
DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
FileInputStream fis = new FileInputStream(ratTxtFile);
- boolean documentParsed = false;
try {
Document doc = db.parse(fis);
- boolean byteSequencePresent = doc.getElementsByTagName("header-sample")
- .item(0)
- .getTextContent()
- .contains("\u00E4\u00F6\u00FC\u00C4\u00D6\u00DC\u00DF");
- assertTrue("Report should contain test umlauts", byteSequencePresent);
- documentParsed = true;
+ NodeList headerSample = doc.getElementsByTagName("header-sample");
+ String textContent = headerSample.item(0).getTextContent();
+ if (textContent.length() == 0) { // can be the pom since this test will parse 2 files but the pom is "ok"
+ textContent = headerSample.item(1).getTextContent();
+ }
+ boolean byteSequencePresent = textContent.contains("\u00E4\u00F6\u00FC\u00C4\u00D6\u00DC\u00DF");
+ assertTrue("Report should contain test umlauts, got '" + textContent + "'", byteSequencePresent);
} catch (Exception ex) {
- documentParsed = false;
+ fail("Report file could not be parsed as XML: " + ex.getMessage());
} finally {
fis.close();
}
- assertTrue("Report file could not be parsed as XML", documentParsed);
}
diff --git a/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/Report.java b/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/Report.java
index b27f83a..46b9d26 100644
--- a/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/Report.java
+++ b/apache-rat-tasks/src/main/java/org/apache/rat/anttasks/Report.java
@@ -292,14 +292,13 @@
* required) into a single array.
*/
private List<IHeaderMatcher> getLicenseMatchers() {
- List<IHeaderMatcher> matchers = new ArrayList<IHeaderMatcher>(Defaults.DEFAULT_MATCHERS);
+ List<IHeaderMatcher> matchers = new ArrayList<IHeaderMatcher>(
+ (addDefaultLicenseMatchers ? Defaults.DEFAULT_MATCHERS.size() : 0) + licenseMatchers.size());
if (addDefaultLicenseMatchers) {
- int nestedSize = licenseMatchers.size();
- if (nestedSize != 0) {
- matchers.addAll(licenseMatchers);
- }
+ matchers.addAll(Defaults.DEFAULT_MATCHERS);
+ matchers.addAll(licenseMatchers);
} else {
- matchers = new ArrayList<IHeaderMatcher>();
+ matchers = new ArrayList<IHeaderMatcher>(licenseMatchers);
}
return matchers;
}
diff --git a/apache-rat-tasks/src/test/resources/antunit/report-normal-operation.xml b/apache-rat-tasks/src/test/resources/antunit/report-normal-operation.xml
index 2be61e6..88de39d 100644
--- a/apache-rat-tasks/src/test/resources/antunit/report-normal-operation.xml
+++ b/apache-rat-tasks/src/test/resources/antunit/report-normal-operation.xml
@@ -330,7 +330,7 @@
}
]]></echo>
<javac srcdir="${output.dir}/src" destdir="${output.dir}/dest"
- classpath="${test.classpath}"/>
+ classpath="${test.classpath}" fork="true"/>
<typedef name="exmpl" classname="org.example.Matcher"
classpathref="all-classes-needed-for-tests"
loaderref="testloader"/>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 4338d5c..d5ea3eb 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -55,6 +55,9 @@
<body>
<release version="0.13" date="2018-xx-xx" description="Current SNAPSHOT - to be done">
+ <action issue="RAT-228" type="add" due-to="Romain Manni-Bucau" dev="pottlinger">
+ Fixing broken Ant unit test setup and making tests run more deterministic.
+ </action>
<action issue="RAT-245" type="add" dev="pottlinger">
Update to latest available and compatible Apache ANT 1.9.12 to get bugfixes and newer JDK support.
</action>