Skip to content

Commit fc483da

Browse files
committed
add external
1 parent 69ea6fd commit fc483da

File tree

2 files changed

+186
-7
lines changed

2 files changed

+186
-7
lines changed

jdk_17_maven/em/external/grpc/signal-registration/pom.xml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,13 @@
1313
<version>1.6.2-SNAPSHOT</version>
1414
</parent>
1515

16-
17-
<dependencies>
18-
19-
</dependencies>
16+
<dependencies>
17+
<dependency>
18+
<groupId>org.signal.registration</groupId>
19+
<artifactId>registration-service</artifactId>
20+
<version>JGITVER</version>
21+
</dependency>
22+
</dependencies>
2023

2124
<build>
2225
<plugins>
@@ -54,4 +57,4 @@
5457
</build>
5558

5659

57-
</project>
60+
</project>
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,182 @@
11
package em.external.org.signal.registration;
22

3-
public class ExternalEvoMasterController {
3+
import io.grpc.ManagedChannel;
4+
import io.grpc.ManagedChannelBuilder;
5+
import org.signal.registration.rpc.RegistrationServiceGrpc;
6+
import org.evomaster.client.java.controller.ExternalSutController;
7+
import org.evomaster.client.java.controller.InstrumentedSutStarter;
8+
import org.evomaster.client.java.controller.api.dto.AuthenticationDto;
9+
import org.evomaster.client.java.controller.api.dto.SutInfoDto;
10+
import org.evomaster.client.java.controller.api.dto.problem.rpc.RPCType;
11+
import org.evomaster.client.java.controller.internal.db.DbSpecification;
12+
import org.evomaster.client.java.controller.problem.ProblemInfo;
13+
import org.evomaster.client.java.controller.problem.RPCProblem;
414

5-
//TODO
15+
import java.util.List;
16+
import java.util.concurrent.TimeUnit;
17+
18+
public class ExternalEvoMasterController extends ExternalSutController {
19+
20+
protected ManagedChannel channel;
21+
private RegistrationServiceGrpc.RegistrationServiceBlockingStub stub;
22+
23+
24+
public static void main(String[] args) {
25+
26+
int controllerPort = 40100;
27+
if (args.length > 0) {
28+
controllerPort = Integer.parseInt(args[0]);
29+
}
30+
int sutPort = 12345;
31+
if (args.length > 1) {
32+
sutPort = Integer.parseInt(args[1]);
33+
}
34+
String jarLocation = "cs/grpc/signal-registration/target";
35+
if (args.length > 2) {
36+
jarLocation = args[2];
37+
}
38+
if(! jarLocation.endsWith(".jar")) {
39+
jarLocation += "/rpc-grpc-signal-registration-sut.jar";
40+
}
41+
int timeoutSeconds = 120;
42+
if(args.length > 3){
43+
timeoutSeconds = Integer.parseInt(args[3]);
44+
}
45+
String command = "java";
46+
if(args.length > 4){
47+
command = args[4];
48+
}
49+
50+
51+
52+
ExternalEvoMasterController controller =
53+
new ExternalEvoMasterController(controllerPort, jarLocation, sutPort, timeoutSeconds, command);
54+
controller.setNeedsJdk17Options(true);
55+
InstrumentedSutStarter starter = new InstrumentedSutStarter(controller);
56+
57+
starter.start();
58+
}
59+
60+
private final int timeoutSeconds;
61+
private final int sutPort;
62+
private final String jarLocation;
63+
64+
public ExternalEvoMasterController() {
65+
this(40100, "cs/grpc/signal-registration/target/rpc-grpc-signal-registration-sut.jar", 12345, 120, "java");
66+
}
67+
68+
@Override
69+
public String getPackagePrefixesToCover() {
70+
return "org.signal.registration.";
71+
}
72+
73+
public ExternalEvoMasterController(int controllerPort, String jarLocation, int sutPort, int timeoutSeconds, String command) {
74+
this.sutPort = sutPort;
75+
this.jarLocation = jarLocation;
76+
this.timeoutSeconds = timeoutSeconds;
77+
setControllerPort(controllerPort);
78+
setJavaCommand(command);
79+
}
80+
81+
82+
@Override
83+
public String[] getInputParameters() {
84+
return new String[]{
85+
"-grpc.server.port="+sutPort
86+
};
87+
}
88+
89+
public ExternalEvoMasterController(String jarLocation){
90+
this(40100, jarLocation, 12345, 120, "java");
91+
}
92+
93+
@Override
94+
public String[] getJVMParameters() {
95+
return new String[]{
96+
"-Dmicronaut.environments=dev"
97+
};
98+
}
99+
100+
101+
@Override
102+
public String getBaseURL() {
103+
return "http://localhost:" + sutPort;
104+
}
105+
106+
@Override
107+
public String getPathToExecutableJar() {
108+
return jarLocation;
109+
}
110+
111+
@Override
112+
public String getLogMessageOfInitializedServer() {
113+
return "Startup completed in ";
114+
}
115+
116+
@Override
117+
public long getMaxAwaitForInitializationInSeconds() {
118+
return timeoutSeconds;
119+
}
120+
121+
@Override
122+
public void preStart() {
123+
}
124+
125+
@Override
126+
public ProblemInfo getProblemInfo() {
127+
return new RPCProblem(RegistrationServiceGrpc.RegistrationServiceBlockingStub.class, stub, RPCType.gRPC);
128+
}
129+
130+
@Override
131+
public SutInfoDto.OutputFormat getPreferredOutputFormat() {
132+
return SutInfoDto.OutputFormat.JAVA_JUNIT_4;
133+
}
134+
135+
@Override
136+
public void postStart() {
137+
138+
startClient();
139+
}
140+
141+
private String startClient() {
142+
channel = ManagedChannelBuilder.forAddress("localhost", sutPort).usePlaintext().build();
143+
stub = RegistrationServiceGrpc.newBlockingStub(channel);
144+
145+
146+
return "started:"+!(channel.isShutdown() || channel.isTerminated());
147+
}
148+
149+
150+
@Override
151+
public void preStop() {
152+
153+
try {
154+
if (channel != null)
155+
channel.shutdown().awaitTermination(2, TimeUnit.SECONDS);
156+
157+
} catch (InterruptedException e) {
158+
throw new RuntimeException(e);
159+
}
160+
161+
}
162+
163+
@Override
164+
public void postStop() {
165+
166+
}
167+
168+
@Override
169+
public void resetStateOfSUT() {
170+
171+
}
172+
173+
@Override
174+
public List<DbSpecification> getDbSpecifications() {
175+
return null;
176+
}
177+
178+
@Override
179+
public List<AuthenticationDto> getInfoForAuthentication() {
180+
return null;
181+
}
6182
}

0 commit comments

Comments
 (0)