/** * <p> * inline * </p> * * @param test * a {@link org.evosuite.testcase.TestChromosome} object. */ public void inline(TestChromosome test) { inline(test.test); }
ConstantInliner inliner = new ConstantInliner(); inliner.inline(test);
/** * <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()); }
@Test public void testStringQuoting() throws NoSuchMethodException, SecurityException { DefaultTestCase test = new DefaultTestCase(); ConstructorStatement cs = new ConstructorStatement(test, new GenericConstructor(StringConstantInliningExample.class.getConstructor(), StringConstantInliningExample.class), new ArrayList<VariableReference>()); VariableReference objectVar = test.addStatement(cs); StringPrimitiveStatement stringStatement = new StringPrimitiveStatement(test, "EXAMPLE"); VariableReference stringParam = test.addStatement(stringStatement); List<VariableReference> parameters = new ArrayList<VariableReference>(); parameters.add(stringParam); test.addStatement(new MethodStatement(test, new GenericMethod(StringConstantInliningExample.class.getMethods()[0], StringConstantInliningExample.class), objectVar, parameters)); System.out.println(test.toCode()); ConstantInliner inliner = new ConstantInliner(); inliner.inline(test); String code = test.toCode(); System.out.println(code); assertFalse(code.contains("foo(EXAMPLE)")); assertTrue(code.contains("foo(\"EXAMPLE\")")); }
@Test public void testStringEndingWithClass() throws NoSuchMethodException, SecurityException { DefaultTestCase test = new DefaultTestCase(); ConstructorStatement cs = new ConstructorStatement(test, new GenericConstructor(StringConstantInliningExample.class.getConstructor(), StringConstantInliningExample.class), new ArrayList<VariableReference>()); VariableReference objectVar = test.addStatement(cs); StringPrimitiveStatement stringStatement = new StringPrimitiveStatement(test, "test.class"); VariableReference stringParam = test.addStatement(stringStatement); List<VariableReference> parameters = new ArrayList<VariableReference>(); parameters.add(stringParam); test.addStatement(new MethodStatement(test, new GenericMethod(StringConstantInliningExample.class.getMethods()[0], StringConstantInliningExample.class), objectVar, parameters)); System.out.println(test.toCode()); ConstantInliner inliner = new ConstantInliner(); inliner.inline(test); String code = test.toCode(); System.out.println(code); assertFalse(code.contains("foo(test.class)")); assertTrue(code.contains("foo(\"test.class\")")); }
/** * <p> * inline * </p> * * @param suite * a {@link org.evosuite.testsuite.TestSuiteChromosome} object. */ public void inline(TestSuiteChromosome suite) { for (TestChromosome test : suite.getTestChromosomes()) { final int old_test_size = test.size(); inline(test); final int new_test_size = test.size(); final int removed_statements = old_test_size - new_test_size; if (removed_statements > 0) { ExecutionResult lastExecResult = test.getLastExecutionResult(); if (lastExecResult != null) { final int old_exec_statements = lastExecResult.getExecutedStatements(); final int new_exec_statements = old_exec_statements - removed_statements; lastExecResult.setExecutedStatements(new_exec_statements); } } } }
@Test public void testInlinerBug() throws Exception { Properties.TIMEOUT = Integer.MAX_VALUE; InstrumentingClassLoader cl = new InstrumentingClassLoader(); TestCase t0 = buildTestCase0(cl); TestCase t1 = buildTestCase1(cl); TestSuiteChromosome suite = new TestSuiteChromosome(); suite.addTest(t0); suite.addTest(t1); System.out.println(suite.toString()); BranchCoverageSuiteFitness ff = new BranchCoverageSuiteFitness(cl); ff.getFitness(suite); ConstantInliner inliner = new ConstantInliner(); inliner.inline(suite); System.out.println(suite.toString()); List<ExecutionResult> execResults = suite.getLastExecutionResults(); assertEquals(2, execResults.size()); ExecutionResult r1 = execResults.get(0); ExecutionResult r2 = execResults.get(1); r1.calledReflection(); r2.calledReflection(); }
System.out.println(test.toCode()); ConstantInliner inliner = new ConstantInliner(); inliner.inline(test);
System.out.println(test.toCode()); ConstantInliner inliner = new ConstantInliner(); inliner.inline(test);
ConstantInliner inliner = new ConstantInliner(); inliner.inline(testSuite);