public void changeClassLoader(ClassLoader classLoader) { ((DefaultTestCase) test).changeClassLoader(classLoader); contract.changeClassLoader(classLoader); this.statement = this.test.getStatement(statement.getPosition()); for (int i = 0; i < variables.size(); i++) { variables.set(i, variables.get(i).clone(test)); } }
/** * */ protected void updateClassloader() { if (theTest.isChanged()) { theSameTestForTheOtherClassLoader = (TestChromosome) theTest.clone(); ((DefaultTestCase) theSameTestForTheOtherClassLoader.getTestCase()) .changeClassLoader(TestGenerationContext.getInstance().getRegressionClassLoaderForSUT()); } }
defaultTestCase.changeClassLoader(classLoader); SymbolicObserver symbolicExecObserver = new SymbolicObserver(env);
private static void reinstrument(TestSuiteChromosome testSuite, Properties.Criterion criterion) { if (ArrayUtil.contains(Properties.SECONDARY_OBJECTIVE, Properties.SecondaryObjective.IBRANCH)) { ExecutionTracer.enableContext(); } if (!ExecutionTracer.isTraceCallsEnabled()) { ExecutionTracer.enableTraceCalls(); } testSuite.setChanged(true); for (TestChromosome test : testSuite.getTestChromosomes()) { test.setChanged(true); test.clearCachedResults(); // clears last execution result and last mutation result } Properties.Criterion oldCriterion[] = Arrays.copyOf(Properties.CRITERION, Properties.CRITERION.length); Properties.CRITERION = new Properties.Criterion[]{criterion}; logger.info("Re-instrumenting for criterion: " + criterion); TestGenerationContext.getInstance().resetContext(); // Need to load class explicitly in case there are no test cases. // If there are tests, then this is redundant Properties.getInitializedTargetClass(); // TODO: Now all existing test cases have reflection objects pointing to the wrong classloader logger.info("Changing classloader of test suite for criterion: " + criterion); for (TestChromosome test : testSuite.getTestChromosomes()) { DefaultTestCase dtest = (DefaultTestCase) test.getTestCase(); dtest.changeClassLoader(TestGenerationContext.getInstance().getClassLoaderForSUT()); } Properties.CRITERION = oldCriterion; }
dtest.changeClassLoader(TestGenerationContext.getInstance().getClassLoaderForSUT()); test.setChanged(true); // clears cached results test.clearCachedMutationResults();
testCopy.changeClassLoader(loader); String code2 = testCopy.toCode();