/** * {@inheritDoc} */ @Override public boolean isDetectedBy(Assertion assertion) { if (assertion instanceof PrimitiveFieldAssertion) { PrimitiveFieldAssertion ass = (PrimitiveFieldAssertion) assertion; //TODO: removed ` && fieldMap.containsKey(ass.field)` for regression testing. if (ass.source.equals(var)) { if (Properties.isRegression()) { if (ass.field != null && signatureFieldMap.containsKey(ass.field.toString()) && fieldMap.containsKey(signatureFieldMap.get(ass.field.toString()))) { return !fieldMap.get(signatureFieldMap.get(ass.field.toString())).equals(ass.value); } } else { if (fieldMap.containsKey(ass.field)) { return !fieldMap.get(ass.field).equals(ass.value); } } } } return false; }
/** * {@inheritDoc} */ @Override public boolean isDetectedBy(Assertion assertion) { if (assertion instanceof SameAssertion) { SameAssertion ass = (SameAssertion) assertion; if (ass.source.equals(var)) { if (Properties.isRegression()) { if (equalityMapIntVar.get(ass.dest.getStPosition()) != null && equalityMap.get(equalityMapIntVar.get(ass.dest.getStPosition())) != null) { return !equalityMap.get(equalityMapIntVar.get(ass.dest.getStPosition())) .equals(ass.value); } } else { if (equalityMap.containsKey(ass.dest)) { return !equalityMap.get(ass.dest).equals(ass.value); } } } } return false; }
/** {@inheritDoc} */ @Override public Set<Assertion> getAssertions(OutputTraceEntry other) { Set<Assertion> assertions = new HashSet<Assertion>(); if (other instanceof NullTraceEntry) { NullTraceEntry otherEntry = (NullTraceEntry) other; if (var.equals(otherEntry.var) && otherEntry.isNull != isNull) { NullAssertion assertion = new NullAssertion(); assertion.value = isNull; assertion.source = var; if(Properties.isRegression()) assertion.setComment("// (Null) Original Value: " + var +" | Regression Value: " + otherEntry.var); assertions.add(assertion); assert (assertion.isValid()); } } return assertions; }
assertion.inspector = methodInspectorMap.get(inspector); assertion.source = var; if (Properties.isRegression()) { assertion.setComment("// (Inspector) Original Value: " + inspectorMap.get(methodInspectorMap.get(inspector)) + " | Regression Value: "
if (Properties.isRegression()) { double distance = ObjectDistanceCalculator .getObjectDistance(equalityMap.get(equalityMapIntVar.get(otherVar)), assertion.dest = equalityMapIntVar.get(otherVar); assertion.value = equalityMap.get(equalityMapIntVar.get(otherVar)); if (Properties.isRegression()) { assertion.setComment( "// (Same) Original Value: " + equalityMap.get(equalityMapIntVar.get(otherVar))
assertion.dest = equalityMapIntVar.get(otherVar); assertion.value = equalityMap.get(equalityMapIntVar.get(otherVar)); if (Properties.isRegression()) { assertion.setComment( "// (Comp) Original Value: " + equalityMap.get(equalityMapIntVar.get(otherVar))
/** * {@inheritDoc} */ @Override public boolean isDetectedBy(Assertion assertion) { if (assertion instanceof InspectorAssertion) { InspectorAssertion ass = (InspectorAssertion) assertion; if (ass.source.same(var)) { if (Properties.isRegression()) { // Use the internal map to locate the inspector assertion String key = ass.getInspector().getClassName() + " " + ass.getInspector().getMethodCall(); Inspector inspector = methodInspectorMap.get(key); if (inspector != null && inspectorMap.get(inspector) != null && ass.value != null) { return !inspectorMap.get(inspector).equals(ass.value); } } else { if (inspectorMap.containsKey(ass.inspector) && inspectorMap.get(ass.inspector) != null && ass.value != null) { return !inspectorMap.get(ass.inspector).equals(ass.value); } } } } return false; }
PrimitiveFieldTraceEntry otherEntry = (PrimitiveFieldTraceEntry) other; if (Properties.isRegression()) { for (String fieldSignature : signatureFieldMap.keySet()) { if (!otherEntry.signatureFieldMap.containsKey(fieldSignature)) {
private void initCache() { cache = new Cache(); String cp = ClassPathHandler.getInstance().getTargetProjectClasspath(); // If running in regression mode and current ClassLoader is the regression ClassLoader if(Properties.isRegression() && classLoader==TestGenerationContext.getInstance().getRegressionClassLoaderForSUT()) cp = org.evosuite.Properties.REGRESSIONCP; for(String entry : cp.split(File.pathSeparator)){ addEntry(entry); } }
/** * {@inheritDoc} */ @Override public Set<Assertion> getAssertions(OutputTraceEntry other) { Set<Assertion> assertions = new HashSet<Assertion>(); if (other instanceof PrimitiveTraceEntry) { PrimitiveTraceEntry otherEntry = (PrimitiveTraceEntry) other; if (otherEntry != null && otherEntry.value != null && value != null && var.getStPosition() == otherEntry.var.getStPosition()) { if (!value.equals(otherEntry.value)) { double distance = ObjectDistanceCalculator.getObjectDistance(value, otherEntry.value); if (distance == 0) { return assertions; } PrimitiveAssertion assertion = new PrimitiveAssertion(); assertion.value = value; assertion.source = var; if (Properties.isRegression()) { assertion.setComment("// (Primitive) Original Value: " + value + " | Regression Value: " + otherEntry.value); } assertions.add(assertion); assert (assertion.isValid()); } } } return assertions; }
if(Properties.isRegression()){ Set<VariableReference> dependencies = currentTest.getDependencies(statement.getReturnValue()); if (!hasCUT(statement, dependencies)){
if (Properties.isRegression() && exception.getMessage() != null) { result += " assertTrue(e.getMessage().equals(\"" + StringEscapeUtils.escapeJava(exceptionMessage) + "\"));"; result += " \n";
if (Properties.isRegression() && Properties.REGRESSION_SKIP_SIMILAR) { if (Properties.isRegression() && Properties.REGRESSION_SKIP_DIFFERENT_CFG) {
Set<VariableReference> dependencies = currentTest.getDependencies(statement.getReturnValue()); if(Properties.isRegression()){ if (!hasCUT(statement, dependencies)){ return;
/** * Execute a test case on the original unit * * @param test * The test case that should be executed * @return a {@link org.evosuite.testcase.execution.ExecutionResult} object. */ protected ExecutionResult runTest(TestCase test) { ExecutionResult result = new ExecutionResult(test); try { logger.debug("Executing test"); result = TestCaseExecutor.getInstance().execute(test); int num = test.size(); MaxStatementsStoppingCondition.statementsExecuted(num); result.setTrace(comparisonObserver.getTrace(), ComparisonTraceEntry.class); result.setTrace(primitiveObserver.getTrace(), PrimitiveTraceEntry.class); result.setTrace(inspectorObserver.getTrace(), InspectorTraceEntry.class); result.setTrace(fieldObserver.getTrace(), PrimitiveFieldTraceEntry.class); result.setTrace(nullObserver.getTrace(), NullTraceEntry.class); result.setTrace(sameObserver.getTrace(), SameTraceEntry.class); if(!Properties.isRegression()) result.setTrace(arrayObserver.getTrace(), ArrayTraceEntry.class); result.setTrace(arrayLengthObserver.getTrace(), ArrayLengthTraceEntry.class); result.setTrace(containsTraceObserver.getTrace(), ContainsTraceEntry.class); } catch (Exception e) { throw new Error(e); } return result; }
ClientServices.track(RuntimeVariable.Result_Length, testSuite.totalLengthOfTestCases()); ClientServices.track(RuntimeVariable.Minimized_Length, testSuite.totalLengthOfTestCases()); } else if (Properties.isRegression()) { RegressionSuiteMinimizer minimizer = new RegressionSuiteMinimizer(); minimizer.minimize(testSuite); if (Properties.ASSERTIONS && !Properties.isRegression()) { LoggingUtils.getEvoLogger().info("* " + ClientProcess.getPrettyPrintIdentifier() + "Generating assertions"); if(Properties.isRegression() && Properties.KEEP_REGRESSION_ARCHIVE){ RegressionSuiteSerializer.storeRegressionArchive();
/** * <p> * Constructor for AssertionGenerator. * </p> */ public AssertionGenerator() { TestCaseExecutor.getInstance().addObserver(primitiveObserver); TestCaseExecutor.getInstance().addObserver(comparisonObserver); TestCaseExecutor.getInstance().addObserver(inspectorObserver); TestCaseExecutor.getInstance().addObserver(fieldObserver); TestCaseExecutor.getInstance().addObserver(nullObserver); TestCaseExecutor.getInstance().addObserver(sameObserver); if(!Properties.isRegression()) TestCaseExecutor.getInstance().addObserver(arrayObserver); TestCaseExecutor.getInstance().addObserver(arrayLengthObserver); TestCaseExecutor.getInstance().addObserver(containsTraceObserver); }