From b81c6161d34dabaa4f49c0f5280d2faabde37406 Mon Sep 17 00:00:00 2001 From: Martin Monperrus Date: Wed, 7 Aug 2024 09:10:27 +0200 Subject: [PATCH] astor is now java17 (#373) --- examples/lang_1/pom.xml | 4 +- examples/lang_7/pom.xml | 4 +- examples/lang_8/pom.xml | 4 +- examples/math_5/pom.xml | 17 +- examples/math_70/pom.xml | 18 +- pom.xml | 13 +- .../GZoltarClientMasterFaultLocalization.java | 261 -------------- .../gzoltar/GZoltarFaultLocalization.java | 331 ------------------ .../core/solutionsearch/AstorCoreEngine.java | 4 +- .../fr/inria/main/FaultLocalizationMain.java | 3 +- .../astor/test/repair/QuixBugsRepairTest.java | 4 +- .../FaultLocalizationExtensionTest.java | 8 +- .../operatorselection/RepairOperatorTest.java | 1 - 13 files changed, 47 insertions(+), 625 deletions(-) delete mode 100644 src/main/java/fr/inria/astor/core/faultlocalization/gzoltar/GZoltarClientMasterFaultLocalization.java delete mode 100644 src/main/java/fr/inria/astor/core/faultlocalization/gzoltar/GZoltarFaultLocalization.java diff --git a/examples/lang_1/pom.xml b/examples/lang_1/pom.xml index 59664bab1..0c59a7884 100644 --- a/examples/lang_1/pom.xml +++ b/examples/lang_1/pom.xml @@ -461,8 +461,8 @@ ISO-8859-1 UTF-8 - 1.6 - 1.6 + 17 + 17 - - org.apache.commons - commons-parent - 15 - 4.0.0 org.apache.commons commons-math @@ -237,8 +232,8 @@ MATH 12310485 - 1.6 - 1.6 + 17 + 17 UTF-8 UTF-8 @@ -280,6 +275,15 @@ + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 1.8 + 1.8 + + diff --git a/pom.xml b/pom.xml index 5cc0aed74..96f529a3b 100644 --- a/pom.xml +++ b/pom.xml @@ -1,4 +1,4 @@ - 4.0.0 @@ -125,12 +125,6 @@ 1.7.3 - - com.gzoltar - gzoltar - 0.1.1 - - @@ -151,6 +145,11 @@ 1.0.0-SNAPSHOT + + com.google.guava + guava + 30.1-jre + com.google.code.gson diff --git a/src/main/java/fr/inria/astor/core/faultlocalization/gzoltar/GZoltarClientMasterFaultLocalization.java b/src/main/java/fr/inria/astor/core/faultlocalization/gzoltar/GZoltarClientMasterFaultLocalization.java deleted file mode 100644 index 8c3ef24c3..000000000 --- a/src/main/java/fr/inria/astor/core/faultlocalization/gzoltar/GZoltarClientMasterFaultLocalization.java +++ /dev/null @@ -1,261 +0,0 @@ -package fr.inria.astor.core.faultlocalization.gzoltar; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; - -import org.apache.log4j.Logger; - -import fr.inria.astor.core.faultlocalization.FaultLocalizationResult; -import fr.inria.astor.core.faultlocalization.entity.SuspiciousCode; -import fr.inria.astor.core.manipulation.MutationSupporter; -import fr.inria.astor.core.setup.ConfigurationProperties; - -/** - * GZoltar using Client Master Architecture - * - * @author Matias Martinez - * - */ -public class GZoltarClientMasterFaultLocalization extends GZoltarFaultLocalization { - - static Logger logger = Logger.getLogger(GZoltarClientMasterFaultLocalization.class.getName()); - - @Override - public FaultLocalizationResult searchSuspicious(String locationBin, List testsToExecute, - List toInstrument, List cp, String srcFolder) throws Exception { - - logger.info("GZoltar CM location " + locationBin); - Double thr = ConfigurationProperties.getPropertyDouble("flthreshold"); - logger.info("Gzoltar fault localization: min susp value parameter: " + thr); - - Set tcset = new HashSet(testsToExecute); - - String ncp = cp.stream().collect(Collectors.joining(File.pathSeparator)) + File.pathSeparator + locationBin; - - String targetClasses = ConfigurationProperties.getProperty("classestoinstrument"); - - if (targetClasses == null || targetClasses.trim().isEmpty()) - targetClasses = MutationSupporter.currentSupporter.getFactory().Type().getAll().stream() - .map(t -> t.getQualifiedName()).collect(Collectors.joining(File.pathSeparator)); - - String testNames = testsToExecute.stream().collect(Collectors.joining(File.pathSeparator)); - logger.debug("#test before: " + testsToExecute.size() + " #after " + tcset.size()); - logger.debug("#Target classes: " + MutationSupporter.currentSupporter.getFactory().Type().getAll().size()); - - String jvmPath = ConfigurationProperties.getProperty("jvm4testexecution"); - - Process p = null; - jvmPath += File.separator + "java"; - - try { - - List command = new ArrayList(); - - long init = new Date().getTime(); - command.add(jvmPath); - // command.add("-Xmx2048m"); - command.add("-jar"); - command.add(new File("./lib/com.gzoltar-1.6.1-java7-jar-with-dependencies.jar").getAbsolutePath()); - - command.add("-Dproject_cp=" + ncp); - command.add("-Dtargetclasses=" + targetClasses); - command.add("-Dtestclasses=" + testNames); - command.add("-diagnose"); - command.add("-Dtimelimit=" + (long) (ConfigurationProperties.getPropertyDouble("tmax2") / 1000));// milliseconds - // to - // seconds - // command.add("-Dloglevel=None"); - - Path foutput = Files.createTempDirectory("tempgz"); - command.add("-Dgzoltar_data_dir=" + foutput.toAbsolutePath()); - - printCommandToExecute(command); - - ProcessBuilder pb = new ProcessBuilder("/bin/bash"); - pb.redirectOutput(); - pb.redirectErrorStream(true); - pb.directory(new File(((ConfigurationProperties.getProperty("location"))))); - - long t_start = System.currentTimeMillis(); - p = pb.start(); - - BufferedWriter p_stdin = new BufferedWriter(new OutputStreamWriter(p.getOutputStream())); - - try { - // Set up the timezone - String timeZone = ConfigurationProperties.getProperty("timezone"); - p_stdin.write("TZ=\"" + timeZone + "\""); - p_stdin.newLine(); - p_stdin.flush(); - p_stdin.write("export TZ"); - p_stdin.newLine(); - p_stdin.flush(); - p_stdin.write("echo $TZ"); - p_stdin.newLine(); - p_stdin.flush(); - // Writing the command - p_stdin.write(toString(command)); - p_stdin.newLine(); - p_stdin.flush(); - - // end - p_stdin.write("exit"); - p_stdin.newLine(); - p_stdin.flush(); - - } catch (IOException e) { - logger.error(e); - } - - // - p.waitFor((long) (ConfigurationProperties.getPropertyDouble("tmax2") * 2), TimeUnit.MINUTES); - long t_end = System.currentTimeMillis(); - logger.debug("Execution time " + ((t_end - t_start) / 1000) + " seconds"); - - readOut(p); - p.destroyForcibly(); - - long end = new Date().getTime(); - - logger.debug("GZ CM time " + (end - init) / 1000 + " seconds"); - // - - // - FaultLocalizationResult fl = parseOutputFile(foutput.toFile(), thr); - // - return fl; - // - } catch (IOException | InterruptedException | IllegalThreadStateException ex) { - logger.info("The Process that runs JUnit test cases had problems: " + ex.getMessage()); - if (p != null) - p.destroyForcibly(); - } - return null; - } - - private void readOut(Process p) { - boolean success = false; - String out = ""; - try { - BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); - String line; - while ((line = in.readLine()) != null) { - out += line + "\n"; - - } - in.close(); - } catch (Exception e) { - e.printStackTrace(); - } - System.out.println(out); - } - - private void printCommandToExecute(List command) { - String commandString = toString(command); - int trunk = ConfigurationProperties.getPropertyInt("commandTrunk"); - String commandToPrint = (trunk != 0 && commandString.length() > trunk) - ? (commandString.substring(0, trunk) + "..AND " + (commandString.length() - trunk) + " CHARS MORE...") - : commandString; - logger.info("Executing process: \n" + commandToPrint); - } - - private String toString(List command) { - String commandString = command.toString().replace("[", "").replace("]", "").replace(",", " "); - return commandString; - } - - public SuspiciousCode parseLine(String line) { - try { - if (line.equals("Component,OCHIAI")) - return null; - SuspiciousCode sc = new SuspiciousCode(); - // - String[] infoLine = line.split("#"); - String[] linesusp = infoLine[1].split(","); - sc.setLineNumber(Integer.valueOf(linesusp[0])); - sc.setSusp(Double.parseDouble(linesusp[1])); - - String[] splitFile = line.split("<"); - String fileName = splitFile[0].replace("[", "."); - sc.setFileName(fileName); - String[] classLine = splitFile[1].split("\\{"); - String className = classLine[0]; - sc.setClassName(className); - String method = ""; - if (classLine.length > 1) - method = classLine[1];// - sc.setMethodName(method); - - return sc; - } catch (Exception e) { - logger.error("-->" + line); - logger.error(e); - e.printStackTrace(); - return null; - } - } - - public FaultLocalizationResult parseOutputFile(File path, Double thr) { - File spectrapath = new File(path.getAbsolutePath() + File.separator + "spectra"); - File testpath = new File(path.getAbsolutePath() + File.separator + "tests"); - - List codes = new ArrayList<>(); - List failingTestCases = new ArrayList<>(); - try (BufferedReader br = new BufferedReader(new FileReader(spectrapath))) { - - String line; - while ((line = br.readLine()) != null) { - // System.out.println(line); - SuspiciousCode sc = parseLine(line); - if (sc != null && sc.getSuspiciousValue() > 0 && sc.getSuspiciousValue() >= thr) - codes.add(sc); - } - - } catch (IOException e) { - e.printStackTrace(); - } - - // org.apache.commons.lang3.AnnotationUtilsTest#testAnnotationsOfDifferingTypes,PASS,92358174 - try (BufferedReader br = new BufferedReader(new FileReader(testpath))) { - - String line; - while ((line = br.readLine()) != null) { - System.out.println(line); - String[] lineS = line.split(","); - if (lineS[1].equals("FAIL")) { - String name = lineS[0].split("#")[0]; - if (!failingTestCases.contains(name)) - failingTestCases.add(name); - } - - } - - } catch (IOException e) { - e.printStackTrace(); - } - - /// - - codes.forEach(e -> logger.debug(e)); - failingTestCases.forEach(e -> logger.debug(e)); - FaultLocalizationResult result = new FaultLocalizationResult(codes, failingTestCases); - - return result; - - } - -} diff --git a/src/main/java/fr/inria/astor/core/faultlocalization/gzoltar/GZoltarFaultLocalization.java b/src/main/java/fr/inria/astor/core/faultlocalization/gzoltar/GZoltarFaultLocalization.java deleted file mode 100644 index 5f6c2984a..000000000 --- a/src/main/java/fr/inria/astor/core/faultlocalization/gzoltar/GZoltarFaultLocalization.java +++ /dev/null @@ -1,331 +0,0 @@ -package fr.inria.astor.core.faultlocalization.gzoltar; - -import static fr.inria.astor.core.faultlocalization.FaultLocalizationUtils.addFlakyFailingTestToIgnoredList; - -import java.io.File; -import java.net.URL; -import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.BitSet; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.stream.Collectors; - -import org.apache.log4j.Logger; - -import com.gzoltar.core.GZoltar; -import com.gzoltar.core.components.Statement; -import com.gzoltar.core.instr.testing.TestResult; - -import fr.inria.astor.core.entities.ProgramVariant; -import fr.inria.astor.core.faultlocalization.FaultLocalizationResult; -import fr.inria.astor.core.faultlocalization.FaultLocalizationStrategy; -import fr.inria.astor.core.faultlocalization.entity.SuspiciousCode; -import fr.inria.astor.core.setup.ConfigurationProperties; -import fr.inria.astor.core.setup.FinderTestCases; -import fr.inria.astor.core.setup.ProjectRepairFacade; - -/** - * Facade of Fault Localization techniques like GZoltar or own implementations - * (package {@link org.inria.sacha.faultlocalization}.). - * - * @author Matias Martinez, matias.martinez@inria.fr - * - */ -public class GZoltarFaultLocalization implements FaultLocalizationStrategy { - - public static final String PACKAGE_SEPARATOR = "-"; - Logger logger = Logger.getLogger(GZoltarFaultLocalization.class.getName()); - - public FaultLocalizationResult searchSuspicious(ProjectRepairFacade project, - List regressionTestForFaultLocalization) throws Exception { - - return this.calculateSuspicious( - ConfigurationProperties.getProperty("location") + File.separator - + ConfigurationProperties.getProperty("srcjavafolder"), - project.getOutDirWithPrefix(ProgramVariant.DEFAULT_ORIGINAL_VARIANT), - ConfigurationProperties.getProperty("packageToInstrument"), ProgramVariant.DEFAULT_ORIGINAL_VARIANT, - project.getProperties().getFailingTestCases(), regressionTestForFaultLocalization, - ConfigurationProperties.getPropertyBool("regressionforfaultlocalization"), project); - - } - - private FaultLocalizationResult calculateSuspicious(String locationSrc, String locationBytecode, - String packageToInst, String mutatorIdentifier, List failingTest, List allTest, - boolean mustRunAllTest, ProjectRepairFacade project) throws Exception { - - List testcasesToExecute = null; - - if (mustRunAllTest) { - testcasesToExecute = allTest; - } else { - testcasesToExecute = failingTest; - } - - if (testcasesToExecute == null || testcasesToExecute.isEmpty()) { - new IllegalArgumentException("Astor needs at least one test case for running"); - } - - logger.info("-Executing Gzoltar classpath: " + locationBytecode + " from " + +testcasesToExecute.size() - + " classes with test cases"); - - List listTOInst = new ArrayList(); - listTOInst.add(packageToInst); - - List classPath = new ArrayList(); - - if (ConfigurationProperties.getPropertyBool("runonoriginalbin")) { - classPath.addAll(project.getProperties().getOriginalAppBinDir()); - classPath.addAll(project.getProperties().getOriginalTestBinDir()); - } else { - classPath.add(locationBytecode); - } - - for (URL dep : project.getProperties().getDependencies()) { - classPath.add(dep.getPath()); - } - - FaultLocalizationResult flResult = this.searchSuspicious(locationBytecode, testcasesToExecute, listTOInst, - classPath, locationSrc); - - List suspiciousStatemens = flResult.getCandidates(); - - if ((suspiciousStatemens == null || suspiciousStatemens.isEmpty()) - && !ConfigurationProperties.getPropertyBool("canhavezerosusp")) - throw new IllegalArgumentException("No suspicious gen for analyze"); - - if (ConfigurationProperties.getPropertyBool("ignoreflakyinfl")) { - addFlakyFailingTestToIgnoredList(flResult.getFailingTestCasesClasses(), project); - } - - if (project.getProperties().getFailingTestCases().isEmpty()) { - logger.debug("Failing test cases was not pass as argument: we use failings from FL " - + flResult.getFailingTestCasesClasses()); - project.getProperties().setFailingTestCases(flResult.getFailingTestCasesClasses()); - } - - if (ConfigurationProperties.getPropertyBool("filterfaultlocalization")) { - List filtercandidates = new ArrayList(); - - for (SuspiciousCode suspiciousCode : suspiciousStatemens) { - filtercandidates.add(suspiciousCode); - logger.info("Suspicious: line " + suspiciousCode.getClassName() + " l: " - + suspiciousCode.getLineNumber() + ", susp " + suspiciousCode.getSuspiciousValue()); - } - flResult.setCandidates(filtercandidates); - - } - return flResult; - - } - - protected FaultLocalizationResult searchSuspicious(String locationBytecode, List testsToExecute, - List toInstrument, List cp, String srcFolder) throws Exception { - - List failingTestCasesClasses = new ArrayList(); - List failingTestCasesMethod = new ArrayList(); - List executionTestCasesMethod = new ArrayList(); - - Double thr = ConfigurationProperties.getPropertyDouble("flthreshold"); - logger.info("Gzoltar fault localization: min susp value parameter: " + thr); - // 1. Instantiate GZoltar - // here you need to specify the working directory where the tests will - // be run. Can be the full or relative path. - // Example: GZoltar gz = new - // GZoltar("C:\\Personal\\develop\\workspaceEvolution\\testProject\\target\\classes"); - - File projLocationFile = new File(locationBytecode + File.separator); - String projLocationPath = projLocationFile.getAbsolutePath(); - logger.debug("Gzoltar run over: " + projLocationPath + " , does it exist? " + projLocationFile.exists()); - - GZoltar gz = new GZoltar(System.getProperty("user.dir") + File.separator); - - // 2. Add Package/Class names to instrument - // 3. Add Package/Test Case/Test Suite names to execute - // Example: gz.addPackageToInstrument("org.test1.Person"); - for (String to : toInstrument) { - gz.addPackageToInstrument(to); - } - if (cp != null || !cp.isEmpty()) { - logger.info("-gz-Adding classpath: " + cp); - gz.getClasspaths().addAll(cp); - } - for (String test : testsToExecute) { - gz.addTestToExecute(test); - if (!ConfigurationProperties.getPropertyBool("includeTestInSusp")) { - gz.addClassNotToInstrument(test); - } - } - - String testToAvoid = ConfigurationProperties.getProperty("gzoltartestpackagetoexclude"); - if (testToAvoid != null) { - String[] testtoavoidarray = testToAvoid.split(PACKAGE_SEPARATOR); - for (String test : testtoavoidarray) { - gz.addTestPackageNotToExecute(test); - } - } - - String packagetonotinstrument = ConfigurationProperties.getProperty("gzoltarpackagetonotinstrument"); - - if (packagetonotinstrument != null) { - String[] packages = packagetonotinstrument.split(PACKAGE_SEPARATOR); - for (String p : packages) { - gz.addPackageNotToInstrument(p); - - } - - } - - gz.run(); - int[] sum = new int[2]; - List testResults = gz.getTestResults(); - for (TestResult tr : testResults) { - String testName = tr.getName(); - if (testName.startsWith("junit")) { - continue; - } - sum[0]++; - sum[1] += tr.wasSuccessful() ? 0 : 1; - if (!tr.wasSuccessful()) { - logger.info("Test failt: " + tr.getName()); - - String testCaseName = testName.split("\\#")[0]; - if (!failingTestCasesClasses.contains(testCaseName)) { - failingTestCasesClasses.add(testCaseName); - } - failingTestCasesMethod.add(testName); - - } - executionTestCasesMethod.add(tr.getName()); - } - - int gzPositives = gz.getSuspiciousStatements().stream().filter(x -> x.getSuspiciousness() > 0) - .collect(Collectors.toList()).size(); - - logger.info("Gzoltar Test Result Total:" + sum[0] + ", fails: " + sum[1] + ", GZoltar suspicious " - + gz.getSuspiciousStatements().size() + ", with positive susp " + gzPositives); - - DecimalFormat df = new DecimalFormat("#.###"); - int maxSuspCandidates = ConfigurationProperties.getPropertyInt("maxsuspcandidates"); - - List gzCandidates = new ArrayList(); - - logger.info("nr test results " + testResults.size()); - for (Statement gzoltarStatement : gz.getSuspiciousStatements()) { - String compName = gzoltarStatement.getMethod().getParent().getLabel(); - if (// Kind of files to include in analysis - (ConfigurationProperties.getPropertyBool("includeTestInSusp") || isSource(compName, srcFolder)) - // Analyze suspiciousness - && (!ConfigurationProperties.getPropertyBool("limitbysuspicious") - || (gzoltarStatement.getSuspiciousness() >= thr)) - // - && (!ConfigurationProperties.getPropertyBool("onlympcovered") - || !gzoltarStatement.getCoverage().isEmpty()) - // - && (!ConfigurationProperties.getPropertyBool("onlympfromtest") - || (testsToExecute.contains(gzoltarStatement.getMethod().getParent().getLabel())))) { - - gzCandidates.add(gzoltarStatement); - - } - - } - // If we do not have candidate due the threshold is to high, we add all - // as suspicious - if (gzCandidates.isEmpty()) { - gzCandidates.addAll(gz.getSuspiciousStatements()); - - } - - if (!ConfigurationProperties.getPropertyBool("includeZeros")) { - gzCandidates.removeIf(susp -> (susp.getSuspiciousness() == 0)); - } - - // we order the suspicious DESC - Collections.sort(gzCandidates, (o1, o2) -> Double.compare(o2.getSuspiciousness(), o1.getSuspiciousness())); - - // We select the best X candidates. - int max = (gzCandidates.size() < maxSuspCandidates) ? gzCandidates.size() : maxSuspCandidates; - - List candidates = new ArrayList(); - - for (int i = 0; i < max; i++) { - Statement gzoltarStatement = gzCandidates.get(i); - String compName = gzoltarStatement.getMethod().getParent().getLabel(); - - logger.debug("Suspicious: line " + compName + " l: " + gzoltarStatement.getLineNumber() + ", susp " - + df.format(gzoltarStatement.getSuspiciousness())); - SuspiciousCode suspcode = new SuspiciousCode(compName, gzoltarStatement.getMethod().getName(), - gzoltarStatement.getLineNumber(), gzoltarStatement.getSuspiciousness(), - gzoltarStatement.getCountMap()); - candidates.add(suspcode); - - List test = getTestCaseResults(testResults, gzoltarStatement); - suspcode.setCoveredByTests(test); - - } - - logger.info("Gzoltar found: " + candidates.size() + " with susp > " + thr + ", we consider: " + max); - - FaultLocalizationResult faultLocalizationResult = new FaultLocalizationResult(candidates, - failingTestCasesClasses); - - faultLocalizationResult.setFailingTestCasesClasses(failingTestCasesClasses); - faultLocalizationResult.setFailingTestCasesMethods(failingTestCasesMethod); - faultLocalizationResult.setExecutedTestCasesMethods(executionTestCasesMethod); - - return faultLocalizationResult; - } - - private List getTestCaseResults(List testResults, Statement gzoltarStatement) { - List tcresults = new ArrayList<>(); - - BitSet coverage = gzoltarStatement.getCoverage(); - int nextTest = coverage.nextSetBit(0); - while (nextTest != -1) { - TestResult testResult = testResults.get(nextTest); - if (!ConfigurationProperties.getPropertyBool("savecoverbyfailtests") || !testResult.wasSuccessful()) { - - TestCaseResult tcri = new TestCaseResult(testResult.getName(), testResult.wasSuccessful()); - tcresults.add(tcri); - } - nextTest = coverage.nextSetBit(nextTest + 1); - } - return tcresults; - } - - private boolean isSource(String compName, String srcFolder) { - String clRoot = compName.split("\\$")[0]; - String[] segmentationName = clRoot.split("\\."); - String simpleClassName = segmentationName[segmentationName.length - 1]; - - // File root = new File(srcFolder+"/"+clRoot.replace(".", "/")+".java"); - - return // root.exists() - // && - !compName.toLowerCase().endsWith("test") && !compName.toLowerCase().endsWith("tests") - && !simpleClassName.toLowerCase().startsWith("test") - && !simpleClassName.toLowerCase().startsWith("validate"); - - } - - public class ComparatorCandidates implements Comparator { - - @Override - public int compare(SuspiciousCode o1, SuspiciousCode o2) { - if (o1 == null || o2 == null) { - return 0; - } - return Double.compare(o2.getSuspiciousValue(), o1.getSuspiciousValue()); - } - - } - - @Override - public List findTestCasesToExecute(ProjectRepairFacade projectFacade) { - List testCasesToRun = FinderTestCases.findJUnit4XTestCasesForRegression(projectFacade); - return testCasesToRun; - } - -} diff --git a/src/main/java/fr/inria/astor/core/solutionsearch/AstorCoreEngine.java b/src/main/java/fr/inria/astor/core/solutionsearch/AstorCoreEngine.java index 5295c5812..485935794 100644 --- a/src/main/java/fr/inria/astor/core/solutionsearch/AstorCoreEngine.java +++ b/src/main/java/fr/inria/astor/core/solutionsearch/AstorCoreEngine.java @@ -12,6 +12,7 @@ import java.util.Map; import java.util.concurrent.TimeUnit; +import fr.inria.astor.core.faultlocalization.gzoltar.NovelGZoltarFaultLocalization; import org.apache.commons.collections.map.HashedMap; import org.apache.commons.io.FileUtils; import org.apache.log4j.Logger; @@ -38,7 +39,6 @@ import fr.inria.astor.core.faultlocalization.cocospoon.CocoFaultLocalization; import fr.inria.astor.core.faultlocalization.entity.SuspiciousCode; import fr.inria.astor.core.faultlocalization.flacoco.FlacocoFaultLocalization; -import fr.inria.astor.core.faultlocalization.gzoltar.GZoltarFaultLocalization; import fr.inria.astor.core.manipulation.MutationSupporter; import fr.inria.astor.core.manipulation.bytecode.entities.CompilationResult; import fr.inria.astor.core.manipulation.filters.ExpressionIngredientSpaceProcessor; @@ -1089,7 +1089,7 @@ protected void loadFaultLocalization() throws Exception { if (flvalue.equals("flacoco")) { this.setFaultLocalization(new FlacocoFaultLocalization()); } else if (flvalue.equals("gzoltar")) { - this.setFaultLocalization(new GZoltarFaultLocalization()); + this.setFaultLocalization(new NovelGZoltarFaultLocalization()); } else if (flvalue.equals("cocospoon")) { this.setFaultLocalization(new CocoFaultLocalization()); } else diff --git a/src/main/java/fr/inria/main/FaultLocalizationMain.java b/src/main/java/fr/inria/main/FaultLocalizationMain.java index 6b00600e1..44b70c7ce 100644 --- a/src/main/java/fr/inria/main/FaultLocalizationMain.java +++ b/src/main/java/fr/inria/main/FaultLocalizationMain.java @@ -11,7 +11,6 @@ import fr.inria.astor.core.faultlocalization.FaultLocalizationResult; import fr.inria.astor.core.faultlocalization.entity.SuspiciousCode; import fr.inria.astor.core.faultlocalization.flacoco.FlacocoFaultLocalization; -import fr.inria.astor.core.faultlocalization.gzoltar.GZoltarFaultLocalization; import fr.inria.astor.core.faultlocalization.gzoltar.NovelGZoltarFaultLocalization; import fr.inria.astor.core.setup.ConfigurationProperties; @@ -83,7 +82,7 @@ else if (ConfigurationProperties.hasProperty("filetestcases4fl")) { executed = true; - GZoltarFaultLocalization gZoltarFaultLocalization = new GZoltarFaultLocalization(); + NovelGZoltarFaultLocalization gZoltarFaultLocalization = new NovelGZoltarFaultLocalization(); FaultLocalizationResult result = null; diff --git a/src/test/java/fr/inria/astor/test/repair/QuixBugsRepairTest.java b/src/test/java/fr/inria/astor/test/repair/QuixBugsRepairTest.java index db68e8173..07820ef57 100644 --- a/src/test/java/fr/inria/astor/test/repair/QuixBugsRepairTest.java +++ b/src/test/java/fr/inria/astor/test/repair/QuixBugsRepairTest.java @@ -21,7 +21,7 @@ import fr.inria.astor.core.entities.ModificationPoint; import fr.inria.astor.core.entities.OperatorInstance; import fr.inria.astor.core.entities.SuspiciousModificationPoint; -import fr.inria.astor.core.faultlocalization.gzoltar.GZoltarFaultLocalization; +import fr.inria.astor.core.faultlocalization.flacoco.FlacocoFaultLocalization; import fr.inria.astor.core.ingredientbased.IngredientBasedApproach; import fr.inria.astor.core.setup.ConfigurationProperties; import fr.inria.astor.core.solutionsearch.AstorCoreEngine; @@ -69,7 +69,7 @@ public static CommandSummary getQuixBugsCommand(String name) { + File.pathSeparator + "FALSE" + File.pathSeparator + "maxtime" + File.pathSeparator + "120" + File.pathSeparator + "autocompile" + File.pathSeparator + "false" + File.pathSeparator + "gzoltarpackagetonotinstrument" + File.pathSeparator + "com.google.gson_engine" - + GZoltarFaultLocalization.PACKAGE_SEPARATOR + "java_programs_test"); + + File.pathSeparator + "java_programs_test"); cs.command.put("-location", new File("./examples/quixbugscompiled/" + name).getAbsolutePath()); return cs; diff --git a/src/test/java/fr/inria/astor/test/repair/evaluation/extensionpoints/FaultLocalizationExtensionTest.java b/src/test/java/fr/inria/astor/test/repair/evaluation/extensionpoints/FaultLocalizationExtensionTest.java index 2b09126f8..7b0ec4740 100644 --- a/src/test/java/fr/inria/astor/test/repair/evaluation/extensionpoints/FaultLocalizationExtensionTest.java +++ b/src/test/java/fr/inria/astor/test/repair/evaluation/extensionpoints/FaultLocalizationExtensionTest.java @@ -4,7 +4,7 @@ import fr.inria.astor.core.entities.ProgramVariant; import fr.inria.astor.core.entities.SuspiciousModificationPoint; import fr.inria.astor.core.faultlocalization.flacoco.FlacocoFaultLocalization; -import fr.inria.astor.core.faultlocalization.gzoltar.GZoltarFaultLocalization; +import fr.inria.astor.core.faultlocalization.gzoltar.NovelGZoltarFaultLocalization; import fr.inria.astor.core.setup.ConfigurationProperties; import fr.inria.astor.core.solutionsearch.navigation.SuspiciousNavigationValues; import fr.inria.astor.core.stats.PatchStat; @@ -30,7 +30,7 @@ public class FaultLocalizationExtensionTest { @Test public void testFlacocoExtensionjKaliFindingMoreThanOneSolution() throws Exception { AstorMain gzoltarMain = - runjKaliFindingMoreThanOneSolution(GZoltarFaultLocalization.class.getCanonicalName()); + runjKaliFindingMoreThanOneSolution(NovelGZoltarFaultLocalization.class.getCanonicalName()); AstorMain flacocoMain = runjKaliFindingMoreThanOneSolution(FlacocoFaultLocalization.class.getCanonicalName()); @@ -40,7 +40,7 @@ public void testFlacocoExtensionjKaliFindingMoreThanOneSolution() throws Excepti @Test public void testFlacocoExtensionShortestPathLenghtsRepairStatement() throws Exception { AstorMain gzoltarMain = - run_shortest_path_lengthsRepair_statement(GZoltarFaultLocalization.class.getCanonicalName()); + run_shortest_path_lengthsRepair_statement(NovelGZoltarFaultLocalization.class.getCanonicalName()); AstorMain flacocoMain = run_shortest_path_lengthsRepair_statement(FlacocoFaultLocalization.class.getCanonicalName()); @@ -54,7 +54,7 @@ public void testFlacocoExtensionShortestPathLenghtsRepairStatement() throws Exce @Ignore public void testFlacocoExtensionMath85() throws Exception { AstorMain gzoltarMain = - runMath85(GZoltarFaultLocalization.class.getCanonicalName()); + runMath85(NovelGZoltarFaultLocalization.class.getCanonicalName()); AstorMain flacocoMain = runMath85(FlacocoFaultLocalization.class.getCanonicalName()); diff --git a/src/test/java/fr/inria/astor/test/repair/evaluation/extensionpoints/operatorselection/RepairOperatorTest.java b/src/test/java/fr/inria/astor/test/repair/evaluation/extensionpoints/operatorselection/RepairOperatorTest.java index 406b6bc8b..b4a1e3f55 100644 --- a/src/test/java/fr/inria/astor/test/repair/evaluation/extensionpoints/operatorselection/RepairOperatorTest.java +++ b/src/test/java/fr/inria/astor/test/repair/evaluation/extensionpoints/operatorselection/RepairOperatorTest.java @@ -8,7 +8,6 @@ import java.util.Arrays; import java.util.List; -import fr.inria.astor.core.faultlocalization.gzoltar.GZoltarFaultLocalization; import org.junit.Test; import fr.inria.astor.approaches.jgenprog.JGenProg;