Skip to content

Commit 06c5448

Browse files
committed
external driver
1 parent 24c846f commit 06c5448

File tree

4 files changed

+255
-4
lines changed

4 files changed

+255
-4
lines changed

jdk_11_maven/em/embedded/rest/quartz-manager/src/main/java/em/embedded/quartz/manager/EmbeddedEvoMasterController.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,13 @@ public EmbeddedEvoMasterController(int port) {
5151
public String startSut() {
5252

5353
ctx = SpringApplication.run(QuartzManagerDemoApplication.class, new String[]{
54-
// "--server.port=0"
54+
"--server.port=0",
55+
"--quartz-manager.security.accounts.in-memory.users[0].username=foo",
56+
"--quartz-manager.security.accounts.in-memory.users[0].password=bar",
57+
"--quartz-manager.security.accounts.in-memory.users[0].roles[0]=admin",
58+
"--quartz-manager.security.accounts.in-memory.users[1].username=foo2",
59+
"--quartz-manager.security.accounts.in-memory.users[1].password=bar",
60+
"--quartz-manager.security.accounts.in-memory.users[1].roles[0]=admin",
5561
});
5662

5763
return "http://localhost:" + getSutPort();
@@ -76,7 +82,7 @@ public void stopSut() {
7682

7783
@Override
7884
public String getPackagePrefixesToCover() {
79-
return "it.fabioformosa.quartz-manager.";
85+
return "it.fabioformosa.";
8086
}
8187

8288
@Override
@@ -104,14 +110,14 @@ public List<AuthenticationDto> getInfoForAuthentication() {
104110
AuthUtils.getForJsonToken(
105111
"USER_1",
106112
"/quartz-manager/auth/login",
107-
"username=admin&password=admin",
113+
"username=foo&password=bar",
108114
"/accessToken",
109115
"Bearer ",
110116
"application/x-www-form-urlencoded"),
111117
AuthUtils.getForJsonToken(
112118
"USER_2",
113119
"/quartz-manager/auth/login",
114-
"username=admin&password=admin",
120+
"username=foo2&password=bar",
115121
"/accessToken",
116122
"Bearer ",
117123
"application/x-www-form-urlencoded")

jdk_11_maven/em/external/rest/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
<module>pay-publicapi</module>
2020
<module>tracking-system</module>
2121
<module>http-patch-spring</module>
22+
<module>quartz-manager</module>
2223
</modules>
2324

2425
</project>
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<project xmlns="http://maven.apache.org/POM/4.0.0" 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+
7+
<artifactId>evomaster-benchmark-jdk11-em-external-rest-quartz-manager</artifactId>
8+
<packaging>jar</packaging>
9+
10+
<parent>
11+
<groupId>org.evomaster</groupId>
12+
<artifactId>evomaster-benchmark-jdk11-em-external-rest</artifactId>
13+
<version>3.4.1-SNAPSHOT</version>
14+
</parent>
15+
16+
<dependencies>
17+
<dependency>
18+
<groupId>org.springdoc</groupId>
19+
<artifactId>springdoc-openapi-ui</artifactId>
20+
<version>1.5.12</version>
21+
<optional>true</optional>
22+
</dependency>
23+
</dependencies>
24+
25+
<build>
26+
<plugins>
27+
<plugin>
28+
<groupId>org.apache.maven.plugins</groupId>
29+
<artifactId>maven-shade-plugin</artifactId>
30+
<executions>
31+
<execution>
32+
<phase>package</phase>
33+
<goals>
34+
<goal>shade</goal>
35+
</goals>
36+
<configuration>
37+
<finalName>quartz-manager-evomaster-runner</finalName>
38+
<transformers>
39+
<transformer
40+
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
41+
<manifestEntries>
42+
<Main-Class>em.external.quartz.manager.ExternalEvoMasterController
43+
</Main-Class>
44+
<Premain-Class>org.evomaster.client.java.instrumentation.InstrumentingAgent
45+
</Premain-Class>
46+
<Agent-Class>org.evomaster.client.java.instrumentation.InstrumentingAgent
47+
</Agent-Class>
48+
<Can-Redefine-Classes>true</Can-Redefine-Classes>
49+
<Can-Retransform-Classes>true</Can-Retransform-Classes>
50+
</manifestEntries>
51+
</transformer>
52+
</transformers>
53+
</configuration>
54+
</execution>
55+
</executions>
56+
</plugin>
57+
</plugins>
58+
</build>
59+
60+
61+
</project>
Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
package em.external.quartz.manager;
2+
3+
import org.evomaster.client.java.controller.AuthUtils;
4+
import org.evomaster.client.java.controller.ExternalSutController;
5+
import org.evomaster.client.java.controller.InstrumentedSutStarter;
6+
import org.evomaster.client.java.controller.api.dto.SutInfoDto;
7+
import org.evomaster.client.java.controller.api.dto.auth.AuthenticationDto;
8+
import org.evomaster.client.java.controller.problem.ProblemInfo;
9+
import org.evomaster.client.java.controller.problem.RestProblem;
10+
import org.evomaster.client.java.sql.DbSpecification;
11+
12+
import java.sql.Connection;
13+
import java.util.Arrays;
14+
import java.util.List;
15+
16+
public class ExternalEvoMasterController extends ExternalSutController {
17+
18+
public static void main(String[] args) {
19+
20+
int controllerPort = 40100;
21+
if (args.length > 0) {
22+
controllerPort = Integer.parseInt(args[0]);
23+
}
24+
int sutPort = 12345;
25+
if (args.length > 1) {
26+
sutPort = Integer.parseInt(args[1]);
27+
}
28+
String jarLocation = "cs/rest/quartz-manager/quartz-manager-parent/quartz-manager-web-showcase/target";
29+
if (args.length > 2) {
30+
jarLocation = args[2];
31+
}
32+
if(! jarLocation.endsWith(".jar")) {
33+
jarLocation += "/quartz-manager-sut.jar";
34+
}
35+
int timeoutSeconds = 120;
36+
if(args.length > 3){
37+
timeoutSeconds = Integer.parseInt(args[3]);
38+
}
39+
40+
String command = "java";
41+
if(args.length > 4){
42+
command = args[4];
43+
}
44+
45+
ExternalEvoMasterController controller =
46+
new ExternalEvoMasterController(controllerPort, jarLocation, sutPort, timeoutSeconds, command);
47+
InstrumentedSutStarter starter = new InstrumentedSutStarter(controller);
48+
49+
starter.start();
50+
}
51+
52+
53+
private final int timeoutSeconds;
54+
private final int sutPort;
55+
private final int dbPort;
56+
private String jarLocation;
57+
private Connection sqlConnection;
58+
private List<DbSpecification> dbSpecification;
59+
60+
61+
public ExternalEvoMasterController() {
62+
this(40100, "../core/target", 12345, 120, "java");
63+
}
64+
65+
public ExternalEvoMasterController(String jarLocation) {
66+
this();
67+
this.jarLocation = jarLocation;
68+
}
69+
70+
public ExternalEvoMasterController(int controllerPort, String jarLocation, int sutPort, int timeoutSeconds, String command) {
71+
this.sutPort = sutPort;
72+
this.dbPort = sutPort + 1;
73+
this.jarLocation = jarLocation;
74+
this.timeoutSeconds = timeoutSeconds;
75+
setControllerPort(controllerPort);
76+
setJavaCommand(command);
77+
}
78+
79+
@Override
80+
public String[] getInputParameters() {
81+
return new String[]{
82+
"--server.port=" + sutPort,
83+
"--quartz-manager.security.accounts.in-memory.users[0].username=foo",
84+
"--quartz-manager.security.accounts.in-memory.users[0].password=bar",
85+
"--quartz-manager.security.accounts.in-memory.users[0].roles[0]=admin",
86+
"--quartz-manager.security.accounts.in-memory.users[1].username=foo2",
87+
"--quartz-manager.security.accounts.in-memory.users[1].password=bar",
88+
"--quartz-manager.security.accounts.in-memory.users[1].roles[0]=admin"
89+
};
90+
}
91+
92+
public String[] getJVMParameters() {
93+
return new String[]{
94+
};
95+
}
96+
97+
@Override
98+
public String getBaseURL() {
99+
return "http://localhost:" + sutPort;
100+
}
101+
102+
@Override
103+
public String getPathToExecutableJar() {
104+
return jarLocation;
105+
}
106+
107+
@Override
108+
public String getLogMessageOfInitializedServer() {
109+
return "Started QuartzManagerDemoApplication in ";
110+
}
111+
112+
@Override
113+
public long getMaxAwaitForInitializationInSeconds() {
114+
return timeoutSeconds;
115+
}
116+
117+
@Override
118+
public void preStart() {
119+
}
120+
121+
@Override
122+
public void postStart() {
123+
}
124+
125+
@Override
126+
public void resetStateOfSUT() {
127+
}
128+
129+
@Override
130+
public void preStop() {
131+
}
132+
133+
@Override
134+
public void postStop() {
135+
}
136+
137+
@Override
138+
public String getPackagePrefixesToCover() {
139+
return "it.fabioformosa.";
140+
}
141+
142+
143+
@Override
144+
public ProblemInfo getProblemInfo() {
145+
146+
return new RestProblem(
147+
"http://localhost:" + sutPort + "/v3/api-docs",
148+
null,
149+
null
150+
);
151+
}
152+
153+
@Override
154+
public SutInfoDto.OutputFormat getPreferredOutputFormat() {
155+
return SutInfoDto.OutputFormat.JAVA_JUNIT_5;
156+
}
157+
158+
@Override
159+
public List<AuthenticationDto> getInfoForAuthentication() {
160+
return Arrays.asList(
161+
AuthUtils.getForJsonToken(
162+
"USER_1",
163+
"/quartz-manager/auth/login",
164+
"username=foo&password=bar",
165+
"/accessToken",
166+
"Bearer ",
167+
"application/x-www-form-urlencoded"),
168+
AuthUtils.getForJsonToken(
169+
"USER_2",
170+
"/quartz-manager/auth/login",
171+
"username=foo2&password=bar",
172+
"/accessToken",
173+
"Bearer ",
174+
"application/x-www-form-urlencoded")
175+
);
176+
}
177+
178+
179+
@Override
180+
public List<DbSpecification> getDbSpecifications() {
181+
return null;
182+
}
183+
}

0 commit comments

Comments
 (0)