private void backup(TestChromosome test, StringPrimitiveStatement p) { oldValue = new String(p.getValue()); oldResult = test.getLastExecutionResult(); oldChanged = test.isChanged(); }
private void backup(TestChromosome test, StringPrimitiveStatement p) { oldValue = new String(p.getValue()); oldResult = test.getLastExecutionResult(); oldChanged = test.isChanged(); }
if (test.getLastExecutionResult() == null || test.isChanged()) { ExecutionResult result = test.executeForFitnessFunction(defaultFitness);
@Override public void mutate() { theTest.mutate(); if (theTest.isChanged()) { this.increaseNumberOfMutations(); try { updateClassloader(); } catch (NoClassDefFoundError e) { String classname = e.getMessage(); if (classname != null) { // TODO: blacklist class } TestCase t = new DefaultTestCase(); theTest.setTestCase(t); updateClassloader(); } catch (Throwable e) { e.printStackTrace(); } } }
/** {@inheritDoc} */ @Override public double getFitness(TestChromosome individual) { logger.trace("Executing test case on original"); ExecutionResult origResult = individual.getLastExecutionResult(); if (origResult == null || individual.isChanged()) { origResult = runTest(individual.test); individual.setLastExecutionResult(origResult); individual.setChanged(false); } double fitness = getFitness(individual, origResult); updateIndividual(this, individual, fitness); return fitness; }
/** * */ protected void updateClassloader() { if (theTest.isChanged()) { theSameTestForTheOtherClassLoader = (TestChromosome) theTest.clone(); ((DefaultTestCase) theSameTestForTheOtherClassLoader.getTestCase()) .changeClassLoader(TestGenerationContext.getInstance().getRegressionClassLoaderForSUT()); } }
/** * Execute a test case * * @param test * The test case to execute * @return Result of the execution */ protected ExecutionResult runTest(TestChromosome test) { if (!test.isChanged() && test.getLastExecutionResult() != null) return test.getLastExecutionResult(); try { ExecutionResult result = TestCaseExecutor.getInstance().execute(test.getTestCase()); return result; } catch (Exception e) { logger.error("TG: Exception caught: ", e); throw new EvosuiteError(e); } } }
private ExecutionResult getExecutionResult(TestChromosome individual) { ExecutionResult origResult = individual.getLastExecutionResult(); if(origResult == null||individual.isChanged()) { origResult = runTest(individual.getTestCase()); individual.setLastExecutionResult(origResult); individual.setChanged(false); } return individual.getLastExecutionResult(); }
.removeIf(t -> t.isChanged() || (t.getLastExecutionResult() != null && (t.getLastExecutionResult().hasTimeout() || t.getLastExecutionResult().hasTestException())));
/** * Execute a test case * * @param testChromosome The test case to execute * @return Result of the execution */ public ExecutionResult runTest(TestChromosome testChromosome) { if (testChromosome.getLastExecutionResult() != null && !testChromosome.isChanged()) { return testChromosome.getLastExecutionResult(); } TestCase test = testChromosome.getTestCase(); ExecutionResult result = new ExecutionResult(test, null); try { result = TestCaseExecutor.getInstance().execute(test); int num = test.size(); if (!result.noThrownExceptions()) { num = result.getFirstPositionOfThrownException(); } MaxStatementsStoppingCondition.statementsExecuted(num); // for(TestObserver observer : observers) { // observer.testResult(result); // } } catch (Exception e) { logger.error("TG: Exception caught: ", e); throw new RuntimeException(e); } return result; }
if (testChromosome.getLastExecutionResult() != null && !testChromosome.isChanged()) { Integer lastPos = testChromosome.getLastExecutionResult().getFirstPositionOfThrownException(); if (lastPos != null)
protected void restore(TestChromosome test) { if (backup == null) return; test.setTestCase(backup.getTestCase().clone()); test.copyCachedResults(backup); //test.setFitness(backup.getFitness()); test.setFitnessValues(backup.getFitnessValues()); test.setPreviousFitnessValues(backup.getPreviousFitnessValues()); test.setChanged(backup.isChanged()); }
/** * <p> * isCovered * </p> * * @param tc * a {@link org.evosuite.testcase.TestChromosome} object. * @return a boolean. */ public boolean isCovered(TestChromosome tc) { if(tc.getTestCase().isGoalCovered(this)){ return true; } ExecutionResult result = tc.getLastExecutionResult(); if (result == null || tc.isChanged()) { result = runTest(tc.test); tc.setLastExecutionResult(result); tc.setChanged(false); } return isCovered(tc, result); }
if (lastExecutionResult != null && !isChanged()) { Integer lastPos = lastExecutionResult.getFirstPositionOfThrownException(); if (lastPos != null)
if (test.getLastExecutionResult() == null || test.isChanged()) { test.setLastExecutionResult(TestCaseExecutor.runTest(test.getTestCase())); test.setChanged(false);
if (testChromosome.isChanged() || testChromosome.getLastExecutionResult() == null) {
TestChromosome testNew = (TestChromosome) test1.clone(); testNew.mutate(); if(testNew.isChanged()) { suite.deleteTest(test1); suite.addTest(testNew);
TestChromosome testNew = (TestChromosome) test1.clone(); testNew.mutate(); if(testNew.isChanged()) { suite.deleteTest(test1); suite.addTest(testNew);
TestChromosome testNew = (TestChromosome) test1.clone(); testNew.mutate(); if(testNew.isChanged()) { suite.deleteTest(test1); suite.addTest(testNew);
/** * {@inheritDoc} * * Create a deep copy of the chromosome */ @Override public Chromosome clone() { TestChromosome c = new TestChromosome(); c.test = test.clone(); c.setFitnessValues(getFitnessValues()); c.setPreviousFitnessValues(getPreviousFitnessValues()); c.copyCachedResults(this); c.setChanged(isChanged()); c.setLocalSearchApplied(hasLocalSearchBeenApplied()); if (Properties.LOCAL_SEARCH_SELECTIVE) { for (TestMutationHistoryEntry mutation : mutationHistory) { if(test.contains(mutation.getStatement())) c.mutationHistory.addMutationEntry(mutation.clone(c.getTestCase())); } } // c.mutationHistory.set(mutationHistory); c.setNumberOfMutations(this.getNumberOfMutations()); c.setNumberOfEvaluations(this.getNumberOfEvaluations()); c.setKineticEnergy(getKineticEnergy()); c.setNumCollisions(getNumCollisions()); return c; }