Skip to content

Commit 4d7fc36

Browse files
authored
Merge pull request #35 from EMResearch/rpc-driver
Rpc driver
2 parents a3d7a40 + 3456240 commit 4d7fc36

114 files changed

Lines changed: 23054 additions & 144 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: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,4 +192,11 @@ dotnet_3/em/embedded/rest/SampleProjectDriver/logs/
192192
*.sln.DotSettings.user
193193

194194

195+
# RPC
196+
/jdk_8_maven/cs/rpc/grpc/artificial/grpc-ncs/target/
197+
/jdk_8_maven/cs/rpc/grpc/artificial/grpc-scs/target/
198+
/jdk_8_maven/cs/rpc/thrift/artificial/thrift-scs/target/
199+
/jdk_8_maven/cs/rpc/thrift/artificial/thrift-ncs/target/
200+
201+
195202

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,12 @@ We just re-implemented in different languages, and put them behind a web service
113113
* SCS (not-known license, artificial string examples coming from different sources)
114114

115115

116+
### RPC (Thrift/gRPC): Java
117+
118+
* NCS (not-known license, artificial numerical examples coming from different sources)
119+
120+
* SCS (not-known license, artificial string examples coming from different sources)
121+
116122
## Using This Repository
117123

118124
Due to several reasons, the software in this repository is not published as a library (e.g., on Maven and NPM).
@@ -166,6 +172,7 @@ Each of these drivers has a "main" method that is running a REST API (binding on
166172
For JavaScript, you need to use the files `em-main.js`.
167173

168174

175+
169176
You can also build (and install) each module separately, based on needs.
170177
For example, a Maven module can be installed with:
171178

jdk_11_gradle/em/embedded/graphql/patio-api/src/main/java/em/embedded/patio/EmbeddedEvoMasterController.java

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77
import org.evomaster.client.java.controller.api.dto.AuthenticationDto;
88
import org.evomaster.client.java.controller.api.dto.JsonTokenPostLoginDto;
99
import org.evomaster.client.java.controller.api.dto.SutInfoDto;
10+
import org.evomaster.client.java.controller.api.dto.database.schema.DatabaseType;
1011
import org.evomaster.client.java.controller.db.DbCleaner;
1112
import org.evomaster.client.java.controller.db.SqlScriptRunnerCached;
1213
import org.evomaster.client.java.controller.internal.SutController;
14+
import org.evomaster.client.java.controller.internal.db.DbSpecification;
1315
import org.evomaster.client.java.controller.problem.GraphQlProblem;
1416
import org.evomaster.client.java.controller.problem.ProblemInfo;
1517
import org.testcontainers.containers.GenericContainer;
@@ -18,6 +20,7 @@
1820
import java.sql.Connection;
1921
import java.sql.DriverManager;
2022
import java.sql.SQLException;
23+
import java.util.Arrays;
2124
import java.util.Collections;
2225
import java.util.List;
2326

@@ -37,7 +40,8 @@ public static void main(String[] args){
3740
}
3841

3942
private ApplicationContext ctx;
40-
private Connection connection;
43+
private Connection sqlConnection;
44+
private List<DbSpecification> dbSpecification;
4145

4246
private final int portApp = 8080; //Hardcoded. will need fixing
4347
// TODO maybe report at https://github.com/micronaut-projects/micronaut-core/issues
@@ -76,20 +80,27 @@ public String startSut() {
7680
});
7781

7882

79-
if (connection != null) {
83+
if (sqlConnection != null) {
8084
try {
81-
connection.close();
85+
sqlConnection.close();
8286
} catch (SQLException e) {
8387
throw new RuntimeException(e);
8488
}
8589
}
8690

8791
try {
88-
connection = DriverManager.getConnection(url, "patio", "patio");
92+
sqlConnection = DriverManager.getConnection(url, "patio", "patio");
8993
} catch (SQLException e) {
9094
throw new RuntimeException(e);
9195
}
9296

97+
dbSpecification = Arrays.asList(new DbSpecification(){{
98+
dbType = DatabaseType.POSTGRES;
99+
schemaNames = Arrays.asList("public");
100+
// initSqlOnResourcePath = "/initDb.sql";
101+
connection = sqlConnection;
102+
employSmartDbClean = false;
103+
}});
93104

94105
return "http://localhost:" + getSutPort();
95106
}
@@ -121,8 +132,8 @@ public String getPackagePrefixesToCover() {
121132

122133
@Override
123134
public void resetStateOfSUT() {
124-
DbCleaner.clearDatabase_Postgres(connection, "public", List.of("flyway_schema_history"));
125-
SqlScriptRunnerCached.runScriptFromResourceFile(connection,"/initDB.sql");
135+
DbCleaner.clearDatabase_Postgres(sqlConnection, "public", List.of("flyway_schema_history"));
136+
SqlScriptRunnerCached.runScriptFromResourceFile(sqlConnection,"/initDB.sql");
126137
}
127138

128139
@Override
@@ -153,11 +164,16 @@ public List<AuthenticationDto> getInfoForAuthentication() {
153164
}
154165

155166
public Connection getConnection() {
156-
return connection;
167+
return sqlConnection;
157168
}
158169

159170
@Override
160171
public String getDatabaseDriverName() {
161172
return "org.postgresql.Driver";
162173
}
174+
175+
public List<DbSpecification> getDbSpecifications() {
176+
return dbSpecification;
177+
}
178+
163179
}

