use of org.evosuite.utils.generic.GenericConstructor in project evosuite by EvoSuite.
the class EnvironmentDataSystemTest method testOnSpecificTest.
@Test
public void testOnSpecificTest() throws ClassNotFoundException, ConstructionFailedException, NoSuchMethodException, SecurityException {
Properties.TARGET_CLASS = DseBar.class.getCanonicalName();
Class<?> sut = TestGenerationContext.getInstance().getClassLoaderForSUT().loadClass(Properties.TARGET_CLASS);
Class<?> fooClass = TestGenerationContext.getInstance().getClassLoaderForSUT().loadClass(DseFoo.class.getCanonicalName());
GenericClass clazz = new GenericClass(sut);
DefaultTestCase test = new DefaultTestCase();
// String string0 = "baz5";
VariableReference stringVar = test.addStatement(new StringPrimitiveStatement(test, "baz5"));
// DseFoo dseFoo0 = new DseFoo();
GenericConstructor fooConstructor = new GenericConstructor(fooClass.getConstructors()[0], fooClass);
ConstructorStatement fooConstructorStatement = new ConstructorStatement(test, fooConstructor, Arrays.asList(new VariableReference[] {}));
VariableReference fooVar = test.addStatement(fooConstructorStatement);
// String fileName = new String("/home/galeotti/README.txt")
String path = "/home/galeotti/README.txt";
EvoSuiteFile evosuiteFile = new EvoSuiteFile(path);
FileNamePrimitiveStatement fileNameStmt = new FileNamePrimitiveStatement(test, evosuiteFile);
test.addStatement(fileNameStmt);
Method fooIncMethod = fooClass.getMethod("inc", new Class<?>[] {});
GenericMethod incMethod = new GenericMethod(fooIncMethod, fooClass);
test.addStatement(new MethodStatement(test, incMethod, fooVar, Arrays.asList(new VariableReference[] {})));
test.addStatement(new MethodStatement(test, incMethod, fooVar, Arrays.asList(new VariableReference[] {})));
test.addStatement(new MethodStatement(test, incMethod, fooVar, Arrays.asList(new VariableReference[] {})));
test.addStatement(new MethodStatement(test, incMethod, fooVar, Arrays.asList(new VariableReference[] {})));
test.addStatement(new MethodStatement(test, incMethod, fooVar, Arrays.asList(new VariableReference[] {})));
// DseBar dseBar0 = new DseBar(string0);
GenericConstructor gc = new GenericConstructor(clazz.getRawClass().getConstructors()[0], clazz);
ConstructorStatement constructorStatement = new ConstructorStatement(test, gc, Arrays.asList(new VariableReference[] { stringVar }));
VariableReference callee = test.addStatement(constructorStatement);
// dseBar0.coverMe(dseFoo0);
Method m = clazz.getRawClass().getMethod("coverMe", new Class<?>[] { fooClass });
GenericMethod method = new GenericMethod(m, sut);
MethodStatement ms = new MethodStatement(test, method, callee, Arrays.asList(new VariableReference[] { fooVar }));
test.addStatement(ms);
System.out.println(test);
TestSuiteChromosome suite = new TestSuiteChromosome();
BranchCoverageSuiteFitness fitness = new BranchCoverageSuiteFitness();
BranchCoverageMap.getInstance().searchStarted(null);
assertEquals(4.0, fitness.getFitness(suite), 0.1F);
suite.addTest(test);
assertEquals(1.0, fitness.getFitness(suite), 0.1F);
System.out.println("Test suite: " + suite);
Properties.CONCOLIC_TIMEOUT = Integer.MAX_VALUE;
TestSuiteLocalSearch localSearch = TestSuiteLocalSearch.selectTestSuiteLocalSearch();
LocalSearchObjective<TestSuiteChromosome> localObjective = new DefaultLocalSearchObjective<TestSuiteChromosome>();
localObjective.addFitnessFunction(fitness);
localSearch.doSearch(suite, localObjective);
System.out.println("Fitness: " + fitness.getFitness(suite));
System.out.println("Test suite: " + suite);
assertEquals("Local search failed to cover class", 0.0, fitness.getFitness(suite), 0.1F);
BranchCoverageMap.getInstance().searchFinished(null);
}
use of org.evosuite.utils.generic.GenericConstructor in project evosuite by EvoSuite.
the class JUnitTheoryContract method addAssertionAndComments.
@Override
public void addAssertionAndComments(Statement statement, List<VariableReference> variables, Throwable exception) {
TestCase test = statement.getTestCase();
int position = statement.getPosition();
VariableReference a = variables.get(0);
int pos = a.getStPosition();
try {
Constructor<?> defaultConstructor = theoryReceiver.getClass().getConstructor();
GenericConstructor constructor = new GenericConstructor(defaultConstructor, theoryReceiver.getClass());
Statement st1 = new ConstructorStatement(test, constructor, new ArrayList<VariableReference>());
VariableReference receiver = test.addStatement(st1, position + 1);
Statement st2 = new MethodStatement(test, theoryMethod, receiver, Arrays.asList(new VariableReference[] { test.getStatement(pos).getReturnValue() }));
test.addStatement(st2, position + 2);
st2.addComment("Violates theory: " + theoryMethod.getName());
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
logger.warn("Error while creating contract violation: " + e);
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
logger.warn("Error while creating contract violation: " + e);
e.printStackTrace();
}
}
use of org.evosuite.utils.generic.GenericConstructor in project evosuite by EvoSuite.
the class TestSimilarity method testBasicSimilarityDifferentTypes2.
@Test
public void testBasicSimilarityDifferentTypes2() {
TestCase test1 = new DefaultTestCase();
TestCase test2 = new DefaultTestCase();
PrimitiveStatement<?> aInt = new LongPrimitiveStatement(test1, 42L);
test1.addStatement(aInt);
PrimitiveStatement<?> aInt2 = new IntPrimitiveStatement(test1, 42);
test1.addStatement(aInt2);
PrimitiveStatement<?> bInt = new IntPrimitiveStatement(test2, 42);
test2.addStatement(bInt);
Constructor<?> c = Object.class.getConstructors()[0];
ConstructorStatement cs = new ConstructorStatement(test2, new GenericConstructor(c, Object.class), new ArrayList<VariableReference>());
test2.addStatement(cs);
double score = DiversityObserver.getNeedlemanWunschScore(test1, test2);
Assert.assertTrue(score <= 0);
}
use of org.evosuite.utils.generic.GenericConstructor in project evosuite by EvoSuite.
the class ConstraintVerifierTest method testAfter.
@Test
public void testAfter() throws Exception {
TestChromosome tc = new TestChromosome();
TestFactory factory = TestFactory.getInstance();
// this method has an "after" constraint on initServlet
factory.addMethod(tc.getTestCase(), new GenericMethod(EvoServletState.class.getDeclaredMethod("getRequest"), EvoServletState.class), 0, 0);
Assert.assertEquals(1, tc.size());
Assert.assertFalse(ConstraintVerifier.verifyTest(tc));
VariableReference con = factory.addConstructor(tc.getTestCase(), new GenericConstructor(FakeServlet.class.getDeclaredConstructor(), FakeServlet.class), 0, 0);
factory.addMethod(tc.getTestCase(), new GenericMethod(EvoServletState.class.getDeclaredMethod("initServlet", Servlet.class), EvoServletState.class), 1, 0);
Assert.assertEquals(3, tc.size());
Assert.assertTrue(ConstraintVerifier.verifyTest(tc));
}
use of org.evosuite.utils.generic.GenericConstructor in project evosuite by EvoSuite.
the class ConstraintVerifierTest method testEvoSuiteClassExclude.
@Test
public void testEvoSuiteClassExclude() throws Exception {
TestChromosome tc = new TestChromosome();
TestFactory factory = TestFactory.getInstance();
// shouldn't be able to instantiate EvoServletConfig directly
factory.addConstructor(tc.getTestCase(), new GenericConstructor(EvoServletConfig.class.getConstructor(), EvoServletConfig.class), 0, 0);
Assert.assertEquals(1, tc.size());
Assert.assertFalse(ConstraintVerifier.verifyTest(tc));
}
Aggregations