77import org .evomaster .client .java .controller .api .dto .SutInfoDto ;
88import org .evomaster .client .java .controller .api .dto .database .schema .DatabaseType ;
99import org .evomaster .client .java .controller .db .DbCleaner ;
10+ import org .evomaster .client .java .controller .db .SqlScriptRunner ;
1011import org .evomaster .client .java .controller .db .SqlScriptRunnerCached ;
1112import org .evomaster .client .java .controller .internal .db .DbSpecification ;
1213import org .evomaster .client .java .controller .problem .GraphQlProblem ;
1314import org .evomaster .client .java .controller .problem .ProblemInfo ;
1415import org .testcontainers .containers .GenericContainer ;
1516
17+ import java .io .InputStream ;
18+ import java .io .InputStreamReader ;
1619import java .sql .Connection ;
1720import java .sql .DriverManager ;
1821import 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