jdk_11_gradle/em/external/graphql/patio-api/src/main/java/em/external/patio/ExternalEvoMasterController.java

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,18 @@
55
import org.evomaster.client.java.controller.api.dto.AuthenticationDto;
66
import org.evomaster.client.java.controller.api.dto.JsonTokenPostLoginDto;
77
import org.evomaster.client.java.controller.api.dto.SutInfoDto;
8+
import org.evomaster.client.java.controller.api.dto.database.schema.DatabaseType;
89
import org.evomaster.client.java.controller.db.DbCleaner;
910
import org.evomaster.client.java.controller.db.SqlScriptRunnerCached;
11+
import org.evomaster.client.java.controller.internal.db.DbSpecification;
1012
import org.evomaster.client.java.controller.problem.GraphQlProblem;
1113
import org.evomaster.client.java.controller.problem.ProblemInfo;
1214
import org.testcontainers.containers.GenericContainer;
1315

1416
import java.sql.Connection;
1517
import java.sql.DriverManager;
1618
import java.sql.SQLException;
19+
import java.util.Arrays;
1720
import java.util.Collections;
1821
import java.util.List;
1922

@@ -59,7 +62,8 @@ public static void main(String[] args) {
5962
private final int timeoutSeconds;
6063
private final int sutPort;
6164
private String jarLocation;
62-
private Connection connection;
65+
private Connection sqlConnection;
66+
private List<DbSpecification> dbSpecification;
6367

6468
private static final GenericContainer postgres = new GenericContainer("postgres:9")
6569
.withEnv("POSTGRES_HOST_AUTH_METHOD","trust")
@@ -148,16 +152,23 @@ public void postStart() {
148152

149153
try {
150154
Class.forName(getDatabaseDriverName());
151-
connection = DriverManager.getConnection(dbUrl(), "patio", "patio");
155+
sqlConnection = DriverManager.getConnection(dbUrl(), "patio", "patio");
156+
dbSpecification = Arrays.asList(new DbSpecification(){{
157+
dbType = DatabaseType.POSTGRES;
158+
schemaNames = Arrays.asList("public");
159+
// initSqlOnResourcePath = "/initDb.sql";
160+
connection = sqlConnection;
161+
employSmartDbClean = false;
162+
}});
152163
} catch (Exception e) {
153164
throw new RuntimeException(e);
154165
}
155166
}
156167

157168
@Override
158169
public void resetStateOfSUT() {
159-
DbCleaner.clearDatabase_Postgres(connection, "public", List.of("flyway_schema_history"));
160-
SqlScriptRunnerCached.runScriptFromResourceFile(connection,"/initDB.sql");
170+
DbCleaner.clearDatabase_Postgres(sqlConnection, "public", List.of("flyway_schema_history"));
171+
SqlScriptRunnerCached.runScriptFromResourceFile(sqlConnection,"/initDB.sql");
161172
}
162173

163174
@Override
@@ -171,13 +182,13 @@ public void postStop() {
171182
}
172183

173184
private void closeDataBaseConnection() {
174-
if (connection != null) {
185+
if (sqlConnection != null) {
175186
try {
176-
connection.close();
187+
sqlConnection.close();
177188
} catch (SQLException e) {
178189
e.printStackTrace();
179190
}
180-
connection = null;
191+
sqlConnection = null;
181192
}
182193
}
183194

@@ -198,7 +209,7 @@ public SutInfoDto.OutputFormat getPreferredOutputFormat() {
198209

199210
@Override
200211
public Connection getConnection() {
201-
return connection;
212+
return sqlConnection;
202213
}
203214

204215
@Override
@@ -221,4 +232,9 @@ public List<AuthenticationDto> getInfoForAuthentication() {
221232

222233
return List.of(dto);
223234
}
235+
236+
@Override
237+
public List<DbSpecification> getDbSpecifications() {
238+
return dbSpecification;
239+
}
224240
}

jdk_11_maven/em/embedded/graphql/timbuctoo/src/main/java/em/embedded/nl/knaw/huygens/EmbeddedEvoMasterController.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.evomaster.client.java.controller.InstrumentedSutStarter;
88
import org.evomaster.client.java.controller.api.dto.AuthenticationDto;
99
import org.evomaster.client.java.controller.api.dto.SutInfoDto;
10+
import org.evomaster.client.java.controller.internal.db.DbSpecification;
1011
import org.evomaster.client.java.controller.problem.GraphQlProblem;
1112
import org.evomaster.client.java.controller.problem.ProblemInfo;
1213
import org.testcontainers.containers.GenericContainer;
@@ -152,6 +153,11 @@ public void resetStateOfSUT() {
152153
}
153154
}
154155

156+
@Override
157+
public List<DbSpecification> getDbSpecifications() {
158+
return null;
159+
}
160+
155161
@Override
156162
public ProblemInfo getProblemInfo() {
157163
return new GraphQlProblem("/v5/graphql");

jdk_11_maven/em/embedded/rest/cwa-verification/src/main/java/em/embedded/app/coronawarn/verification/EmbeddedEvoMasterController.java

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
import org.evomaster.client.java.controller.InstrumentedSutStarter;
77
import org.evomaster.client.java.controller.api.dto.AuthenticationDto;
88
import org.evomaster.client.java.controller.api.dto.SutInfoDto;
9+
import org.evomaster.client.java.controller.api.dto.database.schema.DatabaseType;
910
import org.evomaster.client.java.controller.db.DbCleaner;
11+
import org.evomaster.client.java.controller.internal.db.DbSpecification;
1012
import org.evomaster.client.java.controller.problem.ProblemInfo;
1113
import org.evomaster.client.java.controller.problem.RestProblem;
1214
import org.springframework.boot.SpringApplication;
@@ -15,6 +17,7 @@
1517

1618
import java.sql.Connection;
1719
import java.sql.SQLException;
20+
import java.util.Arrays;
1821
import java.util.List;
1922
import java.util.Map;
2023
import java.util.Scanner;
@@ -39,7 +42,8 @@ public static void main(String[] args) {
3942

4043

4144
private ConfigurableApplicationContext ctx;
42-
private Connection connection;
45+
private Connection sqlConnection;
46+
private List<DbSpecification> dbSpecification;
4347

4448

4549
public EmbeddedEvoMasterController() {
@@ -61,21 +65,25 @@ public String startSut() {
6165
"--spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;"
6266
});
6367

64-
if (connection != null) {
68+
if (sqlConnection != null) {
6569
try {
66-
connection.close();
70+
sqlConnection.close();
6771
} catch (SQLException e) {
6872
throw new RuntimeException(e);
6973
}
7074
}
71-
JdbcTemplate jdbc = ctx.getBean(JdbcTemplate.class);
72-
73-
try {
74-
connection = jdbc.getDataSource().getConnection();
75+
JdbcTemplate jdbc = ctx.getBean(JdbcTemplate.class);try {
76+
sqlConnection = jdbc.getDataSource().getConnection();
7577
} catch (SQLException e) {
7678
throw new RuntimeException(e);
7779
}
7880

81+
// need to check tablesToSkip with DATABASECHANGELOG
82+
dbSpecification = Arrays.asList(new DbSpecification(){{
83+
dbType = DatabaseType.H2;
84+
connection = sqlConnection;
85+
}});
86+
7987
return "http://localhost:" + getSutPort();
8088
}
8189

@@ -103,7 +111,7 @@ public String getPackagePrefixesToCover() {
103111

104112
@Override
105113
public void resetStateOfSUT() {
106-
DbCleaner.clearDatabase_H2(connection, List.of("DATABASECHANGELOG"));
114+
// DbCleaner.clearDatabase_H2(connection, List.of("DATABASECHANGELOG"));
107115
}
108116

109117
@Override
@@ -129,9 +137,12 @@ public List<AuthenticationDto> getInfoForAuthentication() {
129137
}
130138

131139
public Connection getConnection() {
132-
return connection;
140+
return sqlConnection;
133141
}
134142

135143

136-
144+
@Override
145+
public List<DbSpecification> getDbSpecifications() {
146+
return dbSpecification;
147+
}
137148
}

jdk_11_maven/em/external/graphql/timbuctoo/src/main/java/em/external/nl/knaw/huygens/ExternalEvoMasterController.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import org.evomaster.client.java.controller.InstrumentedSutStarter;
66
import org.evomaster.client.java.controller.api.dto.AuthenticationDto;
77
import org.evomaster.client.java.controller.api.dto.SutInfoDto;
8+
import org.evomaster.client.java.controller.internal.db.DbSpecification;
89
import org.evomaster.client.java.controller.problem.GraphQlProblem;
910
import org.evomaster.client.java.controller.problem.ProblemInfo;
1011
import org.testcontainers.containers.GenericContainer;
@@ -227,5 +228,8 @@ public Connection getConnection() {
227228
return null;
228229
}
229230

230-
231+
@Override
232+
public List<DbSpecification> getDbSpecifications() {
233+
return null;
234+
}
231235
}

0 commit comments

Comments
 (0)