public RegressionAssertionGenerator() { super(); TestCaseExecutor.getInstance().newObservers(); TestCaseExecutor.getInstance().addObserver(primitiveObserver); TestCaseExecutor.getInstance().addObserver(comparisonObserver); TestCaseExecutor.getInstance().addObserver(sameObserver); if (!Properties.REGRESSION_DISABLE_SPECIAL_ASSERTIONS) { TestCaseExecutor.getInstance().addObserver(inspectorObserver); } TestCaseExecutor.getInstance().addObserver(fieldObserver); TestCaseExecutor.getInstance().addObserver(nullObserver); }
/** * <p> * Constructor for StrongMutationTestFitness. * </p> * * @param mutation * a {@link org.evosuite.coverage.mutation.Mutation} object. */ public StrongMutationTestFitness(Mutation mutation) { super(mutation); for (AssertionTraceObserver<?> observer : observers) { logger.debug("StrongMutation adding observer " + observer); TestCaseExecutor.getInstance().addObserver(observer); } }
/** * <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); }
/** * Default constructor */ public MutationAssertionGenerator() { for (Mutation m : MutationPool.getMutants()) { mutants.put(m.getId(), m); } TestCaseExecutor.getInstance().newObservers(); TestCaseExecutor.getInstance().addObserver(primitiveObserver); TestCaseExecutor.getInstance().addObserver(comparisonObserver); TestCaseExecutor.getInstance().addObserver(sameObserver); TestCaseExecutor.getInstance().addObserver(inspectorObserver); TestCaseExecutor.getInstance().addObserver(fieldObserver); TestCaseExecutor.getInstance().addObserver(nullObserver); TestCaseExecutor.getInstance().addObserver(arrayObserver); TestCaseExecutor.getInstance().addObserver(arrayLengthObserver); TestCaseExecutor.getInstance().addObserver(containsTraceObserver); }
public static List<TestCase> getFailingTests() { List<TestCase> tests = new ArrayList<TestCase>(); ContractChecker.setActive(false); TestCaseExecutor.getInstance().newObservers(); for (int i = 0; i < violations.size(); i++) { logger.debug("Writing test {}/{}", i, violations.size()); ContractViolation violation = violations.get(i); violation.minimizeTest(); TestCase test = violation.getTestCase(); //violation.addAssertion(test); tests.add(test); } return tests; }
public InputCoverageSuiteFitness() { // Add observer TestCaseExecutor executor = TestCaseExecutor.getInstance(); InputObserver observer = new InputObserver(); executor.addObserver(observer); //TODO: where to remove observer?: executor.removeObserver(observer); determineCoverageGoals(); totalGoals = inputCoverageMap.size(); }
public OutputCoverageSuiteFitness() { // Add observer TestCaseExecutor executor = TestCaseExecutor.getInstance(); OutputObserver observer = new OutputObserver(); executor.addObserver(observer); //TODO: where to remove observer?: executor.removeObserver(observer); determineCoverageGoals(); totalGoals = outputCoverageGoals.size(); }
/** * Execute a test case * * @param test * The test case to execute * @return Result of the execution */ public static ExecutionResult runTest(TestCase test) { ExecutionResult result = new ExecutionResult(test, null); try { TestCaseExecutor executor = getInstance(); logger.debug("Executing test"); result = executor.execute(test); MaxStatementsStoppingCondition.statementsExecuted(result.getExecutedStatements()); } catch (Exception e) { logger.error("TG: Exception caught: ", e); throw new Error(e); } return result; }
/** * Output the failing tests in a JUnit test suite */ public static void writeJUnitTestSuite(TestSuiteWriter writer) { logger.info("Writing {} failing tests", violations.size()); ContractChecker.setActive(false); TestCaseExecutor.getInstance().newObservers(); for (int i = 0; i < violations.size(); i++) { logger.debug("Writing test {}/{}", i, violations.size()); ContractViolation violation = violations.get(i); violation.minimizeTest(); TestCase test = violation.getTestCase(); test.addContractViolation(violation); //violation.addAssertion(test); // TODO: Add comment about contract violation writer.insertTest(test, " Contract violation: " + violation.getContract().toString()); } }
private void initializeTargetClass() throws Throwable { String cp = ClassPathHandler.getInstance().getTargetProjectClasspath(); // Here is where the <clinit> code should be invoked for the first time DefaultTestCase test = buildLoadTargetClassTestCase(Properties.TARGET_CLASS); ExecutionResult execResult = TestCaseExecutor.getInstance().execute(test, Integer.MAX_VALUE); if (hasThrownInitializerError(execResult)) { // create single test suite with Class.forName() writeJUnitTestSuiteForFailedInitialization(); ExceptionInInitializerError ex = getInitializerError(execResult); throw ex; } else if (!execResult.getAllThrownExceptions().isEmpty()) { // some other exception has been thrown during initialization Throwable t = execResult.getAllThrownExceptions().iterator().next(); throw t; } DependencyAnalysis.analyzeClass(Properties.TARGET_CLASS, Arrays.asList(cp.split(File.pathSeparator))); LoggingUtils.getEvoLogger().info("* " + ClientProcess.getPrettyPrintIdentifier() + "Finished analyzing classpath"); }
/** * 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); } } }
/** * <p> * inline * </p> * * @param test * a {@link org.evosuite.testcase.TestCase} object. */ public void inline(TestCase test) { this.test = test; TestCaseExecutor executor = TestCaseExecutor.getInstance(); executor.addObserver(this); executor.execute(test); executor.removeObserver(this); removeUnusedVariables(test); assert (test.isValid()); }
@Before public void initializeExecutor() { TestCaseExecutor.getInstance().newObservers(); TestCaseExecutor.initExecutor(); }
/** * Run the test against this contract and determine whether it reports a * failure * * @param test * a {@link org.evosuite.testcase.TestCase} object. * @return a boolean. */ public boolean fails(TestCase test) { ContractChecker.setActive(false); TestCaseExecutor executor = TestCaseExecutor.getInstance(); SingleContractChecker checker = new SingleContractChecker(this); executor.addObserver(checker); TestCaseExecutor.runTest(test); executor.removeObserver(checker); //ContractChecker.setActive(true); return !checker.isValid(); }
@Test public void testPrivateConstructorWithAndWithoutMinimize() { Properties.MINIMIZE = true; testPrivateConstructor(); Properties.MINIMIZE = false; TestCaseExecutor.getInstance().newObservers(); TestSuiteChromosome best = testPrivateConstructor(); double cov = best.getCoverageInstanceOf(LineCoverageSuiteFitness.class); Assert.assertEquals("Non-optimal coverage: ", 1d, cov, 0.001); }
@After public void resetStaticVariables() { RuntimeInstrumentation.setAvoidInstrumentingShadedClasses(false); RuntimeSettings.applyUIDTransformation = false; TestCaseExecutor.getInstance().newObservers(); TestGenerationContext.getInstance().resetContext(); ClassReInitializer.resetSingleton(); System.setProperties(currentProperties); Properties.getInstance().resetToDefaults(); ExceptionCoverageFactory.getGoals().clear(); Archive.getArchiveInstance().reset(); }
@Test public void testRuntimeException() { String targetClass = SourceExceptions.class.getCanonicalName(); Properties.TARGET_CLASS = targetClass; Properties.REPLACE_CALLS = true; Properties.CRITERION = new Properties.Criterion[]{Properties.Criterion.LINE, Properties.Criterion.EXCEPTION}; EvoSuite evosuite = new EvoSuite(); String[] command = new String[]{"-generateSuite", "-class", targetClass}; Object result = evosuite.parseCommandLine(command); GeneticAlgorithm<?> ga = getGAFromResult(result); TestSuiteChromosome best = (TestSuiteChromosome) ga.getBestIndividual(); Assert.assertNotNull(best); TestCaseExecutor.getInstance().initExecutor(); for(TestChromosome test : best.getTestChromosomes()) { ExecutionResult executionResult = TestCaseExecutor.getInstance().runTest(test.getTestCase()); test.setLastExecutionResult(executionResult); } String code = best.toString(); Assert.assertTrue("Code:\n"+code, code.contains("verifyException(\"com.examples.with.different.packagename.mock.java.lang.SourceExceptions\",")); Assert.assertTrue("Code:\n"+code, code.contains("verifyException(\"com.examples.with.different.packagename.mock.java.lang.SourceExceptions$Foo\",")); } }
@Test public void checksClassIsLoadedUsingInstrumentingClassLoader() throws ClassNotFoundException { Properties.CLIENT_ON_THREAD = true; final String className = SimpleClass.class.getCanonicalName(); TestCaseExecutor.initExecutor(); TestGenerationContext.getInstance().resetContext(); ClassPathHandler.getInstance().changeTargetCPtoTheSameAsEvoSuite(); InstrumentingClassLoader classLoader = TestGenerationContext.getInstance().getClassLoaderForSUT(); assertFalse(classLoader.getLoadedClasses().contains(className)); DefaultTestCase test = buildLoadTargetClassTestCase(className); TestCaseExecutor.getInstance().execute(test, Integer.MAX_VALUE); assertTrue(classLoader.getLoadedClasses().contains(className)); }
@Test public void testShowInputDialogWasFound() throws Exception { boolean hasStringDialog0 = JOptionPaneInputs.getInstance().hasDialog(GUIAction.STRING_INPUT); assertFalse(hasStringDialog0); InstrumentingClassLoader cl = new InstrumentingClassLoader(); TestCase t1 = buildTestCase0(cl); TestCaseExecutor.getInstance().execute(t1); boolean hasStringDialog = JOptionPaneInputs.getInstance().hasDialog(GUIAction.STRING_INPUT); assertTrue(hasStringDialog); }
@Before public void init() { Properties.VIRTUAL_NET = true; Properties.REPLACE_CALLS = true; Properties.RESET_STATIC_FIELDS = true; Properties.CLIENT_ON_THREAD = true; Properties.PRINT_TO_SYSTEM = true; Properties.TIMEOUT = 5000; Properties.CONCOLIC_TIMEOUT = 5000000; RuntimeSettings.useVFS = true; Runtime.getInstance().resetRuntime(); TestCaseExecutor.getInstance().newObservers(); TestCaseExecutor.initExecutor(); MockFramework.enable(); VirtualFileSystem.getInstance().resetSingleton(); VirtualFileSystem.getInstance().init(); }