From 246436ac7fbc2935807a6778c2a29513119d45ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fournier?= Date: Sat, 23 Apr 2022 15:56:38 +0200 Subject: [PATCH] Fix tests on windows Bug in toLocation(Range2d) Use RulePriority.LOW as default in PMDTask, so as not to create IndexOutOfBoundsException every time --- pmd-core/src/main/java/net/sourceforge/pmd/ant/PMDTask.java | 3 ++- .../java/net/sourceforge/pmd/lang/document/TextDocument.java | 2 +- .../src/test/java/net/sourceforge/pmd/ant/PMDTaskTest.java | 4 +++- .../net/sourceforge/pmd/ant/xml/expected-pmd-ant-xml.xml | 3 +++ pmd-core/src/test/resources/rulesets/dummy/basic.xml | 2 +- 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/ant/PMDTask.java b/pmd-core/src/main/java/net/sourceforge/pmd/ant/PMDTask.java index ba9367ad15..192a714f6e 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/ant/PMDTask.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/ant/PMDTask.java @@ -15,6 +15,7 @@ import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.Path; import org.apache.tools.ant.types.Reference; +import net.sourceforge.pmd.RulePriority; import net.sourceforge.pmd.ant.internal.PMDTaskImpl; public class PMDTask extends Task { @@ -31,7 +32,7 @@ public class PMDTask extends Task { private boolean noRuleSetCompatibility; private String encoding; private int threads = 1; // same default as in PMDParameters (CLI) - private int minimumPriority; + private int minimumPriority = RulePriority.LOW.getPriority(); // inclusive private int maxRuleViolations = 0; private String failuresPropertyName; private SourceLanguage sourceLanguage; diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/document/TextDocument.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/document/TextDocument.java index f26e4abfc8..6c6f95b48c 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/document/TextDocument.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/document/TextDocument.java @@ -157,7 +157,7 @@ public interface TextDocument extends Closeable { * @throws IndexOutOfBoundsException If the argument is not a valid region in this document */ default FileLocation toLocation(TextRange2d range) { - int startOffset = offsetAtLineColumn(range.getEndPos()); + int startOffset = offsetAtLineColumn(range.getStartPos()); if (startOffset < 0) { throw new IndexOutOfBoundsException("Region out of bounds: " + range.displayString()); } diff --git a/pmd-core/src/test/java/net/sourceforge/pmd/ant/PMDTaskTest.java b/pmd-core/src/test/java/net/sourceforge/pmd/ant/PMDTaskTest.java index ba7970fca1..0e4666817c 100644 --- a/pmd-core/src/test/java/net/sourceforge/pmd/ant/PMDTaskTest.java +++ b/pmd-core/src/test/java/net/sourceforge/pmd/ant/PMDTaskTest.java @@ -4,6 +4,8 @@ package net.sourceforge.pmd.ant; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsString; import static org.junit.Assert.fail; import java.io.FileInputStream; @@ -92,7 +94,7 @@ public class PMDTaskTest { String actual = IOUtils.toString(in, StandardCharsets.UTF_8); // remove any trailing newline actual = actual.trim(); - Assert.assertEquals("sample.dummy:1:\tSampleXPathRule:\tTest Rule 2", actual); + assertThat(actual, containsString("sample.dummy:1:\tSampleXPathRule:\tTest Rule 2")); } } diff --git a/pmd-core/src/test/resources/net/sourceforge/pmd/ant/xml/expected-pmd-ant-xml.xml b/pmd-core/src/test/resources/net/sourceforge/pmd/ant/xml/expected-pmd-ant-xml.xml index 081d871709..705fc08dfa 100644 --- a/pmd-core/src/test/resources/net/sourceforge/pmd/ant/xml/expected-pmd-ant-xml.xml +++ b/pmd-core/src/test/resources/net/sourceforge/pmd/ant/xml/expected-pmd-ant-xml.xml @@ -4,5 +4,8 @@ Test Rule 2 + +Test Rule 3 + diff --git a/pmd-core/src/test/resources/rulesets/dummy/basic.xml b/pmd-core/src/test/resources/rulesets/dummy/basic.xml index e4874941cc..bc9c94cc4a 100644 --- a/pmd-core/src/test/resources/rulesets/dummy/basic.xml +++ b/pmd-core/src/test/resources/rulesets/dummy/basic.xml @@ -47,7 +47,7 @@ Just for test