diff --git a/puppet-checks/src/main/java/com/iadams/sonarqube/puppet/checks/OneIncludePerLineCheck.java b/puppet-checks/src/main/java/com/iadams/sonarqube/puppet/checks/OneIncludePerLineCheck.java index d714f25..0d76541 100644 --- a/puppet-checks/src/main/java/com/iadams/sonarqube/puppet/checks/OneIncludePerLineCheck.java +++ b/puppet-checks/src/main/java/com/iadams/sonarqube/puppet/checks/OneIncludePerLineCheck.java @@ -52,7 +52,7 @@ public void init() { @Override public void visitNode(AstNode node) { - if ("include".equals(node.getTokenValue()) && !node.getFirstChild(PuppetGrammar.FUNCVALUES).getChildren(PuppetPunctuator.COMMA).isEmpty()) { + if ("include".equals(node.getTokenValue()) && node.hasDescendant(PuppetPunctuator.COMMA)) { addIssue(node, this, "Split this include statement into multiple lines."); } } diff --git a/puppet-checks/src/test/groovy/com/iadams/sonarqube/puppet/checks/OneIncludePerLineCheckSpec.groovy b/puppet-checks/src/test/groovy/com/iadams/sonarqube/puppet/checks/OneIncludePerLineCheckSpec.groovy index d4af8db..e9becef 100644 --- a/puppet-checks/src/test/groovy/com/iadams/sonarqube/puppet/checks/OneIncludePerLineCheckSpec.groovy +++ b/puppet-checks/src/test/groovy/com/iadams/sonarqube/puppet/checks/OneIncludePerLineCheckSpec.groovy @@ -44,6 +44,7 @@ class OneIncludePerLineCheckSpec extends Specification { .next().atLine(2).withMessage(MESSAGE) .next().atLine(3).withMessage(MESSAGE) .next().atLine(6).withMessage(MESSAGE) + .next().atLine(8).withMessage(MESSAGE) .noMore(); } -} \ No newline at end of file +} diff --git a/puppet-checks/src/test/resources/checks/one_include_per_line.pp b/puppet-checks/src/test/resources/checks/one_include_per_line.pp index 1efde41..f4d1ad2 100644 --- a/puppet-checks/src/test/resources/checks/one_include_per_line.pp +++ b/puppet-checks/src/test/resources/checks/one_include_per_line.pp @@ -5,3 +5,4 @@ include Class['base::linux'] include Class['base::linux'], Class['base::tomcat'] # Noncompliant +include( "stdlib", "apache" ) # Noncompliant diff --git a/puppet-squid/src/test/groovy/com/iadams/sonarqube/puppet/parser/simple_statements/FunctionSpec.groovy b/puppet-squid/src/test/groovy/com/iadams/sonarqube/puppet/parser/simple_statements/FunctionSpec.groovy index e7ad311..c87a752 100644 --- a/puppet-squid/src/test/groovy/com/iadams/sonarqube/puppet/parser/simple_statements/FunctionSpec.groovy +++ b/puppet-squid/src/test/groovy/com/iadams/sonarqube/puppet/parser/simple_statements/FunctionSpec.groovy @@ -91,8 +91,13 @@ class FunctionSpec extends GrammarSpec { assertThat(p).matches('include $my_classes') } + def 'include with brackets'() { + expect: + assertThat(p).matches('include( "stdlib", "apache" )') + } + def "function using hash array accessor"() { expect: assertThat(p).matches('dirname($logfiles[1][1])') } -} \ No newline at end of file +}