diff --git a/pmd-cli/src/test/java/net/sourceforge/pmd/cli/CpdCliTest.java b/pmd-cli/src/test/java/net/sourceforge/pmd/cli/CpdCliTest.java index 8a9d4758de..b60b511d8e 100644 --- a/pmd-cli/src/test/java/net/sourceforge/pmd/cli/CpdCliTest.java +++ b/pmd-cli/src/test/java/net/sourceforge/pmd/cli/CpdCliTest.java @@ -87,6 +87,12 @@ class CpdCliTest extends BaseCliTest { result.checkStdErr(containsString("[main] INFO net.sourceforge.pmd.cli - Log level is at TRACE")); } + @Test + void debugLoggingShouldMentionLanguage() throws Exception { + final CliExecutionResult result = runCli(VIOLATIONS_FOUND, "--minimum-tokens", "34", "--dir", SRC_DIR, "--debug"); + result.checkStdErr(containsString("Created new FileCollector with LanguageVersionDiscoverer(LanguageRegistry(java))")); + } + @Test void defaultLogging() throws Exception { CliExecutionResult result = runCliSuccessfully("--minimum-tokens", "340", "--dir", SRC_DIR); @@ -112,6 +118,13 @@ class CpdCliTest extends BaseCliTest { result.checkStdErr(containsString("Usage: pmd cpd")); } + @Test + void testWrongCliOptionResultsInErrorLogging() throws Exception { + // --ignore-identifiers doesn't take an argument anymore - it is interpreted as a file for inputPaths + final CliExecutionResult result = runCli(VIOLATIONS_FOUND, "--minimum-tokens", "34", "--dir", SRC_DIR, "--ignore-identifiers", "false"); + result.checkStdErr(containsString("No such file false")); + } + @Test void testFindJavaDuplication() throws Exception { runCli(VIOLATIONS_FOUND, "--minimum-tokens", "7", "--dir", SRC_DIR) @@ -125,7 +138,7 @@ class CpdCliTest extends BaseCliTest { */ @Test void testIgnoreIdentifiers() throws Exception { - runCli(VIOLATIONS_FOUND, "--minimum-tokens", "34", "--dir", SRC_DIR, "--ignore-identifiers") + runCli(VIOLATIONS_FOUND, "--minimum-tokens", "34", "--dir", SRC_DIR, "--ignore-identifiers", "false", "--debug") .verify(result -> result.checkStdOut(containsString( "Found a 14 line (89 tokens) duplication" ))); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/LanguageVersionDiscoverer.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/LanguageVersionDiscoverer.java index ad8fef10b8..b4e5920480 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/LanguageVersionDiscoverer.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/LanguageVersionDiscoverer.java @@ -168,4 +168,11 @@ public class LanguageVersionDiscoverer { public void onlyRecognizeLanguages(LanguageRegistry lang) { this.languageRegistry = Objects.requireNonNull(lang); } + + @Override + public String toString() { + return "LanguageVersionDiscoverer(" + languageRegistry + + (forcedVersion != null ? ",forcedVersion=" + forcedVersion : "") + + ")"; + } } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/document/FileCollector.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/document/FileCollector.java index 20ec3aff72..6cc0ff5006 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/document/FileCollector.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/document/FileCollector.java @@ -70,6 +70,7 @@ public final class FileCollector implements AutoCloseable { this.discoverer = discoverer; this.reporter = reporter; this.outerFsPath = outerFsPath; + LOG.debug("Created new FileCollector with {}", discoverer); } public void setRecursive(boolean collectFilesRecursively) {