use of org.evosuite.continuous.CtgConfiguration in project evosuite by EvoSuite.
the class JobSchedulerTest method testBudget.
@Test
public void testBudget() {
String[] cuts = new String[] { SomeInterface.class.getName(), NoBranches.class.getName(), SomeBranches.class.getName(), MoreBranches.class.getName() };
ProjectAnalyzer analyzer = new ProjectAnalyzer(cuts);
ProjectStaticData data = analyzer.analyze();
int cores = 2;
int memory = 1400;
int budget = 2;
CtgConfiguration conf = new CtgConfiguration(memory, cores, budget, 1, false, AvailableSchedule.BUDGET);
JobScheduler scheduler = new JobScheduler(data, conf);
List<JobDefinition> jobs = scheduler.createNewSchedule();
Assert.assertNotNull(jobs);
// we have 4 classes, but one is an interface
Assert.assertEquals(3, jobs.size());
for (JobDefinition job : jobs) {
Assert.assertEquals(700, job.memoryInMB);
}
Assert.assertEquals(MoreBranches.class.getName(), jobs.get(0).cut);
Assert.assertEquals(SomeBranches.class.getName(), jobs.get(1).cut);
Assert.assertEquals(NoBranches.class.getName(), jobs.get(2).cut);
long dif01 = jobs.get(0).seconds - jobs.get(1).seconds;
long dif12 = jobs.get(1).seconds - jobs.get(2).seconds;
Assert.assertTrue("" + dif01, dif01 > 0);
Assert.assertTrue("" + dif12, dif12 > 0);
int sum = jobs.get(0).seconds + jobs.get(1).seconds + jobs.get(2).seconds;
Assert.assertTrue("wrong value " + sum, sum <= (cores * budget * 60));
}
use of org.evosuite.continuous.CtgConfiguration in project evosuite by EvoSuite.
the class JobSchedulerTest method testSimple.
@Test
public void testSimple() {
String[] cuts = new String[] { SomeInterface.class.getName(), NoBranches.class.getName(), SomeBranches.class.getName(), MoreBranches.class.getName() };
ProjectAnalyzer analyzer = new ProjectAnalyzer(cuts);
ProjectStaticData data = analyzer.analyze();
int cores = 2;
int memory = 1400;
int budget = 2;
CtgConfiguration conf = new CtgConfiguration(memory, cores, budget, 1, false, AvailableSchedule.SIMPLE);
JobScheduler scheduler = new JobScheduler(data, conf);
List<JobDefinition> jobs = scheduler.createNewSchedule();
Assert.assertNotNull(jobs);
// we have 4 classes, but one is an interface
Assert.assertEquals(3, jobs.size());
for (JobDefinition job : jobs) {
Assert.assertEquals(700, job.memoryInMB);
}
Assert.assertEquals(jobs.get(0).seconds, jobs.get(1).seconds);
Assert.assertEquals(jobs.get(2).seconds, jobs.get(1).seconds);
int sum = jobs.get(0).seconds + jobs.get(1).seconds + jobs.get(2).seconds;
Assert.assertTrue("wrong value " + sum, sum <= (cores * budget * 60));
}
use of org.evosuite.continuous.CtgConfiguration in project evosuite by EvoSuite.
the class JobSchedulerTest method testSeedingOrder.
@Test
public void testSeedingOrder() {
String[] cuts = new String[] { Simple.class.getName(), UsingSimpleAndTrivial.class.getName(), Trivial.class.getName() };
ProjectAnalyzer analyzer = new ProjectAnalyzer(cuts);
ProjectStaticData data = analyzer.analyze();
int cores = 3;
int memory = 1800;
int budget = 2;
CtgConfiguration conf = new CtgConfiguration(memory, cores, budget, 1, false, AvailableSchedule.SEEDING);
JobScheduler scheduler = new JobScheduler(data, conf);
List<JobDefinition> jobs = scheduler.createNewSchedule();
Assert.assertNotNull(jobs);
Assert.assertEquals("Wrong number of jobs: " + jobs.toString(), 3, jobs.size());
// UsingSimpleAndTrivial should be the last in the schedule, as it depends on the first 2
JobDefinition seeding = jobs.get(2);
Assert.assertNotNull(seeding);
Assert.assertEquals(UsingSimpleAndTrivial.class.getName(), seeding.cut);
Set<String> in = seeding.inputClasses;
Assert.assertNotNull(in);
System.out.println(in.toString());
Assert.assertTrue(in.contains(Simple.class.getName()));
Assert.assertTrue(in.contains(Trivial.class.getName()));
Assert.assertEquals(2, in.size());
}
Aggregations