Skip to content

Commit 122854e

Browse files
authored
Merge pull request #64 from EMResearch/grpc-controller
Grpc controller
2 parents 91cc098 + cdf063d commit 122854e

File tree

16 files changed

+874
-20
lines changed

16 files changed

+874
-20
lines changed

jdk_8_maven/cs/rpc/grpc/artificial/grpc-ncs/pom.xml

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,24 @@
6767
</execution>
6868
</executions>
6969
</plugin>
70+
71+
<plugin>
72+
<groupId>org.springframework.boot</groupId>
73+
<artifactId>spring-boot-maven-plugin</artifactId>
74+
<executions>
75+
<execution>
76+
<goals>
77+
<goal>repackage</goal>
78+
</goals>
79+
<configuration>
80+
<finalName>rpc-grpc-ncs</finalName>
81+
<classifier>sut</classifier>
82+
</configuration>
83+
</execution>
84+
</executions>
85+
</plugin>
86+
7087
</plugins>
7188
</build>
7289

73-
</project>
90+
</project>

jdk_8_maven/cs/rpc/grpc/artificial/grpc-ncs/src/main/java/org/grpc/ncs/NcsServer.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,6 @@
1515
*/
1616
public class NcsServer {
1717

18-
// public static void main(String[] args) throws IOException, InterruptedException {
19-
// Server server = ServerBuilder.forPort(8080).addService(new NcsServiceImplBaseImpl()).build();
20-
// server.start();
21-
// server.awaitTermination();
22-
// }
23-
2418
private static final Logger logger = Logger.getLogger(NcsServer.class.getName());
2519

2620
private final int port;
@@ -38,7 +32,7 @@ public NcsServer(ServerBuilder<?> serverBuilder, int port) {
3832

3933
public void start() throws IOException {
4034
server.start();
41-
logger.info("Server started, listening on " + port);
35+
logger.info("NcsServer started, listening on " + port);
4236
Runtime.getRuntime().addShutdownHook(new Thread() {
4337
@Override
4438
public void run() {
@@ -66,7 +60,15 @@ void blockUntilShutdown() throws InterruptedException {
6660
}
6761

6862
public static void main(String[] args) throws Exception {
69-
NcsServer server = new NcsServer(8980);
63+
int sutPort = 8980;
64+
if (args.length == 1){
65+
try{
66+
sutPort = Integer.parseInt(args[0]);
67+
}catch (Exception NumberFormatException){
68+
69+
}
70+
}
71+
NcsServer server = new NcsServer(sutPort);
7072
server.start();
7173
server.blockUntilShutdown();
7274
}

jdk_8_maven/cs/rpc/grpc/artificial/grpc-scs/pom.xml

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,23 @@
6666
</execution>
6767
</executions>
6868
</plugin>
69+
70+
71+
<plugin>
72+
<groupId>org.springframework.boot</groupId>
73+
<artifactId>spring-boot-maven-plugin</artifactId>
74+
<executions>
75+
<execution>
76+
<goals>
77+
<goal>repackage</goal>
78+
</goals>
79+
<configuration>
80+
<finalName>rpc-grpc-scs</finalName>
81+
<classifier>sut</classifier>
82+
</configuration>
83+
</execution>
84+
</executions>
85+
</plugin>
6986
</plugins>
7087
</build>
71-
</project>
88+
</project>

jdk_8_maven/cs/rpc/grpc/artificial/grpc-scs/src/main/java/org/grpc/scs/ScsServer.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,6 @@
1515
*/
1616
public class ScsServer {
1717

18-
// public static void main(String[] args) throws IOException, InterruptedException {
19-
// Server server = ServerBuilder.forPort(8080).addService(new NcsServiceImplBaseImpl()).build();
20-
// server.start();
21-
// server.awaitTermination();
22-
// }
23-
2418
private static final Logger logger = Logger.getLogger(ScsServer.class.getName());
2519

2620
private final int port;
@@ -38,7 +32,7 @@ public ScsServer(ServerBuilder<?> serverBuilder, int port) {
3832

3933
public void start() throws IOException {
4034
server.start();
41-
logger.info("Server started, listening on " + port);
35+
logger.info("ScsServer started, listening on " + port);
4236
Runtime.getRuntime().addShutdownHook(new Thread() {
4337
@Override
4438
public void run() {
@@ -66,7 +60,16 @@ void blockUntilShutdown() throws InterruptedException {
6660
}
6761

6862
public static void main(String[] args) throws Exception {
69-
ScsServer server = new ScsServer(8980);
63+
int sutPort = 8980;
64+
if (args.length == 1){
65+
try{
66+
sutPort = Integer.parseInt(args[0]);
67+
}catch (Exception NumberFormatException){
68+
69+
}
70+
}
71+
72+
ScsServer server = new ScsServer(sutPort);
7073
server.start();
7174
server.blockUntilShutdown();
7275
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<parent>
7+
<groupId>org.evomaster</groupId>
8+
<artifactId>evomaster-benchmark-em-embedded-grpc</artifactId>
9+
<version>1.6.2-SNAPSHOT</version>
10+
</parent>
11+
12+
<artifactId>evomaster-benchmark-em-embedded-grpc-ncs</artifactId>
13+
<packaging>jar</packaging>
14+
15+
16+
<dependencies>
17+
<dependency>
18+
<groupId>org.evomaster</groupId>
19+
<artifactId>evomaster-benchmark-cs-rpc-grpc-artificial-ncs</artifactId>
20+
<version>${project.version}</version>
21+
</dependency>
22+
</dependencies>
23+
24+
</project>
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
package em.embedded.org.grpcncs;
2+
3+
import io.grpc.*;
4+
import org.evomaster.client.java.controller.EmbeddedSutController;
5+
import org.evomaster.client.java.controller.InstrumentedSutStarter;
6+
import org.evomaster.client.java.controller.api.dto.AuthenticationDto;
7+
import org.evomaster.client.java.controller.api.dto.SutInfoDto;
8+
import org.evomaster.client.java.controller.api.dto.problem.rpc.RPCType;
9+
import org.evomaster.client.java.controller.internal.db.DbSpecification;
10+
import org.evomaster.client.java.controller.problem.ProblemInfo;
11+
import org.evomaster.client.java.controller.problem.RPCProblem;
12+
import org.grpc.ncs.NcsServiceImplBaseImpl;
13+
import org.grpc.ncs.generated.NcsServiceGrpc;
14+
15+
import java.io.IOException;
16+
import java.util.List;
17+
import java.util.concurrent.TimeUnit;
18+
19+
public class EmbeddedEvoMasterController extends EmbeddedSutController {
20+
21+
public static void main(String[] args) {
22+
23+
int port = 40100;
24+
if (args.length > 0) {
25+
port = Integer.parseInt(args[0]);
26+
}
27+
28+
EmbeddedEvoMasterController controller = new EmbeddedEvoMasterController(port);
29+
InstrumentedSutStarter starter = new InstrumentedSutStarter(controller);
30+
31+
starter.start();
32+
}
33+
34+
public EmbeddedEvoMasterController() {
35+
this(40100);
36+
}
37+
38+
public EmbeddedEvoMasterController(int port) {
39+
registeredService = new NcsServiceImplBaseImpl();
40+
setControllerPort(port);
41+
}
42+
43+
44+
45+
protected ManagedChannel channel;
46+
private Server server;
47+
48+
private NcsServiceGrpc.NcsServiceBlockingStub stub;
49+
50+
private final BindableService registeredService;
51+
52+
@Override
53+
public boolean isSutRunning() {
54+
return server != null && !server.isShutdown() && !server.isTerminated();
55+
}
56+
57+
@Override
58+
public String getPackagePrefixesToCover() {
59+
return "org.grpc.ncs.";
60+
}
61+
62+
@Override
63+
public List<AuthenticationDto> getInfoForAuthentication() {
64+
return null;
65+
}
66+
67+
@Override
68+
public ProblemInfo getProblemInfo() {
69+
return new RPCProblem(NcsServiceGrpc.NcsServiceBlockingStub.class, stub, RPCType.gRPC);
70+
}
71+
72+
@Override
73+
public SutInfoDto.OutputFormat getPreferredOutputFormat() {
74+
return SutInfoDto.OutputFormat.JAVA_JUNIT_4;
75+
}
76+
77+
@Override
78+
public String startSut() {
79+
80+
try {
81+
server = ServerBuilder.forPort(0).addService(registeredService).build();
82+
server.start();
83+
84+
startClient();
85+
return "http://localhost:"+server.getPort();
86+
87+
} catch (IOException e) {
88+
throw new RuntimeException(e);
89+
}
90+
}
91+
92+
private String startClient() {
93+
channel = ManagedChannelBuilder.forAddress("localhost", getSutPort()).usePlaintext().build();
94+
stub = NcsServiceGrpc.newBlockingStub(channel);
95+
96+
97+
return "started:"+!(channel.isShutdown() || channel.isTerminated());
98+
}
99+
100+
protected int getSutPort() {
101+
return server.getPort();
102+
}
103+
104+
@Override
105+
public void stopSut() {
106+
107+
try {
108+
if (channel != null)
109+
channel.shutdown().awaitTermination(2, TimeUnit.SECONDS);
110+
if (server != null)
111+
server.shutdown().awaitTermination(2, TimeUnit.SECONDS);
112+
113+
server = null;
114+
} catch (InterruptedException e) {
115+
throw new RuntimeException(e);
116+
}
117+
118+
}
119+
120+
@Override
121+
public void resetStateOfSUT() {
122+
123+
}
124+
125+
@Override
126+
public List<DbSpecification> getDbSpecifications() {
127+
return null;
128+
}
129+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<parent>
7+
<groupId>org.evomaster</groupId>
8+
<artifactId>evomaster-benchmark-em-embedded</artifactId>
9+
<version>1.6.2-SNAPSHOT</version>
10+
</parent>
11+
12+
<artifactId>evomaster-benchmark-em-embedded-grpc</artifactId>
13+
<packaging>pom</packaging>
14+
<modules>
15+
<module>ncs</module>
16+
<module>scs</module>
17+
</modules>
18+
19+
</project>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<parent>
7+
<groupId>org.evomaster</groupId>
8+
<artifactId>evomaster-benchmark-em-embedded-grpc</artifactId>
9+
<version>1.6.2-SNAPSHOT</version>
10+
</parent>
11+
12+
<artifactId>evomaster-benchmark-em-embedded-grpc-scs</artifactId>
13+
<packaging>jar</packaging>
14+
15+
16+
<dependencies>
17+
<dependency>
18+
<groupId>org.evomaster</groupId>
19+
<artifactId>evomaster-benchmark-cs-rpc-grpc-artificial-scs</artifactId>
20+
<version>${project.version}</version>
21+
</dependency>
22+
</dependencies>
23+
24+
</project>

0 commit comments

Comments
 (0)