Skip to content

Commit f26c5f4

Browse files
committed
embedded driver for scs and ncs
1 parent 4b03a0c commit f26c5f4

4 files changed

Lines changed: 151 additions & 2 deletions

File tree

jdk_8_maven/em/embedded/thrift/ncs/src/main/java/em/embedded/org/thriftncs/EmbeddedEvoMasterController.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,13 @@ public Connection getConnection() {
7676
public ProblemInfo getProblemInfo() {
7777

7878
return new RPCProblem(new HashMap<String, Object>() {{
79-
put("org.thrift.ncs.NcsService$Iface", client);
79+
put(NcsService.Iface.class.getName(), client);
8080
}});
8181
}
8282

8383
@Override
8484
public SutInfoDto.OutputFormat getPreferredOutputFormat() {
85-
return SutInfoDto.OutputFormat.JAVA_JUNIT_5;
85+
return SutInfoDto.OutputFormat.JAVA_JUNIT_4;
8686
}
8787

8888
@Override
@@ -103,6 +103,7 @@ public String startSut() {
103103
e.printStackTrace();
104104
}
105105

106+
// it is not necessary here for RPC
106107
return url;
107108
}
108109

jdk_8_maven/em/embedded/thrift/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
<modules>
1616
<module>ncs</module>
17+
<module>scs</module>
1718
</modules>
1819

1920
</project>
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
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+
<parent>
6+
<artifactId>evomaster-benchmark-em-embedded-thrift</artifactId>
7+
<groupId>org.evomaster</groupId>
8+
<version>1.3.1-SNAPSHOT</version>
9+
</parent>
10+
<modelVersion>4.0.0</modelVersion>
11+
12+
<artifactId>evomaster-benchmark-em-embedded-thrift-scs</artifactId>
13+
<packaging>jar</packaging>
14+
15+
16+
<dependencies>
17+
<dependency>
18+
<groupId>org.evomaster</groupId>
19+
<artifactId>evomaster-benchmark-cs-rpc-thrift-artificial-scs</artifactId>
20+
<version>${project.version}</version>
21+
</dependency>
22+
</dependencies>
23+
</project>
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
package em.embedded.org.thriftscs;
2+
3+
import org.apache.thrift.protocol.TBinaryProtocol;
4+
import org.apache.thrift.protocol.TProtocol;
5+
import org.apache.thrift.transport.THttpClient;
6+
import org.apache.thrift.transport.TTransport;
7+
import org.apache.thrift.transport.TTransportException;
8+
import org.evomaster.client.java.controller.EmbeddedSutController;
9+
import org.evomaster.client.java.controller.InstrumentedSutStarter;
10+
import org.evomaster.client.java.controller.api.dto.AuthenticationDto;
11+
import org.evomaster.client.java.controller.api.dto.SutInfoDto;
12+
import org.evomaster.client.java.controller.problem.ProblemInfo;
13+
import org.evomaster.client.java.controller.problem.RPCProblem;
14+
import org.springframework.boot.SpringApplication;
15+
import org.springframework.context.ConfigurableApplicationContext;
16+
import org.thrift.scs.ScsApplication;
17+
import org.thrift.scs.ScsService;
18+
19+
import java.sql.Connection;
20+
import java.util.HashMap;
21+
import java.util.List;
22+
import java.util.Map;
23+
24+
/**
25+
* created by manzhang on 2021/11/3
26+
*/
27+
public class EmbeddedEvoMasterController extends EmbeddedSutController {
28+
29+
public static void main(String[] args) {
30+
31+
int port = 40100;
32+
if (args.length > 0) {
33+
port = Integer.parseInt(args[0]);
34+
}
35+
36+
EmbeddedEvoMasterController controller = new EmbeddedEvoMasterController(port);
37+
InstrumentedSutStarter starter = new InstrumentedSutStarter(controller);
38+
39+
starter.start();
40+
}
41+
42+
public EmbeddedEvoMasterController() {
43+
this(40100);
44+
}
45+
46+
public EmbeddedEvoMasterController(int port) {
47+
setControllerPort(port);
48+
}
49+
50+
private ConfigurableApplicationContext ctx;
51+
private ScsService.Client client;
52+
53+
@Override
54+
public boolean isSutRunning() {
55+
return ctx != null && ctx.isRunning();
56+
}
57+
58+
59+
@Override
60+
public String getPackagePrefixesToCover() {
61+
return "org.thrift.scs";
62+
}
63+
64+
@Override
65+
public List<AuthenticationDto> getInfoForAuthentication() {
66+
return null;
67+
}
68+
69+
@Override
70+
public Connection getConnection() {
71+
return null;
72+
}
73+
74+
@Override
75+
public ProblemInfo getProblemInfo() {
76+
77+
return new RPCProblem(new HashMap<String, Object>() {{
78+
put(ScsService.Iface.class.getName(), client);
79+
}});
80+
}
81+
82+
@Override
83+
public SutInfoDto.OutputFormat getPreferredOutputFormat() {
84+
return SutInfoDto.OutputFormat.JAVA_JUNIT_4;
85+
}
86+
87+
@Override
88+
public String startSut() {
89+
90+
ctx = SpringApplication.run(ScsApplication.class, new String[]{
91+
"--server.port=0"
92+
});
93+
94+
String url = "http://localhost:"+getSutPort()+"/scs";
95+
96+
try {
97+
// init client
98+
TTransport transport = new THttpClient(url);
99+
TProtocol protocol = new TBinaryProtocol(transport);
100+
client = new ScsService.Client(protocol);
101+
} catch (TTransportException e) {
102+
e.printStackTrace();
103+
}
104+
105+
// it is not necessary here for RPC
106+
return url;
107+
}
108+
109+
protected int getSutPort() {
110+
return (Integer) ((Map) ctx.getEnvironment()
111+
.getPropertySources().get("server.ports").getSource())
112+
.get("local.server.port");
113+
}
114+
115+
@Override
116+
public void stopSut() {
117+
ctx.stop();
118+
}
119+
120+
@Override
121+
public void resetStateOfSUT() {
122+
123+
}
124+
}

0 commit comments

Comments
 (0)