Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue #11665: Create a robust method of surviving mutation suppression #11731

Merged
merged 1 commit into from Jun 25, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 3 additions & 1 deletion .ci/StarterRuleSet-AllRulesByCategory.groovy.txt
Expand Up @@ -343,7 +343,9 @@ ruleset {
NonFinalSubclassOfSensitiveInterface
ObjectFinalize
PublicFinalizeMethod
SystemExit
SystemExit {
doNotApplyToFileNames = 'pitest-survival-check-xml.groovy'
}
UnsafeArrayDeclaration

// rulesets/serialization.xml
Expand Down
4 changes: 4 additions & 0 deletions .ci/jsoref-spellchecker/whitelist.words
Expand Up @@ -516,6 +516,7 @@ googlegroups
googlesource
Gorm
govstrangefolder
GPath
gpg
gradle
gradlew
Expand Down Expand Up @@ -866,6 +867,7 @@ multiplevariabledeclarations
Multiset
multithreading
mutableexception
mutationtest
MVC
mvn
mvnw
Expand Down Expand Up @@ -1210,6 +1212,8 @@ sivakumar
Slawinski
slf
slist
Slurper
slurpersupport
Sms
smth
snyk
Expand Down
47 changes: 47 additions & 0 deletions .ci/pitest-suppressions/pitest-ant-suppressions.xml
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<suppressedMutations>
<mutation unstable="false">
<sourceFile>CheckstyleAntTask.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.ant.CheckstyleAntTask</mutatedClass>
<mutatedMethod>execute</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.MathMutator</mutator>
<description>Replaced long subtraction with addition</description>
<lineContent>log(&quot;Total execution took &quot; + (endTime - startTime) + TIME_SUFFIX,</lineContent>
</mutation>

<mutation unstable="false">
<sourceFile>CheckstyleAntTask.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.ant.CheckstyleAntTask</mutatedClass>
<mutatedMethod>processFiles</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.MathMutator</mutator>
<description>Replaced long subtraction with addition</description>
<lineContent>log(&quot;To locate the files took &quot; + (endTime - startTime) + TIME_SUFFIX,</lineContent>
</mutation>

<mutation unstable="false">
<sourceFile>CheckstyleAntTask.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.ant.CheckstyleAntTask</mutatedClass>
<mutatedMethod>processFiles</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.MathMutator</mutator>
<description>Replaced long subtraction with addition</description>
<lineContent>log(&quot;To process the files took &quot; + (processingEndTime - processingStartTime)</lineContent>
</mutation>

<mutation unstable="false">
<sourceFile>CheckstyleAntTask.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.ant.CheckstyleAntTask$Formatter</mutatedClass>
<mutatedMethod>createDefaultLogger</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_IF</mutator>
<description>removed conditional - replaced equality check with true</description>
<lineContent>if (toFile == null || !useFile) {</lineContent>
</mutation>

<mutation unstable="false">
<sourceFile>CheckstyleAntTask.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.ant.CheckstyleAntTask$Formatter</mutatedClass>
<mutatedMethod>createXmlLogger</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_IF</mutator>
<description>removed conditional - replaced equality check with true</description>
<lineContent>if (toFile == null || !useFile) {</lineContent>
</mutation>
</suppressedMutations>
137 changes: 137 additions & 0 deletions .ci/pitest-suppressions/pitest-coding-1-suppressions.xml
@@ -0,0 +1,137 @@
<?xml version="1.0" encoding="UTF-8"?>
<suppressedMutations>
<mutation unstable="false">
<sourceFile>UnnecessaryParenthesesCheck.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.checks.coding.UnnecessaryParenthesesCheck</mutatedClass>
<mutatedMethod>isLambdaSingleParameterSurrounded</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_IF</mutator>
<description>removed conditional - replaced equality check with true</description>
<lineContent>if (firstChild != null &amp;&amp; firstChild.getType() == TokenTypes.LPAREN) {</lineContent>
</mutation>

<mutation unstable="false">
<sourceFile>UnnecessaryParenthesesCheck.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.checks.coding.UnnecessaryParenthesesCheck</mutatedClass>
<mutatedMethod>leaveToken</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_ELSE</mutator>
<description>removed conditional - replaced equality check with false</description>
<lineContent>if (type != TokenTypes.ASSIGN</lineContent>
</mutation>

<mutation unstable="false">
<sourceFile>UnnecessaryParenthesesCheck.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.checks.coding.UnnecessaryParenthesesCheck</mutatedClass>
<mutatedMethod>leaveToken</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_IF</mutator>
<description>removed conditional - replaced equality check with true</description>
<lineContent>|| parent.getType() != TokenTypes.ANNOTATION_MEMBER_VALUE_PAIR) {</lineContent>
</mutation>

<mutation unstable="false">
<sourceFile>UnnecessaryParenthesesCheck.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.checks.coding.UnnecessaryParenthesesCheck</mutatedClass>
<mutatedMethod>visitToken</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_IF</mutator>
<description>removed conditional - replaced equality check with true</description>
<lineContent>else if (type != TokenTypes.ASSIGN</lineContent>
</mutation>

<mutation unstable="false">
<sourceFile>UnnecessaryParenthesesCheck.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.checks.coding.UnnecessaryParenthesesCheck</mutatedClass>
<mutatedMethod>visitToken</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_IF</mutator>
<description>removed conditional - replaced equality check with true</description>
<lineContent>if (type == TokenTypes.LAMBDA &amp;&amp; isLambdaSingleParameterSurrounded(ast)) {</lineContent>
</mutation>

<mutation unstable="false">
<sourceFile>VariableDeclarationUsageDistanceCheck.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.checks.coding.VariableDeclarationUsageDistanceCheck</mutatedClass>
<mutatedMethod>calculateDistanceInSingleScope</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_IF</mutator>
<description>removed conditional - replaced equality check with true</description>
<lineContent>&amp;&amp; currentAst.getType() != TokenTypes.RCURLY) {</lineContent>
</mutation>

<mutation unstable="false">
<sourceFile>VariableDeclarationUsageDistanceCheck.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.checks.coding.VariableDeclarationUsageDistanceCheck</mutatedClass>
<mutatedMethod>calculateDistanceInSingleScope</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_ELSE</mutator>
<description>removed conditional - replaced equality check with false</description>
<lineContent>if (!firstUsageFound) {</lineContent>
</mutation>

<mutation unstable="false">
<sourceFile>VariableDeclarationUsageDistanceCheck.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.checks.coding.VariableDeclarationUsageDistanceCheck</mutatedClass>
<mutatedMethod>getFirstNodeInsideForWhileDoWhileBlocks</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_ELSE</mutator>
<description>removed conditional - replaced equality check with false</description>
<lineContent>if (currentNodeType == TokenTypes.SLIST) {</lineContent>
</mutation>

<mutation unstable="false">
<sourceFile>VariableDeclarationUsageDistanceCheck.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.checks.coding.VariableDeclarationUsageDistanceCheck</mutatedClass>
<mutatedMethod>getFirstNodeInsideIfBlock</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_ELSE</mutator>
<description>removed conditional - replaced equality check with false</description>
<lineContent>else if (isChild(currentNode, variable)) {</lineContent>
</mutation>

<mutation unstable="false">
<sourceFile>VariableDeclarationUsageDistanceCheck.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.checks.coding.VariableDeclarationUsageDistanceCheck</mutatedClass>
<mutatedMethod>getFirstNodeInsideIfBlock</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_ELSE</mutator>
<description>removed conditional - replaced equality check with false</description>
<lineContent>if (currentNode.getType() == TokenTypes.LITERAL_IF) {</lineContent>
</mutation>

<mutation unstable="false">
<sourceFile>VariableDeclarationUsageDistanceCheck.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.checks.coding.VariableDeclarationUsageDistanceCheck</mutatedClass>
<mutatedMethod>getFirstNodeInsideTryCatchFinallyBlocks</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_IF</mutator>
<description>removed conditional - replaced equality check with true</description>
<lineContent>&amp;&amp; currentNode.getType() == TokenTypes.LITERAL_CATCH) {</lineContent>
</mutation>

<mutation unstable="false">
<sourceFile>VariableDeclarationUsageDistanceCheck.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.checks.coding.VariableDeclarationUsageDistanceCheck</mutatedClass>
<mutatedMethod>isChild</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_IF</mutator>
<description>removed conditional - replaced equality check with true</description>
<lineContent>if (curNode.getType() == ast.getType() &amp;&amp; curNode.getText().equals(ast.getText())) {</lineContent>
</mutation>

<mutation unstable="false">
<sourceFile>VariableDeclarationUsageDistanceCheck.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.checks.coding.VariableDeclarationUsageDistanceCheck</mutatedClass>
<mutatedMethod>isInitializationSequence</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_IF</mutator>
<description>removed conditional - replaced equality check with true</description>
<lineContent>while (result</lineContent>
</mutation>

<mutation unstable="false">
<sourceFile>VariableDeclarationUsageDistanceCheck.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.checks.coding.VariableDeclarationUsageDistanceCheck</mutatedClass>
<mutatedMethod>isVariableInOperatorExpr</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_IF</mutator>
<description>removed conditional - replaced equality check with true</description>
<lineContent>if (!isVarInOperatorDeclaration &amp;&amp; operator.getType() == TokenTypes.LITERAL_IF) {</lineContent>
</mutation>

<mutation unstable="false">
<sourceFile>VariableDeclarationUsageDistanceCheck.java</sourceFile>
<mutatedClass>com.puppycrawl.tools.checkstyle.checks.coding.VariableDeclarationUsageDistanceCheck</mutatedClass>
<mutatedMethod>searchVariableUsageExpressions</mutatedMethod>
<mutator>org.pitest.mutationtest.engine.gregor.mutators.RemoveConditionalMutator_EQUAL_IF</mutator>
<description>removed conditional - replaced equality check with true</description>
<lineContent>&amp;&amp; currentStatementAst.getType() != TokenTypes.RCURLY) {</lineContent>
</mutation>
</suppressedMutations>