Skip to content

Commit a44bc04

Browse files
committed
Address Andrea's initial feedback on PR #1399
1 parent 38b68f8 commit a44bc04

68 files changed

Lines changed: 719 additions & 894 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,3 +159,4 @@ client-java/sql-dto/target
159159
client-java/distance-heuristics/target
160160
client-java/test-old-libraries/target
161161
core-tests/e2e-tests/spring/spring-rest-mysql/target
162+
client-java/instrumentation/evosuite-graphs/

client-java/controller-api/pom.xml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,6 @@
2222
<groupId>org.evomaster</groupId>
2323
<artifactId>evomaster-client-java-sql-dto</artifactId>
2424
</dependency>
25-
<dependency>
26-
<groupId>org.evomaster</groupId>
27-
<artifactId>evomaster-client-java-instrumentation-shared</artifactId>
28-
</dependency>
2925
<dependency>
3026
<groupId>org.evomaster</groupId>
3127
<artifactId>evomaster-test-utils-java</artifactId>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package org.evomaster.client.java.controller.api.dto;
2+
3+
import java.io.Serializable;
4+
5+
/**
6+
* Descriptor and numeric id for a branch objective (true or false outcome).
7+
*/
8+
public class BranchObjectiveDto implements Serializable {
9+
10+
public int id;
11+
public String descriptiveId;
12+
}
13+
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package org.evomaster.client.java.controller.api.dto;
2+
3+
import java.io.Serializable;
4+
import java.util.ArrayList;
5+
import java.util.List;
6+
7+
/**
8+
* Serializable representation of the control-dependence information of a method.
9+
* Contains only the data needed by EvoMaster core: branch objective identifiers,
10+
* the subset that are roots, and the parent-child relationships between them.
11+
*/
12+
public class ControlDependenceGraphDto implements Serializable {
13+
14+
public String className;
15+
public String methodName;
16+
public List<BranchObjectiveDto> objectives = new ArrayList<>();
17+
public List<Integer> rootObjectiveIds = new ArrayList<>();
18+
public List<DependencyEdgeDto> edges = new ArrayList<>();
19+
}
20+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package org.evomaster.client.java.controller.api.dto;
2+
3+
import java.io.Serializable;
4+
5+
/**
6+
* Directed edge describing that parentObjectiveId must be covered before childObjectiveId.
7+
*/
8+
public class DependencyEdgeDto implements Serializable {
9+
10+
public int parentObjectiveId;
11+
public int childObjectiveId;
12+
}
13+

client-java/controller-api/src/main/java/org/evomaster/client/java/controller/api/dto/SutRunDto.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ public class SutRunDto {
4646
public String methodReplacementCategories;
4747

4848
/**
49-
* Whether to enable Dynamosa graphs generation in the Java agent
49+
* Whether to enable Control Dependence Graph generation in the Java agent
5050
*/
51-
public Boolean enableDynamosaGraphs;
51+
public Boolean enableControlDependenceGraphs;
5252

5353
/**
5454
* Whether to write generated graphs (DOT/PNGs) to disk on the agent side

client-java/controller-api/src/main/java/org/evomaster/client/java/controller/api/dto/TestResultsDto.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package org.evomaster.client.java.controller.api.dto;
22

3-
import org.evomaster.client.java.instrumentation.shared.dto.ControlDependenceGraphDto;
4-
53
import java.util.ArrayList;
64
import java.util.List;
75

@@ -18,7 +16,7 @@ public class TestResultsDto {
1816
public List<ExtraHeuristicsDto> extraHeuristics = new ArrayList<>();
1917

2018
/**
21-
* Incremental DynaMOSA control-dependence graphs discovered since the last handshake.
19+
* Incremental control-dependence graphs discovered since the last handshake.
2220
*/
23-
public List<ControlDependenceGraphDto> dynamosaCdgs = new ArrayList<>();
21+
public List<ControlDependenceGraphDto> controlDependenceGraphs = new ArrayList<>();
2422
}

