From 2ba55edc4e35866afbb154e3ea03cf03e56ab9bc Mon Sep 17 00:00:00 2001 From: rnveach Date: Thu, 29 Oct 2015 16:37:38 -0400 Subject: [PATCH] Issue #2268: require all checks appear in checkstyle_checks.xml --- config/checkstyle_checks.xml | 1 + .../tools/checkstyle/AllChecksTest.java | 28 +++++++++++++++---- src/xdocs/config_misc.xml | 8 +++++- 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/config/checkstyle_checks.xml b/config/checkstyle_checks.xml index 691b50242..2d4e38e50 100644 --- a/config/checkstyle_checks.xml +++ b/config/checkstyle_checks.xml @@ -375,6 +375,7 @@ --> + diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/AllChecksTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/AllChecksTest.java index f52c240d7..7e53d5dbb 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/AllChecksTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/AllChecksTest.java @@ -53,6 +53,8 @@ import com.puppycrawl.tools.checkstyle.api.Filter; import com.puppycrawl.tools.checkstyle.checks.imports.ImportControlCheck; public class AllChecksTest extends BaseCheckTestSupport { + private static final String CONFIG_PATH = "config" + File.separator + + "checkstyle_checks.xml"; @Test public void testAllChecksWithDefaultConfiguration() throws Exception { @@ -151,10 +153,9 @@ public class AllChecksTest extends BaseCheckTestSupport { @Test public void testAllChecksAreReferencedInConfigFile() throws Exception { - final String configFilePath = "config/checkstyle_checks.xml"; final Set> checksFromClassPath = getCheckstyleChecks(); final Set checksReferencedInConfig = - getCheckStyleChecksReferencedInConfig(configFilePath); + getCheckStyleChecksReferencedInConfig(CONFIG_PATH); final Set checksNames = getSimpleNames(checksFromClassPath); for (String check : checksNames) { @@ -185,6 +186,23 @@ public class AllChecksTest extends BaseCheckTestSupport { } } + @Test + public void testAllCheckstyleModulesInCheckstyleConfig() throws Exception { + final Set configChecks = getCheckStyleChecksReferencedInConfig(CONFIG_PATH); + + for (String moduleName : getSimpleNames(getCheckstyleModules())) { + if ("SuppressionCommentFilter".equals(moduleName) + || "SeverityMatchFilter".equals(moduleName) + || "SuppressWithNearbyCommentFilter".equals(moduleName) + || "SuppressWarningsFilter".equals(moduleName)) { + continue; + } + + Assert.assertTrue("checkstyle_checks.xml is missing module: " + moduleName, + configChecks.contains(moduleName)); + } + } + /** * Gets the checkstyle's non abstract checks. * @return the set of checkstyle's non abstract check classes. @@ -261,7 +279,8 @@ public class AllChecksTest extends BaseCheckTestSupport { final String className = loadedClass.getSimpleName(); return isCheckstyleNonAbstractCheck(loadedClass, className) || isFilterModule(loadedClass, className) - || "SuppressWarningsHolder".equals(className); + || "SuppressWarningsHolder".equals(className) + || "FileContentsHolder".equals(className); } /** @@ -332,8 +351,7 @@ public class AllChecksTest extends BaseCheckTestSupport { final Element module = (Element) currentNode; final String checkName = module.getAttribute("name"); if (!"Checker".equals(checkName) - && !"TreeWalker".equals(checkName) - && !"SuppressionFilter".equals(checkName)) { + && !"TreeWalker".equals(checkName)) { checksReferencedInCheckstyleChecksXML.add(checkName); } } diff --git a/src/xdocs/config_misc.xml b/src/xdocs/config_misc.xml index eb21bcf14..7a4c3f386 100755 --- a/src/xdocs/config_misc.xml +++ b/src/xdocs/config_misc.xml @@ -398,7 +398,7 @@ messages.properties: Key 'ok' missing. Sun Style
  • - + Checkstyle Style
  • @@ -1549,6 +1549,12 @@ String unitAbbrev = "\u03bc\u03bc\u03bc"; +