if(criterion.equals(Properties.Criterion.EXCEPTION)){ cmd.append("," + RuntimeVariable.Explicit_MethodExceptions + "," + RuntimeVariable.Explicit_TypeExceptions); cmd.append("," + RuntimeVariable.Implicit_MethodExceptions + "," + RuntimeVariable.Implicit_TypeExceptions); } else if(criterion.equals(Properties.Criterion.STATEMENT)){ cmd.append("," + RuntimeVariable.Statements_Executed);
return ExceptionCoverageTestFitness.class; case REGRESSION: throw new RuntimeException("No test fitness function defined for " + criterion.name()); case READABILITY: throw new RuntimeException("No test fitness function defined for " + criterion.name()); case ONLYBRANCH: return OnlyBranchCoverageTestFitness.class; return TryCatchCoverageTestFitness.class; default: throw new RuntimeException("No criterion defined for " + criterion.name());
Double branchCoverage = getDoubleValue(map,BranchCoverage); if(criteria!=null && criteria.length==1 && criteria[0].equalsIgnoreCase(Criterion.BRANCH.toString()) && coverage!=null && branchCoverage!=null){
AtMostOnceLogger.warn(logger, "Unknown criterion '" + criterion.name() + "'"); break;
LoggingUtils.getEvoLogger().info("* " + ClientProcess.getPrettyPrintIdentifier() + "Instrumentation exceeds Java's 64K limit per method in target class"); Properties.Criterion[] newCriteria = Arrays.stream(Properties.CRITERION).filter(t -> !t.equals(Properties.Criterion.STRONGMUTATION) && !t.equals(Properties.Criterion.WEAKMUTATION) && !t.equals(Properties.Criterion.MUTATION)).toArray(Properties.Criterion[]::new); if(newCriteria.length < Properties.CRITERION.length) { TestGenerationContext.getInstance().resetContext();
coverageBitString.put(criterion.name(), buffer); ClientServices.getInstance().getClientNode().trackOutputVariable(RuntimeVariable.CoverageBitString, coverageBitString.size() == 0 ? "0" : coverageBitString.values().toString().replace("[", "").replace("]", "").replace(", ", ""));
Properties.REPORT_DIR + File.separator + "data" + File.separator + Properties.TARGET_CLASS + File.separator + Properties.Criterion.LINE.name() + File.separator + Properties.COVERAGE_MATRIX_FILENAME; System.out.println("CoverageMatrix file " + coveragematrix_file);
Properties.REPORT_DIR + File.separator + "data" + File.separator + targetClass + File.separator + Properties.Criterion.LINE.name() + File.separator + Properties.COVERAGE_MATRIX_FILENAME; System.out.println("matrix_file: " + matrix_file);
Properties.REPORT_DIR + File.separator + "data" + File.separator + targetClass + File.separator + Properties.Criterion.LINE.name() + File.separator + Properties.COVERAGE_MATRIX_FILENAME; System.out.println("matrix_file: " + matrix_file);
Properties.REPORT_DIR + File.separator + "data" + File.separator + Properties.TARGET_CLASS + File.separator + Properties.Criterion.LINE.name() + File.separator + Properties.COVERAGE_MATRIX_FILENAME; System.out.println("CoverageMatrix file " + coveragematrix_file);
Properties.REPORT_DIR + File.separator + "data" + File.separator + Properties.TARGET_CLASS + File.separator + Properties.Criterion.LINE.name() + File.separator + Properties.COVERAGE_MATRIX_FILENAME; System.out.println("CoverageMatrix file " + coveragematrix_file);
Properties.REPORT_DIR + File.separator + "data" + File.separator + targetClass + File.separator + Properties.Criterion.LINE.name() + File.separator + Properties.COVERAGE_MATRIX_FILENAME; System.out.println("matrix_file: " + matrix_file);
Properties.REPORT_DIR + File.separator + "data" + File.separator + Properties.TARGET_CLASS + File.separator + Properties.Criterion.LINE.name() + File.separator + Properties.COVERAGE_MATRIX_FILENAME; System.out.println("CoverageMatrix file " + coveragematrix_file);
public static void writeCoverage(boolean[][] coverage, Properties.Criterion criterion) { StringBuilder suite = new StringBuilder(); for (int i = 0; i < coverage.length; i++) { StringBuilder test = new StringBuilder(); for (int j = 0; j < coverage[i].length - 1; j++) { if (coverage[i][j]) test.append("1 "); else test.append("0 "); } if (!test.toString().contains("1")) // if a test case does not contains a "1", means it does not coverage anything continue ; if (coverage[i][coverage[i].length - 1]) test.append("+\n"); else test.append("-\n"); suite.append(test); } FileIOUtils.writeFile(suite.toString(), new File(getReportDir().getAbsolutePath() + File.separator + "data" + File.separator + Properties.TARGET_CLASS + File.separator + criterion.toString() + File.separator + Properties.COVERAGE_MATRIX_FILENAME)); }
public static void analyzeCriteria(TestSuiteChromosome testSuite, String criteria) { // If coverage of target criteria is not already measured if (!Properties.COVERAGE) { for (Criterion c : Properties.CRITERION) { // Analyse coverage for enabled criteria // LoggingUtils.getEvoLogger().info(" - " + c.name()); logger.debug("Measuring coverage of target criterion {}", c); analyzeCoverage(testSuite, c.name()); } } for (String extraCriterion : Arrays.asList(criteria.toUpperCase().split(","))) { if (extraCriterion.equals("CBRANCH")) { Properties.INSTRUMENT_METHOD_CALLS = true; } // Analyse coverage for extra criteria if (!ArrayUtil.contains(Properties.CRITERION, extraCriterion)) { logger.debug("Measuring additional coverage of target criterion {}", extraCriterion); analyzeCoverage(testSuite, extraCriterion); } } }
public MutationSuiteFitness(Criterion criterion) { if (criterion != Criterion.STRONGMUTATION && criterion != Criterion.WEAKMUTATION && criterion != Criterion.ONLYMUTATION) { throw new RuntimeException("Invalid initialisation of MutationSuiteFitness with criterion '" + criterion.name() + "'. MutationSuiteFitness can only be invoked with STRONGMUTATION, WEAKMUTATION, and ONLYMUTATION"); } MutationFactory factory = (MutationFactory) FitnessFunctions.getFitnessFactory(criterion); boolean archive = Properties.TEST_ARCHIVE; Properties.TEST_ARCHIVE = false; branchFitness = new BranchCoverageSuiteFitness(); Properties.TEST_ARCHIVE = archive; for (MutationTestFitness goal : factory.getCoverageGoals()) { mutantMap.put(goal.getMutation().getId(), goal); if(Properties.TEST_ARCHIVE) Archive.getArchiveInstance().addTarget(goal); } this.numMutants = this.mutantMap.size(); }
private static void analyzeCoverage(TestSuiteChromosome testSuite, String criterion) { try { Properties.Criterion crit = Properties.Criterion.valueOf(criterion.toUpperCase()); analyzeCoverage(testSuite, crit); } catch (IllegalArgumentException e) { LoggingUtils.getEvoLogger().info("* Unknown coverage criterion: " + criterion); } }
private void fillInformationFromConfiguration(TestGenerationResultImpl result) { result.setClassUnderTest(Properties.TARGET_CLASS); String[] criteria = new String[Properties.CRITERION.length]; for (int i = 0; i < Properties.CRITERION.length; i++) criteria[i] = Properties.CRITERION[i].name(); result.setTargetCriterion(criteria); }