client-java/controller/src/main/java/org/evomaster/client/java/controller/EmbeddedSutController.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import org.evomaster.client.java.controller.api.dto.problem.rpc.ScheduleTaskInvocationDto;
77
import org.evomaster.client.java.controller.internal.SutController;
88
import org.evomaster.client.java.instrumentation.*;
9-
import org.evomaster.client.java.instrumentation.external.DynamosaControlDependenceSnapshot;
10-
import org.evomaster.client.java.instrumentation.shared.dto.ControlDependenceGraphDto;
9+
import org.evomaster.client.java.instrumentation.external.ControlDependenceSnapshot;
10+
import org.evomaster.client.java.controller.api.dto.ControlDependenceGraphDto;
1111
import org.evomaster.client.java.instrumentation.object.ClassToSchema;
1212
import org.evomaster.client.java.instrumentation.staticstate.ExecutionTracer;
1313
import org.evomaster.client.java.instrumentation.staticstate.ObjectiveRecorder;
@@ -33,7 +33,7 @@
3333
*/
3434
public abstract class EmbeddedSutController extends SutController {
3535

36-
private int dynamosaCdgIndex = 0;
36+
private int controlDependenceGraphIndex = 0;
3737

3838
@Override
3939
public final void setupForGeneratedTest(){
@@ -144,15 +144,15 @@ public final void bootingSut(boolean bootingSut) {
144144
}
145145

146146
@Override
147-
public List<ControlDependenceGraphDto> getDynamosaControlDependenceGraphs() {
148-
DynamosaControlDependenceSnapshot snapshot = InstrumentationController.getControlDependenceSnapshot(dynamosaCdgIndex);
149-
dynamosaCdgIndex = snapshot.getNextIndex();
147+
public List<ControlDependenceGraphDto> getControlDependenceGraphs() {
148+
ControlDependenceSnapshot snapshot = InstrumentationController.getControlDependenceSnapshot(controlDependenceGraphIndex);
149+
controlDependenceGraphIndex = snapshot.getNextIndex();
150150
return snapshot.getGraphs();
151151
}
152152

153153
@Override
154-
public void setDynamosaGraphsEnabled(boolean enableGraphs) {
155-
InstrumentationController.setDynamosaGraphsEnabled(enableGraphs);
154+
public void setControlDependenceGraphsEnabled(boolean enableGraphs) {
155+
InstrumentationController.setControlDependenceGraphsEnabled(enableGraphs);
156156
}
157157

158158
@Override

client-java/controller/src/main/java/org/evomaster/client/java/controller/ExternalSutController.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
import org.evomaster.client.java.controller.internal.SutController;
1313
import org.evomaster.client.java.instrumentation.external.JarAgentLocator;
1414
import org.evomaster.client.java.instrumentation.external.ServerController;
15-
import org.evomaster.client.java.instrumentation.external.DynamosaConfigDto;
16-
import org.evomaster.client.java.instrumentation.shared.dto.ControlDependenceGraphDto;
15+
import org.evomaster.client.java.instrumentation.external.ControlDependenceGraphConfigDto;
16+
import org.evomaster.client.java.controller.api.dto.ControlDependenceGraphDto;
1717

1818
import java.io.BufferedReader;
1919
import java.io.IOException;
@@ -450,11 +450,11 @@ public BootTimeInfoDto getBootTimeInfoDto() {
450450
}
451451

452452
@Override
453-
public List<ControlDependenceGraphDto> getDynamosaControlDependenceGraphs() {
453+
public List<ControlDependenceGraphDto> getControlDependenceGraphs() {
454454
if (!isInstrumentationActivated()){
455455
return Collections.emptyList();
456456
}
457-
List<ControlDependenceGraphDto> graphs = serverController.getDynamosaControlDependenceGraphs();
457+
List<ControlDependenceGraphDto> graphs = serverController.getControlDependenceGraphs();
458458
return graphs != null ? graphs : Collections.emptyList();
459459
}
460460

@@ -534,25 +534,25 @@ public final void setExecutingInitMongo(boolean executingInitMongo) {
534534
}
535535

536536
/**
537-
* Send Dynamosa configuration to the Java Agent.
537+
* Send CDG configuration to the Java Agent.
538538
*/
539-
public final void setDynamosaGraphsEnabled(boolean enableGraphs) {
539+
public final void setControlDependenceGraphsEnabled(boolean enableGraphs) {
540540
checkInstrumentation();
541-
DynamosaConfigDto dto = new DynamosaConfigDto();
541+
ControlDependenceGraphConfigDto dto = new ControlDependenceGraphConfigDto();
542542
dto.enableGraphs = enableGraphs;
543543
dto.writeCfg = null;
544-
serverController.setDynamosaConfig(dto);
544+
serverController.setControlDependenceGraphConfig(dto);
545545
}
546546

547547
/**
548548
* Control whether the agent writes DOT/PNG graphs to disk.
549549
*/
550550
public final void setWriteCfgEnabled(boolean writeCfg) {
551551
checkInstrumentation();
552-
DynamosaConfigDto dto = new DynamosaConfigDto();
552+
ControlDependenceGraphConfigDto dto = new ControlDependenceGraphConfigDto();
553553
dto.enableGraphs = null;
554554
dto.writeCfg = writeCfg;
555-
serverController.setDynamosaConfig(dto);
555+
serverController.setControlDependenceGraphConfig(dto);
556556
}
557557

558558
@Override

client-java/controller/src/main/java/org/evomaster/client/java/controller/internal/EMController.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import org.evomaster.client.java.sql.SqlScriptRunner;
2020
import org.evomaster.client.java.controller.problem.rpc.schema.LocalAuthSetupSchema;
2121
import org.evomaster.client.java.instrumentation.*;
22-
import org.evomaster.client.java.instrumentation.shared.dto.ControlDependenceGraphDto;
22+
import org.evomaster.client.java.controller.api.dto.ControlDependenceGraphDto;
2323
import org.evomaster.client.java.instrumentation.shared.StringSpecializationInfo;
2424
import org.evomaster.client.java.instrumentation.staticstate.ExecutionTracer;
2525
import org.evomaster.client.java.utils.SimpleLogger;
@@ -377,9 +377,9 @@ public Response runSut(SutRunDto dto, @Context HttpServletRequest httpServletReq
377377
if (!noKillSwitch(() -> sutController.isSutRunning())) {
378378
noKillSwitch(() -> sutController.bootingSut(true));
379379
baseUrlOfSUT = noKillSwitch(() -> sutController.startSut());
380-
// Configure Dynamosa graphs on the agent, if requested by core
381-
Boolean enableGraphs = dto.enableDynamosaGraphs;
382-
if (enableGraphs != null) noKillSwitch(() -> sutController.setDynamosaGraphsEnabled(enableGraphs));
380+
// Configure CDG generation on the agent, if requested by core
381+
Boolean enableGraphs = dto.enableControlDependenceGraphs;
382+
if (enableGraphs != null) noKillSwitch(() -> sutController.setControlDependenceGraphsEnabled(enableGraphs));
383383
Boolean writeCfg = dto.writeCfg;
384384
if (writeCfg != null) noKillSwitch(() -> sutController.setWriteCfgEnabled(writeCfg));
385385
noKillSwitch(() -> sutController.bootingSut(false));
@@ -594,10 +594,10 @@ public Response getTestResults(
594594
return Response.status(500).entity(WrappedResponseDto.withError(msg)).build();
595595
}
596596

597-
List<ControlDependenceGraphDto> dynamosaCdgs =
598-
noKillSwitch(() -> sutController.getDynamosaControlDependenceGraphs());
599-
if (dynamosaCdgs != null && !dynamosaCdgs.isEmpty()) {
600-
dto.dynamosaCdgs.addAll(dynamosaCdgs);
597+
List<ControlDependenceGraphDto> cdgs =
598+
noKillSwitch(() -> sutController.getControlDependenceGraphs());
599+
if (cdgs != null && !cdgs.isEmpty()) {
600+
dto.controlDependenceGraphs.addAll(cdgs);
601601
}
602602
// }
603603
// else {

0 commit comments

Comments
 (0)