diff --git a/.travis.yml b/.travis.yml
index c27c5e7f3..02e21942d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -14,6 +14,7 @@ install:
- export MAVEN_HOME=`mvn --version | grep 'Maven home' | sed -e 's/Maven h.* //'`
script:
+ - git clone https://github.com/STAMP-project/pitest-descartes && cd pitest-descartes && mvn install -DskipTests && cd ..
- mvn clean install
- cd dspot && java -jar target/dspot-$DSPOT_VERSION-jar-with-dependencies.jar --example
diff --git a/checkstyle.xml b/checkstyle.xml
index 45d7e93a1..bb1ead92b 100644
--- a/checkstyle.xml
+++ b/checkstyle.xml
@@ -22,7 +22,9 @@
-
+
+
+
diff --git a/dspot/src/main/java/fr/inria/diversify/automaticbuilder/MavenAutomaticBuilder.java b/dspot/src/main/java/fr/inria/diversify/automaticbuilder/MavenAutomaticBuilder.java
index 8673f026a..453092e11 100644
--- a/dspot/src/main/java/fr/inria/diversify/automaticbuilder/MavenAutomaticBuilder.java
+++ b/dspot/src/main/java/fr/inria/diversify/automaticbuilder/MavenAutomaticBuilder.java
@@ -1,8 +1,10 @@
package fr.inria.diversify.automaticbuilder;
+import fr.inria.diversify.dspot.selector.PitMutantScoreSelector;
import fr.inria.diversify.mutant.descartes.DescartesChecker;
import fr.inria.diversify.mutant.descartes.DescartesInjector;
import fr.inria.diversify.mutant.pit.MavenPitCommandAndOptions;
+import fr.inria.diversify.utils.AmplificationHelper;
import fr.inria.diversify.utils.DSpotUtils;
import fr.inria.diversify.utils.sosiefier.InputConfiguration;
import fr.inria.stamp.Main;
@@ -33,29 +35,30 @@ public class MavenAutomaticBuilder implements AutomaticBuilder {
private InputConfiguration configuration;
- @Deprecated
- private String backUpPom;
-
private String mavenHome;
private String classpath;
+ private String contentOfOriginalPom;
+
private static final String FILE_SEPARATOR = "/";
private static final String POM_FILE = "pom.xml";
- MavenAutomaticBuilder(@Deprecated InputConfiguration configuration) {
+ MavenAutomaticBuilder(InputConfiguration configuration) {
this.mavenHome = DSpotUtils.buildMavenHome(configuration);
this.configuration = configuration;
- final String pathToPomFile = configuration.getInputProgram().getProgramDir() + FILE_SEPARATOR + POM_FILE;
- try (final BufferedReader bufferedReader = new BufferedReader(new FileReader(pathToPomFile))) {
- this.backUpPom = bufferedReader.lines().collect(Collectors.joining(System.getProperty("line.separator")));
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- if (MavenPitCommandAndOptions.descartesMode &&
- DescartesChecker.shouldInjectDescartes(pathToPomFile)) {
- DescartesInjector.injectDescartesIntoPom(pathToPomFile);
+ final String pathToPom = this.configuration.getInputProgram().getProgramDir() + "/" + POM_FILE;
+ if (PitMutantScoreSelector.descartesMode &&
+ DescartesChecker.shouldInjectDescartes(pathToPom)) {
+ try (final BufferedReader buffer = new BufferedReader(new FileReader(pathToPom))) {
+ this.contentOfOriginalPom = buffer.lines().collect(Collectors.joining(AmplificationHelper.LINE_SEPARATOR));
+ } catch (Exception ignored) {
+
+ }
+ DescartesInjector.injectDescartesIntoPom(pathToPom);
+ } else {
+ this.contentOfOriginalPom = null;
}
}
@@ -95,13 +98,14 @@ public String buildClasspath(String pathToRootOfProject) {
@Override
public void reset() {
- final String pathToPomFile = configuration.getInputProgram().getProgramDir() + FILE_SEPARATOR + POM_FILE;
- try {
- final FileWriter writer = new FileWriter(pathToPomFile, false);
- writer.write(this.backUpPom);
- writer.close();
- } catch (IOException e) {
- throw new RuntimeException(e);
+ if (contentOfOriginalPom != null) {
+ final String pathToPom = this.configuration.getInputProgram().getProgramDir() + "/" + POM_FILE;
+ try (FileWriter writer = new FileWriter(pathToPom)) {
+ writer.write(this.contentOfOriginalPom);
+ this.contentOfOriginalPom = null;
+ } catch (Exception ignored) {
+
+ }
}
}
@@ -113,11 +117,8 @@ public void runPit(String pathToRootOfProject, CtType>... testClasses) {
}
try {
- String[] phases = new String[]{PRE_GOAL_PIT, //
- CMD_PIT_MUTATION_COVERAGE + ":" +
- (configuration.getProperties().get("pitVersion") != null ?
- configuration.getProperties().get("pitVersion") : PIT_VERSION
- ) + ":" + GOAL_PIT_MUTATION_COVERAGE, //
+ String[] phases = new String[]{CMD_PIT_MUTATION_COVERAGE + ":" +
+ PitMutantScoreSelector.pitVersion + ":" + GOAL_PIT_MUTATION_COVERAGE, //
OPT_WITH_HISTORY, //
OPT_TARGET_CLASSES + configuration.getProperty("filter"), //
OPT_VALUE_REPORT_DIR, //
@@ -128,11 +129,8 @@ public void runPit(String pathToRootOfProject, CtType>... testClasses) {
OPT_ADDITIONAL_CP_ELEMENTS + "target/dspot/dependencies/" +
(configuration.getProperty(PROPERTY_ADDITIONAL_CP_ELEMENTS) != null ?
"," + configuration.getProperty(PROPERTY_ADDITIONAL_CP_ELEMENTS) : "") , //
- descartesMode ? OPT_MUTATION_ENGINE_DESCARTES : OPT_MUTATION_ENGINE_DEFAULT,
- OPT_MUTATORS + (evosuiteMode ?
- Arrays.stream(VALUE_MUTATORS_EVOSUITE).collect(Collectors.joining(",")) :
- descartesMode ? Arrays.stream(VALUE_MUTATORS_DESCARTES).collect(Collectors.joining(",")) :
- VALUE_MUTATORS_ALL), //
+ PitMutantScoreSelector.descartesMode ? OPT_MUTATION_ENGINE_DESCARTES : OPT_MUTATION_ENGINE_DEFAULT,
+ PitMutantScoreSelector.descartesMode ? "" : OPT_MUTATORS + VALUE_MUTATORS_ALL, //
configuration.getProperty(PROPERTY_EXCLUDED_CLASSES) != null ?
OPT_EXCLUDED_CLASSES + configuration.getProperty(PROPERTY_EXCLUDED_CLASSES) :
""//
@@ -158,22 +156,15 @@ public void runPit(String pathToRootOfProject) {
}
try {
- String[] phases = new String[]{PRE_GOAL_PIT, //
- CMD_PIT_MUTATION_COVERAGE + ":" +
- (configuration.getProperties().get("pitVersion") != null ?
- configuration.getProperties().get("pitVersion") : PIT_VERSION
- ) + ":" + GOAL_PIT_MUTATION_COVERAGE, //
+ String[] phases = new String[]{CMD_PIT_MUTATION_COVERAGE + ":" + PitMutantScoreSelector.pitVersion + ":" + GOAL_PIT_MUTATION_COVERAGE, //
OPT_WITH_HISTORY, //
OPT_TARGET_CLASSES + configuration.getProperty("filter"), //
OPT_VALUE_REPORT_DIR, //
OPT_VALUE_FORMAT, //
OPT_VALUE_TIMEOUT, //
OPT_VALUE_MEMORY, //
- descartesMode ? OPT_MUTATION_ENGINE_DESCARTES : OPT_MUTATION_ENGINE_DEFAULT,
- OPT_MUTATORS + (evosuiteMode ?
- Arrays.stream(VALUE_MUTATORS_EVOSUITE).collect(Collectors.joining(",")) :
- descartesMode ? Arrays.stream(VALUE_MUTATORS_DESCARTES).collect(Collectors.joining(",")) :
- VALUE_MUTATORS_ALL), //
+ PitMutantScoreSelector.descartesMode ? OPT_MUTATION_ENGINE_DESCARTES : OPT_MUTATION_ENGINE_DEFAULT,
+ PitMutantScoreSelector.descartesMode? "" : OPT_MUTATORS + VALUE_MUTATORS_ALL, //
OPT_ADDITIONAL_CP_ELEMENTS + "target/dspot/dependencies/" +
(configuration.getProperty(PROPERTY_ADDITIONAL_CP_ELEMENTS) != null ?
"," + configuration.getProperty(PROPERTY_ADDITIONAL_CP_ELEMENTS) : "") , //
diff --git a/dspot/src/main/java/fr/inria/diversify/dspot/amplifier/BooleanLiteralAmplifier.java b/dspot/src/main/java/fr/inria/diversify/dspot/amplifier/BooleanLiteralAmplifier.java
index 423db44e4..f999e3519 100644
--- a/dspot/src/main/java/fr/inria/diversify/dspot/amplifier/BooleanLiteralAmplifier.java
+++ b/dspot/src/main/java/fr/inria/diversify/dspot/amplifier/BooleanLiteralAmplifier.java
@@ -1,8 +1,8 @@
package fr.inria.diversify.dspot.amplifier;
-import edu.emory.mathcs.backport.java.util.Collections;
import spoon.reflect.code.CtLiteral;
+import java.util.Collections;
import java.util.Set;
public class BooleanLiteralAmplifier extends AbstractLiteralAmplifier {
diff --git a/dspot/src/main/java/fr/inria/diversify/dspot/selector/PitMutantScoreSelector.java b/dspot/src/main/java/fr/inria/diversify/dspot/selector/PitMutantScoreSelector.java
index c74556a2f..e6d37a982 100644
--- a/dspot/src/main/java/fr/inria/diversify/dspot/selector/PitMutantScoreSelector.java
+++ b/dspot/src/main/java/fr/inria/diversify/dspot/selector/PitMutantScoreSelector.java
@@ -33,6 +33,12 @@
*/
public class PitMutantScoreSelector extends TakeAllSelector {
+ public static String pitVersion = "1.3.0";
+
+ public static String descartesVersion = "0.2-SNAPSHOT";
+
+ public static boolean descartesMode = false;
+
private static final Logger LOGGER = LoggerFactory.getLogger(PitMutantScoreSelector.class);
private int numberOfMutant;
@@ -55,6 +61,11 @@ public PitMutantScoreSelector(String pathToOriginalResultOfPit) {
@Override
public void init(InputConfiguration configuration) {
super.init(configuration);
+ if (configuration.getProperties().get("pitVersion") != null) {
+ pitVersion = (String) configuration.getProperties().get("pitVersion");
+ } else if (descartesMode) {
+ pitVersion = "1.2.0";
+ }
if (this.originalKilledMutants == null) {
final AutomaticBuilder automaticBuilder = AutomaticBuilderFactory.getAutomaticBuilder(this.configuration);
automaticBuilder.runPit(this.program.getProgramDir());
diff --git a/dspot/src/main/java/fr/inria/diversify/mutant/descartes/DescartesChecker.java b/dspot/src/main/java/fr/inria/diversify/mutant/descartes/DescartesChecker.java
index 03037b6de..0961714fb 100644
--- a/dspot/src/main/java/fr/inria/diversify/mutant/descartes/DescartesChecker.java
+++ b/dspot/src/main/java/fr/inria/diversify/mutant/descartes/DescartesChecker.java
@@ -1,5 +1,6 @@
package fr.inria.diversify.mutant.descartes;
+import fr.inria.diversify.dspot.selector.PitMutantScoreSelector;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.xml.sax.SAXException;
@@ -15,7 +16,6 @@
* benjamin.danglot@inria.fr
* on 24/03/17
*/
-@Deprecated
public class DescartesChecker {
public static boolean shouldInjectDescartes(String pathToPom) {
@@ -43,7 +43,7 @@ private static boolean checkDependency(Node root) {
if (dependencies == null) {
return true;
}
- final List expectedValues = new ArrayList<>(Arrays.asList("org.pitest", "pitest-maven", "1.1.11"));
+ final List expectedValues = new ArrayList<>(Arrays.asList("org.pitest", "pitest-maven", PitMutantScoreSelector.pitVersion));
Optional checkDependency = getAllChildNodeNamedFrom(dependencies, "dependency").stream()
.filter(dependency ->
checkThatHasTheGoodDependency(dependency, expectedValues)
@@ -95,7 +95,7 @@ private static Node getPlugin(Node root) {
if (plugins == null) {
return null;
}
- final List expectedValues = new ArrayList<>(Arrays.asList("org.pitest", "pitest-maven", "1.1.11"));
+ final List expectedValues = new ArrayList<>(Arrays.asList("org.pitest", "pitest-maven", PitMutantScoreSelector.pitVersion));
Optional checkDependency = getChildThatHasTheGoodDependency(plugins, expectedValues, "plugin");
if (!checkDependency.isPresent()) {
return null;
@@ -109,7 +109,7 @@ private static Optional getChildThatHasTheGoodDependency(Node parent, List
.filter(plugin ->
checkThatHasTheGoodDependency(plugin, expectedValues)
)
- .findFirst();
+ .findFirst();
}
private static boolean checkPlugin(Node root) {
@@ -134,7 +134,7 @@ private static boolean checkPlugin(Node root) {
return true;
}
- final List expectedValues = new ArrayList<>(Arrays.asList("fr.inria.stamp", "descartes", "0.1-SNAPSHOT"));
+ final List expectedValues = new ArrayList<>(Arrays.asList("fr.inria.stamp", "descartes", PitMutantScoreSelector.descartesVersion));
return !getChildThatHasTheGoodDependency(dependencies1, expectedValues, "dependency").isPresent();
}
diff --git a/dspot/src/main/java/fr/inria/diversify/mutant/descartes/DescartesInjector.java b/dspot/src/main/java/fr/inria/diversify/mutant/descartes/DescartesInjector.java
index ebd2864b7..4ffc6d3e0 100644
--- a/dspot/src/main/java/fr/inria/diversify/mutant/descartes/DescartesInjector.java
+++ b/dspot/src/main/java/fr/inria/diversify/mutant/descartes/DescartesInjector.java
@@ -1,5 +1,7 @@
package fr.inria.diversify.mutant.descartes;
+import fr.inria.diversify.dspot.selector.PitMutantScoreSelector;
+import fr.inria.diversify.mutant.pit.MavenPitCommandAndOptions;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
@@ -22,11 +24,8 @@
* benjamin.danglot@inria.fr
* on 23/03/17
*/
-@Deprecated
public class DescartesInjector {
- private final static String[] mutators = {"null", "void", "0", "false"};
-
private static Node getNodeNamedFromOrBuildIfDoesnotExist(Document doc, Node startNode, String name) {
Node currentNode = DescartesChecker.getNodeNamedFrom(startNode, name);
if (currentNode == null) {
@@ -49,13 +48,13 @@ private static List buildNodesDependency(Document doc, String groupIdValue
private static Node buildDependencyToPitTest(Document doc) {
final Element dependency = doc.createElement("dependency");
- buildNodesDependency(doc, "org.pitest", "pitest-maven", "1.1.11").forEach(dependency::appendChild);
+ buildNodesDependency(doc, "org.pitest", "pitest-maven", PitMutantScoreSelector.pitVersion).forEach(dependency::appendChild);
return dependency;
}
private static Node buildPlugin(Document doc) {
final Element plugin = doc.createElement("plugin");
- buildNodesDependency(doc, "org.pitest", "pitest-maven", "1.1.11").forEach(plugin::appendChild);
+ buildNodesDependency(doc, "org.pitest", "pitest-maven", PitMutantScoreSelector.pitVersion).forEach(plugin::appendChild);
plugin.appendChild(buildConfiguration(doc));
plugin.appendChild(buildDependencies(doc));
return plugin;
@@ -63,7 +62,7 @@ private static Node buildPlugin(Document doc) {
private static Node buildDependency(Document doc) {
final Element dependency = doc.createElement("dependency");
- buildNodesDependency(doc, "fr.inria.stamp", "descartes", "0.1-SNAPSHOT").forEach(dependency::appendChild);
+ buildNodesDependency(doc, "fr.inria.stamp", "descartes", PitMutantScoreSelector.descartesVersion).forEach(dependency::appendChild);
return dependency;
}
@@ -80,7 +79,7 @@ private static Node buildMutators(Document doc, String name) {
}
private static List buildListOfMutators(Document doc) {
- return Arrays.stream(mutators)
+ return Arrays.stream(MavenPitCommandAndOptions.VALUE_MUTATORS_DESCARTES)
.collect(ArrayList::new,
(nodes, name) -> nodes.add(buildMutators(doc, name)),
ArrayList::addAll
diff --git a/dspot/src/main/java/fr/inria/diversify/mutant/pit/MavenPitCommandAndOptions.java b/dspot/src/main/java/fr/inria/diversify/mutant/pit/MavenPitCommandAndOptions.java
index 5b8b869dd..5716c4da1 100644
--- a/dspot/src/main/java/fr/inria/diversify/mutant/pit/MavenPitCommandAndOptions.java
+++ b/dspot/src/main/java/fr/inria/diversify/mutant/pit/MavenPitCommandAndOptions.java
@@ -7,14 +7,6 @@
*/
public class MavenPitCommandAndOptions {
- @Deprecated
- public static boolean descartesMode = false;
-
- @Deprecated
- public static boolean evosuiteMode = false;
-
- public static final String PRE_GOAL_PIT = ""; // TODO those pre-goals are necessary while we do not know how to compile with spoon
-
public static final String OPT_WITH_HISTORY = "-DwithHistory";
public static final String OPT_VALUE_REPORT_DIR = "-DreportsDirectory=target/pit-reports";
@@ -39,8 +31,6 @@ public class MavenPitCommandAndOptions {
public static final String CMD_PIT_MUTATION_COVERAGE = "org.pitest:pitest-maven";
- public static final String PIT_VERSION = "1.3.0";
-
public static final String GOAL_PIT_MUTATION_COVERAGE = "mutationCoverage";
public static final String OPT_VALUE_TIMEOUT = "-DtimeoutConst=10000";
@@ -51,18 +41,6 @@ public class MavenPitCommandAndOptions {
public static final String VALUE_MUTATORS_ALL = "ALL";
- public static final String[] VALUE_MUTATORS_EVOSUITE = new String[]{
- "VOID_METHOD_CALLS",
- "NON_VOID_METHOD_CALLS",
- "EXPERIMENTAL_MEMBER_VARIABLE",
- "INCREMENTS",
- "INVERT_NEGS",
- "MATH",
- "NEGATE_CONDITIONALS",
- "CONDITIONALS_BOUNDARY",
- "INLINE_CONSTS"
- };
-
/**
* Mutant operator copied from dhell
*/
diff --git a/dspot/src/main/java/fr/inria/stamp/JSAPOptions.java b/dspot/src/main/java/fr/inria/stamp/JSAPOptions.java
index 2dd941876..d8255c9cd 100644
--- a/dspot/src/main/java/fr/inria/stamp/JSAPOptions.java
+++ b/dspot/src/main/java/fr/inria/stamp/JSAPOptions.java
@@ -118,6 +118,8 @@ public static Configuration parse(String[] args) {
testCriterion = SelectorEnum.valueOf(jsapConfig.getString("test-criterion")).buildSelector();
}
+ PitMutantScoreSelector.descartesMode = jsapConfig.getBoolean("descartes");
+
TestRunnerFactory.useReflectiveTestRunner = false;
DSpotUtils.withComment = jsapConfig.getBoolean("comment");
@@ -233,7 +235,6 @@ private static JSAP initJSAP() {
output.setHelp("[optional] specify the output folder (default: dspot-report)");
Switch cleanOutput = new Switch("clean");
- cleanOutput.setShortFlag('q');
cleanOutput.setLongFlag("clean");
cleanOutput.setHelp("[optional] if enabled, DSpot will remove the out directory if exists, else it will append the results to the exist files. (default: off)");
@@ -256,7 +257,6 @@ private static JSAP initJSAP() {
FlaggedOption seed = new FlaggedOption("seed");
seed.setStringParser(JSAP.LONG_PARSER);
seed.setLongFlag("randomSeed");
- seed.setShortFlag('r');
seed.setUsageName("long integer");
seed.setHelp("specify a seed for the random object (used for all randomized operation)");
seed.setDefault("23");
@@ -264,7 +264,6 @@ private static JSAP initJSAP() {
FlaggedOption timeOut = new FlaggedOption("timeOut");
timeOut.setStringParser(JSAP.INTEGER_PARSER);
timeOut.setLongFlag("timeOut");
- timeOut.setShortFlag('v');
timeOut.setUsageName("long integer");
timeOut.setHelp("specify the timeout value of the degenerated tests in millisecond");
timeOut.setDefault("10000");
@@ -272,7 +271,6 @@ private static JSAP initJSAP() {
FlaggedOption automaticBuilder = new FlaggedOption("builder");
automaticBuilder.setStringParser(JSAP.STRING_PARSER);
automaticBuilder.setLongFlag("automatic-builder");
- automaticBuilder.setShortFlag('b');
automaticBuilder.setUsageName("MavenBuilder | GradleBuilder");
automaticBuilder.setHelp("[optional] specify the automatic builder to build the project");
automaticBuilder.setDefault("MavenBuilder");
@@ -280,7 +278,6 @@ private static JSAP initJSAP() {
FlaggedOption mavenHome = new FlaggedOption("mavenHome");
mavenHome.setStringParser(JSAP.STRING_PARSER);
mavenHome.setLongFlag("maven-home");
- mavenHome.setShortFlag('j');
mavenHome.setUsageName("path to maven home");
mavenHome.setHelp("specify the path to the maven home");
@@ -292,7 +289,6 @@ private static JSAP initJSAP() {
FlaggedOption maxTestAmplified = new FlaggedOption("maxTestAmplified");
maxTestAmplified.setStringParser(JSAP.INTEGER_PARSER);
maxTestAmplified.setLongFlag("max-test-amplified");
- maxTestAmplified.setShortFlag('g');
maxTestAmplified.setUsageName("integer");
maxTestAmplified.setHelp("[optional] specify the maximum number of amplified tests that dspot keeps (before generating assertion)");
maxTestAmplified.setDefault("200");
@@ -302,6 +298,11 @@ private static JSAP initJSAP() {
withComment.setDefault("false");
withComment.setHelp("Enable comment on amplified test: details steps of the Amplification.");
+ Switch descartes = new Switch("descartes");
+ descartes.setLongFlag("descartes");
+ descartes.setDefault("false");
+ descartes.setHelp("Enable the descartes engine for Pit Mutant Score Selector.");
+
try {
jsap.registerParameter(pathToConfigFile);
jsap.registerParameter(amplifiers);
@@ -313,6 +314,7 @@ private static JSAP initJSAP() {
jsap.registerParameter(output);
jsap.registerParameter(cleanOutput);
jsap.registerParameter(mutantScore);
+ jsap.registerParameter(descartes);
jsap.registerParameter(automaticBuilder);
jsap.registerParameter(mavenHome);
jsap.registerParameter(seed);
diff --git a/dspot/src/main/java/fr/inria/stamp/minimization/ChangeMinimizer.java b/dspot/src/main/java/fr/inria/stamp/minimization/ChangeMinimizer.java
index 4b0d95639..9b24e0a23 100644
--- a/dspot/src/main/java/fr/inria/stamp/minimization/ChangeMinimizer.java
+++ b/dspot/src/main/java/fr/inria/stamp/minimization/ChangeMinimizer.java
@@ -1,6 +1,5 @@
package fr.inria.stamp.minimization;
-import edu.emory.mathcs.backport.java.util.Collections;
import fr.inria.diversify.automaticbuilder.AutomaticBuilderFactory;
import fr.inria.diversify.dspot.support.DSpotCompiler;
import fr.inria.diversify.utils.AmplificationChecker;
@@ -18,6 +17,7 @@
import spoon.reflect.visitor.filter.TypeFilter;
import java.io.File;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
diff --git a/dspot/src/test/java/fr/inria/diversify/automaticbuilder/MavenAutomaticBuilderTest.java b/dspot/src/test/java/fr/inria/diversify/automaticbuilder/MavenAutomaticBuilderTest.java
index 10111f19a..d4d87dc4c 100644
--- a/dspot/src/test/java/fr/inria/diversify/automaticbuilder/MavenAutomaticBuilderTest.java
+++ b/dspot/src/test/java/fr/inria/diversify/automaticbuilder/MavenAutomaticBuilderTest.java
@@ -30,8 +30,6 @@ public class MavenAutomaticBuilderTest {
@Before
public void setUp() throws Exception {
Main.verbose = true;
- MavenPitCommandAndOptions.evosuiteMode = false;
- MavenPitCommandAndOptions.descartesMode = false;
}
@After
diff --git a/dspot/src/test/java/fr/inria/diversify/dspot/DSpotTest.java b/dspot/src/test/java/fr/inria/diversify/dspot/DSpotTest.java
index 39f81bd17..22adce692 100644
--- a/dspot/src/test/java/fr/inria/diversify/dspot/DSpotTest.java
+++ b/dspot/src/test/java/fr/inria/diversify/dspot/DSpotTest.java
@@ -1,17 +1,16 @@
package fr.inria.diversify.dspot;
-import edu.emory.mathcs.backport.java.util.Collections;
import fr.inria.diversify.Utils;
import fr.inria.diversify.dspot.amplifier.Amplifier;
import fr.inria.diversify.dspot.amplifier.TestMethodCallAdder;
import fr.inria.diversify.dspot.selector.JacocoCoverageSelector;
import fr.inria.diversify.dspot.selector.TestSelector;
-import fr.inria.diversify.utils.DSpotUtils;
import fr.inria.diversify.utils.sosiefier.InputConfiguration;
import org.junit.Test;
import spoon.reflect.declaration.CtMethod;
import spoon.reflect.declaration.CtType;
+import java.util.Collections;
import java.util.List;
import static org.junit.Assert.assertEquals;
diff --git a/dspot/src/test/java/fr/inria/diversify/dspot/selector/CloverCoverageSelectorTest.java b/dspot/src/test/java/fr/inria/diversify/dspot/selector/CloverCoverageSelectorTest.java
index 38d36982c..411c2ded7 100644
--- a/dspot/src/test/java/fr/inria/diversify/dspot/selector/CloverCoverageSelectorTest.java
+++ b/dspot/src/test/java/fr/inria/diversify/dspot/selector/CloverCoverageSelectorTest.java
@@ -1,7 +1,5 @@
package fr.inria.diversify.dspot.selector;
-import edu.emory.mathcs.backport.java.util.Arrays;
-import edu.emory.mathcs.backport.java.util.Collections;
import fr.inria.diversify.Utils;
import fr.inria.diversify.dspot.DSpot;
import fr.inria.diversify.dspot.amplifier.Amplifier;
@@ -11,6 +9,9 @@
import org.junit.Test;
import spoon.reflect.declaration.CtType;
+import java.util.Arrays;
+import java.util.Collections;
+
import static org.junit.Assert.assertFalse;
/**
diff --git a/dspot/src/test/java/fr/inria/diversify/dspot/selector/PitScoreMutantSelectorTest.java b/dspot/src/test/java/fr/inria/diversify/dspot/selector/PitScoreMutantSelectorTest.java
index a73df205a..c590eea71 100644
--- a/dspot/src/test/java/fr/inria/diversify/dspot/selector/PitScoreMutantSelectorTest.java
+++ b/dspot/src/test/java/fr/inria/diversify/dspot/selector/PitScoreMutantSelectorTest.java
@@ -53,9 +53,6 @@ public void testSelection() throws Exception {
Main.verbose = true;
- MavenPitCommandAndOptions.evosuiteMode = false;
- MavenPitCommandAndOptions.descartesMode = false;
-
List pitResults = PitResultParser.parse(new File("src/test/resources/test-projects/originalpit/mutations.csv"));
assertTrue(null != pitResults);
diff --git a/dspot/src/test/java/fr/inria/diversify/mutant/descartes/DescartesTest.java b/dspot/src/test/java/fr/inria/diversify/mutant/descartes/DescartesTest.java
index 0354e22e2..78dfca6d4 100644
--- a/dspot/src/test/java/fr/inria/diversify/mutant/descartes/DescartesTest.java
+++ b/dspot/src/test/java/fr/inria/diversify/mutant/descartes/DescartesTest.java
@@ -1,5 +1,6 @@
package fr.inria.diversify.mutant.descartes;
+import fr.inria.diversify.utils.AmplificationHelper;
import org.apache.commons.io.FileUtils;
import org.junit.Ignore;
import org.junit.Test;
@@ -19,10 +20,6 @@
*/
public class DescartesTest {
- // TODO implement
-
- private static final String nl = System.getProperty("line.separator");
-
@Test
@Ignore
public void testInjectionOfDescartesIfNeeded() throws Exception {
@@ -37,7 +34,7 @@ public void testInjectionOfDescartesIfNeeded() throws Exception {
DescartesInjector.injectDescartesIntoPom(pathname);
assertFalse(DescartesChecker.shouldInjectDescartes(pathname));
try (BufferedReader buffer = new BufferedReader(new FileReader(pathname))) {
- final String pomAsStr = buffer.lines().collect(Collectors.joining(nl));
+ final String pomAsStr = buffer.lines().collect(Collectors.joining(AmplificationHelper.LINE_SEPARATOR));
assertEquals(expectedPom, pomAsStr);
} catch (IOException e) {
fail("should not throw the exception " + e.toString());
@@ -45,25 +42,39 @@ public void testInjectionOfDescartesIfNeeded() throws Exception {
FileUtils.forceDelete(new File(pathname));
}
- private static final String expectedPom = "" + nl +
- " 4.0.0" + nl +
- " example" + nl +
- " example" + nl +
- " 0.0.1-SNAPSHOT" + nl +
- " test-projects" + nl +
- "" + nl +
- " " + nl +
- " UTF-8" + nl +
- " 1.7" + nl +
- " 1.7" + nl +
- " " + nl +
- "" + nl +
- " " + nl +
- " \t" + nl +
- " \t\tjunit" + nl +
- " \t\tjunit" + nl +
- " \t\t4.11" + nl +
- " \t" + nl +
- " org.pitestpitest-maven1.1.11fr.inria.stampdescartes0.1-SNAPSHOT" + nl +
- "org.pitestpitest-maven1.1.11descartesnullvoid0falsefr.inria.stampdescartes0.1-SNAPSHOTstamp-maven-repository-mvn-repohttps://stamp-project.github.io/stamp-maven-repositorytruealways";
+ private static final String expectedPom = "" + AmplificationHelper.LINE_SEPARATOR +
+ "\t4.0.0" + AmplificationHelper.LINE_SEPARATOR +
+ "\texample" + AmplificationHelper.LINE_SEPARATOR +
+ "\texample" + AmplificationHelper.LINE_SEPARATOR +
+ "\t0.0.1-SNAPSHOT" + AmplificationHelper.LINE_SEPARATOR +
+ "\ttest-projects" + AmplificationHelper.LINE_SEPARATOR +
+ "" + AmplificationHelper.LINE_SEPARATOR +
+ "\t" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\tUTF-8" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\t1.7" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\t1.7" + AmplificationHelper.LINE_SEPARATOR +
+ "\t" + AmplificationHelper.LINE_SEPARATOR +
+ "" + AmplificationHelper.LINE_SEPARATOR +
+ "\t" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\t" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\t\t" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\t\t\torg.apache.maven.plugins" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\t\t\tmaven-compiler-plugin" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\t\t\t3.7.0" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\t\t\t" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\t\t\t\t1.8" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\t\t\t\t1.8" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\t\t\t" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\t\t" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\torg.pitestpitest-maven1.3.0descartesvoidnulltruefalseempty01(byte)0(byte)1(short)1(short)20L1L0.01.00.0f1.0f' ''A'\"\"\"A\"fr.inria.stampdescartes0.0.1-SNAPSHOT" + AmplificationHelper.LINE_SEPARATOR +
+ "\t" + AmplificationHelper.LINE_SEPARATOR +
+ "" + AmplificationHelper.LINE_SEPARATOR +
+ "\t" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\t" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\t\tjunit" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\t\tjunit" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\t\t4.11" + AmplificationHelper.LINE_SEPARATOR +
+ "\t\t" + AmplificationHelper.LINE_SEPARATOR +
+ "\torg.pitestpitest-maven1.3.0fr.inria.stampdescartes0.0.1-SNAPSHOT" + AmplificationHelper.LINE_SEPARATOR +
+ "stamp-maven-repository-mvn-repohttps://stamp-project.github.io/stamp-maven-repositorytruealways";
}
diff --git a/dspot/src/test/java/fr/inria/diversify/mutant/descartes/PitDescartesTest.java b/dspot/src/test/java/fr/inria/diversify/mutant/descartes/PitDescartesTest.java
index ca4d3e243..b76e4753a 100644
--- a/dspot/src/test/java/fr/inria/diversify/mutant/descartes/PitDescartesTest.java
+++ b/dspot/src/test/java/fr/inria/diversify/mutant/descartes/PitDescartesTest.java
@@ -1,22 +1,18 @@
package fr.inria.diversify.mutant.descartes;
import fr.inria.diversify.automaticbuilder.AutomaticBuilderFactory;
-import fr.inria.diversify.dspot.amplifier.StatementAdd;
-import fr.inria.diversify.dspot.amplifier.TestDataMutator;
+import fr.inria.diversify.dspot.amplifier.NumberLiteralAmplifier;
+import fr.inria.diversify.dspot.amplifier.StringLiteralAmplifier;
import fr.inria.diversify.utils.AmplificationHelper;
import fr.inria.diversify.dspot.DSpot;
import fr.inria.diversify.dspot.selector.PitMutantScoreSelector;
-import fr.inria.diversify.mutant.pit.MavenPitCommandAndOptions;
import fr.inria.diversify.utils.sosiefier.InputConfiguration;
import fr.inria.stamp.Main;
import org.apache.commons.io.FileUtils;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
-import spoon.reflect.declaration.CtClass;
-import spoon.reflect.declaration.CtType;
import java.io.*;
import java.util.Arrays;
@@ -31,41 +27,50 @@
*/
public class PitDescartesTest {
- // TODO implement
-
@Before
public void setUp() throws Exception {
AmplificationHelper.setSeedRandom(23L);
- FileUtils.deleteDirectory(new File("target/dspot/trash"));
- FileUtils.deleteDirectory(new File("src/test/resources/descartes/target"));
+ try {
+ FileUtils.deleteDirectory(new File("target/dspot"));
+ } catch (Exception ignored) {
+
+ }
+ try {
+ FileUtils.deleteDirectory(new File("src/test/resources/test-projects/target/"));
+ } catch (Exception ignored) {
+
+ }
Main.verbose = true;
- MavenPitCommandAndOptions.descartesMode = false;
+ PitMutantScoreSelector.descartesMode = false;
}
@Test
- @Ignore
public void testPitDescartesMode() throws Exception {
- assertFalse(MavenPitCommandAndOptions.descartesMode);
- MavenPitCommandAndOptions.descartesMode = true;
- InputConfiguration configuration = new InputConfiguration("src/test/resources/descartes/descartes.properties");
+
+ /*
+ weak contract: this test should not throw any exception and end properly
+ the increase of the mutation score and the selection is delegated to dedicated test
+ here we test that the descartes mode runs
+ */
+
+ assertFalse(PitMutantScoreSelector.descartesMode);
+ PitMutantScoreSelector.descartesMode = true;
+ PitMutantScoreSelector.pitVersion = "1.2.0";
+ InputConfiguration configuration = new InputConfiguration("src/test/resources/test-projects/test-projects.properties");
DSpot dspot = new DSpot(configuration, 1,
- new PitMutantScoreSelector("src/test/resources/descartes/mutations.csv"));
- final CtClass