Skip to content

Commit 6528066

Browse files
committed
patio
1 parent 3979427 commit 6528066

2 files changed

Lines changed: 43 additions & 8 deletions

File tree

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

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.evomaster.client.java.controller.api.dto.SutInfoDto;
1010
import org.evomaster.client.java.controller.api.dto.database.schema.DatabaseType;
1111
import org.evomaster.client.java.controller.db.DbCleaner;
12+
import org.evomaster.client.java.controller.db.SqlScriptRunner;
1213
import org.evomaster.client.java.controller.db.SqlScriptRunnerCached;
1314
import org.evomaster.client.java.controller.internal.SutController;
1415
import org.evomaster.client.java.controller.internal.db.DbSpecification;
@@ -17,6 +18,8 @@
1718
import org.testcontainers.containers.GenericContainer;
1819
import patio.Application;
1920

21+
import java.io.InputStream;
22+
import java.io.InputStreamReader;
2023
import java.sql.Connection;
2124
import java.sql.DriverManager;
2225
import java.sql.SQLException;
@@ -43,6 +46,10 @@ public static void main(String[] args){
4346
private Connection sqlConnection;
4447
private List<DbSpecification> dbSpecification;
4548

49+
private final String INIT_DB_SCRIPT_PATH = "/initDB.sql";
50+
51+
private String initSQLScript;
52+
4653
private final int portApp = 8080; //Hardcoded. will need fixing
4754
// TODO maybe report at https://github.com/micronaut-projects/micronaut-core/issues
4855

@@ -62,6 +69,12 @@ public EmbeddedEvoMasterController() {
6269

6370
public EmbeddedEvoMasterController(int port) {
6471
setControllerPort(port);
72+
73+
try (InputStream in = getClass().getResourceAsStream(INIT_DB_SCRIPT_PATH)) {
74+
initSQLScript = String.join(System.lineSeparator(), (new SqlScriptRunner()).readCommands(new InputStreamReader(in)));
75+
} catch (Exception e) {
76+
throw new RuntimeException(e);
77+
}
6578
}
6679

6780

@@ -94,9 +107,13 @@ public String startSut() {
94107
throw new RuntimeException(e);
95108
}
96109

110+
/*
111+
ensure the data is empty
112+
*/
113+
DbCleaner.clearDatabase_Postgres(sqlConnection, "public", List.of("flyway_schema_history"));
114+
97115
dbSpecification = Arrays.asList(new DbSpecification(DatabaseType.POSTGRES,sqlConnection)
98-
.withSchemas("public").withDisabledSmartClean());
99-
// initSqlOnResourcePath = "/initDb.sql";
116+
.withSchemas("public").withInitSqlScript(initSQLScript));
100117

101118
return "http://localhost:" + getSutPort();
102119
}
@@ -128,8 +145,8 @@ public String getPackagePrefixesToCover() {
128145

129146
@Override
130147
public void resetStateOfSUT() {
131-
DbCleaner.clearDatabase_Postgres(sqlConnection, "public", List.of("flyway_schema_history"));
132-
SqlScriptRunnerCached.runScriptFromResourceFile(sqlConnection,"/initDB.sql");
148+
// DbCleaner.clearDatabase_Postgres(sqlConnection, "public", List.of("flyway_schema_history"));
149+
// SqlScriptRunnerCached.runScriptFromResourceFile(sqlConnection,"/initDB.sql");
133150
}
134151

135152
@Override

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

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,15 @@
77
import org.evomaster.client.java.controller.api.dto.SutInfoDto;
88
import org.evomaster.client.java.controller.api.dto.database.schema.DatabaseType;
99
import org.evomaster.client.java.controller.db.DbCleaner;
10+
import org.evomaster.client.java.controller.db.SqlScriptRunner;
1011
import org.evomaster.client.java.controller.db.SqlScriptRunnerCached;
1112
import org.evomaster.client.java.controller.internal.db.DbSpecification;
1213
import org.evomaster.client.java.controller.problem.GraphQlProblem;
1314
import org.evomaster.client.java.controller.problem.ProblemInfo;
1415
import org.testcontainers.containers.GenericContainer;
1516

17+
import java.io.InputStream;
18+
import java.io.InputStreamReader;
1619
import java.sql.Connection;
1720
import java.sql.DriverManager;
1821
import java.sql.SQLException;
@@ -65,6 +68,10 @@ public static void main(String[] args) {
6568
private Connection sqlConnection;
6669
private List<DbSpecification> dbSpecification;
6770

71+
private final String INIT_DB_SCRIPT_PATH = "/initDB.sql";
72+
73+
private String initSQLScript;
74+
6875
private static final GenericContainer postgres = new GenericContainer("postgres:9")
6976
.withEnv("POSTGRES_HOST_AUTH_METHOD","trust")
7077
.withEnv("POSTGRES_DB", "patio")
@@ -95,6 +102,12 @@ public ExternalEvoMasterController(
95102
this.timeoutSeconds = timeoutSeconds;
96103
setControllerPort(controllerPort);
97104
setJavaCommand(command);
105+
106+
try (InputStream in = getClass().getResourceAsStream(INIT_DB_SCRIPT_PATH)) {
107+
initSQLScript = String.join(System.lineSeparator(), (new SqlScriptRunner()).readCommands(new InputStreamReader(in)));
108+
} catch (Exception e) {
109+
throw new RuntimeException(e);
110+
}
98111
}
99112

100113

@@ -152,9 +165,14 @@ public void postStart() {
152165

153166
try {
154167
sqlConnection = DriverManager.getConnection(dbUrl(), "patio", "patio");
168+
169+
/*
170+
ensure the data is empty
171+
*/
172+
DbCleaner.clearDatabase_Postgres(sqlConnection, "public", List.of("flyway_schema_history"));
173+
155174
dbSpecification = Arrays.asList(new DbSpecification(DatabaseType.POSTGRES,sqlConnection)
156-
.withSchemas("public").withDisabledSmartClean());
157-
// initSqlOnResourcePath = "/initDb.sql";
175+
.withSchemas("public").withInitSqlScript(initSQLScript));
158176

159177
} catch (Exception e) {
160178
throw new RuntimeException(e);
@@ -163,8 +181,8 @@ public void postStart() {
163181

164182
@Override
165183
public void resetStateOfSUT() {
166-
DbCleaner.clearDatabase_Postgres(sqlConnection, "public", List.of("flyway_schema_history"));
167-
SqlScriptRunnerCached.runScriptFromResourceFile(sqlConnection,"/initDB.sql");
184+
// DbCleaner.clearDatabase_Postgres(sqlConnection, "public", List.of("flyway_schema_history"));
185+
// SqlScriptRunnerCached.runScriptFromResourceFile(sqlConnection,"/initDB.sql");
168186
}
169187

170188
@Override

0 commit comments

Comments
 (0)