diff --git a/scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/AnnotationScheduledJobsMySqlQuartzIT.java b/scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/AnnotationScheduledJobsMySqlQuartzIT.java index a62591b7b..65d8f8ece 100644 --- a/scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/AnnotationScheduledJobsMySqlQuartzIT.java +++ b/scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/AnnotationScheduledJobsMySqlQuartzIT.java @@ -6,7 +6,6 @@ import org.apache.http.HttpStatus; import org.awaitility.Awaitility; -import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import io.quarkus.test.bootstrap.RestService; @@ -14,7 +13,6 @@ import io.quarkus.test.services.QuarkusApplication; import io.quarkus.ts.scheduling.quartz.failover.ExecutionEntity; -@Tag("fips-incompatible") // native-mode @QuarkusScenario public class AnnotationScheduledJobsMySqlQuartzIT extends BaseMySqlQuartzIT { diff --git a/scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/BasicMySqlQuartzIT.java b/scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/BasicMySqlQuartzIT.java index d8ea7817b..1d85d46be 100644 --- a/scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/BasicMySqlQuartzIT.java +++ b/scheduling/quartz/src/test/java/io/quarkus/ts/scheduling/quartz/BasicMySqlQuartzIT.java @@ -3,14 +3,12 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import org.apache.http.HttpStatus; -import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.scenarios.QuarkusScenario; import io.quarkus.test.services.QuarkusApplication; -@Tag("fips-incompatible") // native-mode @QuarkusScenario public class BasicMySqlQuartzIT extends BaseMySqlQuartzIT { diff --git a/sql-db/hibernate-fulltext-search/src/test/java/io/quarkus/ts/hibernate/search/MysqlMultitenantHibernateSearchIT.java b/sql-db/hibernate-fulltext-search/src/test/java/io/quarkus/ts/hibernate/search/MysqlMultitenantHibernateSearchIT.java index 2ec43599e..87872ee43 100644 --- a/sql-db/hibernate-fulltext-search/src/test/java/io/quarkus/ts/hibernate/search/MysqlMultitenantHibernateSearchIT.java +++ b/sql-db/hibernate-fulltext-search/src/test/java/io/quarkus/ts/hibernate/search/MysqlMultitenantHibernateSearchIT.java @@ -1,7 +1,5 @@ package io.quarkus.ts.hibernate.search; -import org.junit.jupiter.api.Tag; - import io.quarkus.test.bootstrap.DefaultService; import io.quarkus.test.bootstrap.MySqlService; import io.quarkus.test.bootstrap.Protocol; @@ -10,8 +8,6 @@ import io.quarkus.test.services.Container; import io.quarkus.test.services.QuarkusApplication; -// TODO https://github.com/quarkus-qe/quarkus-test-suite/issues/756 -@Tag("fips-incompatible") // native-mode @QuarkusScenario public class MysqlMultitenantHibernateSearchIT extends AbstractMultitenantHibernateSearchIT { static final int ELASTIC_PORT = 9200; diff --git a/sql-db/hibernate-reactive/src/test/java/io/quarkus/ts/hibernate/reactive/MySQLDatabaseHibernateReactiveIT.java b/sql-db/hibernate-reactive/src/test/java/io/quarkus/ts/hibernate/reactive/MySQLDatabaseHibernateReactiveIT.java index 83ad59c4d..02f1c0aec 100644 --- a/sql-db/hibernate-reactive/src/test/java/io/quarkus/ts/hibernate/reactive/MySQLDatabaseHibernateReactiveIT.java +++ b/sql-db/hibernate-reactive/src/test/java/io/quarkus/ts/hibernate/reactive/MySQLDatabaseHibernateReactiveIT.java @@ -8,8 +8,7 @@ import io.quarkus.test.services.Container; import io.quarkus.test.services.QuarkusApplication; -// TODO https://github.com/quarkus-qe/quarkus-test-suite/issues/756 -@Tag("fips-incompatible") // native-mode +@Tag("fips-incompatible") // TODO: enable when the https://github.com/eclipse-vertx/vertx-sql-client/issues/1436 is fixed @QuarkusScenario public class MySQLDatabaseHibernateReactiveIT extends AbstractDatabaseHibernateReactiveIT { diff --git a/sql-db/narayana-transactions/src/test/java/io/quarkus/ts/transactions/MysqlTransactionGeneralUsageIT.java b/sql-db/narayana-transactions/src/test/java/io/quarkus/ts/transactions/MysqlTransactionGeneralUsageIT.java index aa7260ab1..1fde7678e 100644 --- a/sql-db/narayana-transactions/src/test/java/io/quarkus/ts/transactions/MysqlTransactionGeneralUsageIT.java +++ b/sql-db/narayana-transactions/src/test/java/io/quarkus/ts/transactions/MysqlTransactionGeneralUsageIT.java @@ -4,7 +4,6 @@ import java.io.IOException; -import org.junit.jupiter.api.Tag; import org.testcontainers.containers.GenericContainer; import io.quarkus.test.bootstrap.MySqlService; @@ -14,8 +13,6 @@ import io.quarkus.test.services.QuarkusApplication; import io.quarkus.ts.transactions.recovery.TransactionExecutor; -// TODO https://github.com/quarkus-qe/quarkus-test-suite/issues/756 -@Tag("fips-incompatible") // native-mode @QuarkusScenario public class MysqlTransactionGeneralUsageIT extends TransactionCommons { diff --git a/sql-db/panache-flyway/pom.xml b/sql-db/panache-flyway/pom.xml index 64597d7a9..b7eb9a5f6 100644 --- a/sql-db/panache-flyway/pom.xml +++ b/sql-db/panache-flyway/pom.xml @@ -39,11 +39,6 @@ io.quarkus quarkus-elytron-security-properties-file - - org.testcontainers - mysql - test - io.quarkus.qe quarkus-test-service-database diff --git a/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/CRUDAllInPanacheWithFlywayIT.java b/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/CRUDAllInPanacheWithFlywayIT.java index d39e908ab..ae8b87c82 100644 --- a/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/CRUDAllInPanacheWithFlywayIT.java +++ b/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/CRUDAllInPanacheWithFlywayIT.java @@ -7,13 +7,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import org.apache.http.HttpStatus; -import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import io.quarkus.test.scenarios.QuarkusScenario; -// TODO https://github.com/quarkus-qe/quarkus-test-suite/issues/756 -@Tag("fips-incompatible") // native-mode @QuarkusScenario class CRUDAllInPanacheWithFlywayIT extends PanacheWithFlywayBaseIT { diff --git a/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/CRUDPanacheWithFlywayIT.java b/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/CRUDPanacheWithFlywayIT.java index 30b6f789a..1c75d8cc3 100644 --- a/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/CRUDPanacheWithFlywayIT.java +++ b/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/CRUDPanacheWithFlywayIT.java @@ -16,15 +16,12 @@ import org.apache.http.HttpStatus; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import io.quarkus.test.scenarios.QuarkusScenario; import io.restassured.http.ContentType; import io.restassured.specification.RequestSpecification; -// TODO https://github.com/quarkus-qe/quarkus-test-suite/issues/756 -@Tag("fips-incompatible") // native-mode @QuarkusScenario public class CRUDPanacheWithFlywayIT extends PanacheWithFlywayBaseIT { diff --git a/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/DataSourceConfigPanacheWithFlywayIT.java b/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/DataSourceConfigPanacheWithFlywayIT.java index 1321c6d0c..45ce99117 100644 --- a/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/DataSourceConfigPanacheWithFlywayIT.java +++ b/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/DataSourceConfigPanacheWithFlywayIT.java @@ -4,14 +4,11 @@ import static org.hamcrest.Matchers.is; import org.apache.http.HttpStatus; -import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import io.quarkus.test.scenarios.QuarkusScenario; import io.restassured.specification.RequestSpecification; -// TODO https://github.com/quarkus-qe/quarkus-test-suite/issues/756 -@Tag("fips-incompatible") //native-mode @QuarkusScenario public class DataSourceConfigPanacheWithFlywayIT extends PanacheWithFlywayBaseIT { diff --git a/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/dbpool/AgroalPoolTest.java b/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/dbpool/AgroalPoolTest.java index 8bf354fbe..2c763c429 100644 --- a/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/dbpool/AgroalPoolTest.java +++ b/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/dbpool/AgroalPoolTest.java @@ -23,7 +23,6 @@ import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import io.agroal.api.AgroalDataSource; @@ -46,7 +45,6 @@ * Some of these tests required some extra load, in order to reproduce concurrency issues. */ @EnabledWhenLinuxContainersAvailable -@Tag("fips-incompatible") // native-mode @QuarkusTest @TestProfile(AgroalTestProfile.class) public class AgroalPoolTest { diff --git a/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/dbpool/AgroalTestProfile.java b/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/dbpool/AgroalTestProfile.java index 3c6c42c83..99105a4c6 100644 --- a/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/dbpool/AgroalTestProfile.java +++ b/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/dbpool/AgroalTestProfile.java @@ -25,7 +25,7 @@ public List testResources() { public Map getConfigOverrides() { Map config = new HashMap<>(); config.put("quarkus.datasource.devservices.enabled", "false"); - config.put("quarkus.datasource.with-xa.devservices", "false"); + config.put("quarkus.datasource.with-xa.devservices.enabled", "false"); return config; } } diff --git a/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/dbpool/MySqlDatabaseTestResource.java b/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/dbpool/MySqlDatabaseTestResource.java index f1f90afe5..c5bb13348 100644 --- a/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/dbpool/MySqlDatabaseTestResource.java +++ b/sql-db/panache-flyway/src/test/java/io/quarkus/ts/sqldb/panacheflyway/dbpool/MySqlDatabaseTestResource.java @@ -7,7 +7,7 @@ import org.apache.commons.lang3.StringUtils; import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.MySQLContainer; +import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy; import org.testcontainers.utility.DockerImageName; import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; @@ -20,25 +20,39 @@ public class MySqlDatabaseTestResource implements QuarkusTestResourceLifecycleMa private static final String DEFAULT_SCHEMA = "test"; private static final String MYSQL = "mysql"; private static final String WITH_XA_PROFILE = ".with-xa"; + private static final String USER_PROPERTY = "MYSQL_USER"; + private static final String PASSWORD_PROPERTY = "MYSQL_PASSWORD"; + private static final String PASSWORD_ROOT_PROPERTY = "MYSQL_ROOT_PASSWORD"; + private static final String DATABASE_PROPERTY = "MYSQL_DATABASE"; + private static final String USER = "user"; - private MySQLContainer container; + private GenericContainer container; @Override public Map start() { String image = System.getProperty("mysql.80.image"); - container = new MySQLContainer<>( + // we used managed version of 'org.testcontainers:mysql' and version '1.19.7' failed in FIPS-enabled environment + // over 'SA/ECB/OAEPWithSHA-1AndMGF1Padding' cipher as SunJCE provider was not available in FIPS + // hence for now, we use GenericContainer which allows to override waiting strategy that works in FIPS + container = new GenericContainer<>( DockerImageName.parse(image).asCompatibleSubstituteFor(MYSQL)); - container.withUrlParam("currentSchema", DEFAULT_SCHEMA); + container.waitingFor(new LogMessageWaitStrategy().withRegEx(".*Only MySQL server logs after this point.*\\s")); + container.withExposedPorts(3306); + container.withEnv(USER_PROPERTY, USER); + container.withEnv(PASSWORD_PROPERTY, USER); + container.withEnv(PASSWORD_ROOT_PROPERTY, USER); + container.withEnv(DATABASE_PROPERTY, DEFAULT_SCHEMA); container.start(); + var jdbcUrl = "jdbc:mysql://localhost:%d/%s".formatted(container.getMappedPort(3306), DEFAULT_SCHEMA); Map config = new HashMap<>(); - config.put(defaultDataSource(QUARKUS_DB_JDBC_URL), container.getJdbcUrl()); - config.put(defaultDataSource(QUARKUS_DB_USER), container.getUsername()); - config.put(defaultDataSource(QUARKUS_DB_PASSWORD), container.getPassword()); - config.put(withXaDataSource(QUARKUS_DB_JDBC_URL), container.getJdbcUrl()); - config.put(withXaDataSource(QUARKUS_DB_USER), container.getUsername()); - config.put(withXaDataSource(QUARKUS_DB_PASSWORD), container.getPassword()); + config.put(defaultDataSource(QUARKUS_DB_JDBC_URL), jdbcUrl); + config.put(defaultDataSource(QUARKUS_DB_USER), USER); + config.put(defaultDataSource(QUARKUS_DB_PASSWORD), USER); + config.put(withXaDataSource(QUARKUS_DB_JDBC_URL), jdbcUrl); + config.put(withXaDataSource(QUARKUS_DB_USER), USER); + config.put(withXaDataSource(QUARKUS_DB_PASSWORD), USER); return Collections.unmodifiableMap(config); } diff --git a/sql-db/reactive-rest-data-panache/src/test/java/io/quarkus/ts/reactive/rest/data/panache/MySqlPanacheResourceIT.java b/sql-db/reactive-rest-data-panache/src/test/java/io/quarkus/ts/reactive/rest/data/panache/MySqlPanacheResourceIT.java index a97a7d73a..faae7f8d6 100644 --- a/sql-db/reactive-rest-data-panache/src/test/java/io/quarkus/ts/reactive/rest/data/panache/MySqlPanacheResourceIT.java +++ b/sql-db/reactive-rest-data-panache/src/test/java/io/quarkus/ts/reactive/rest/data/panache/MySqlPanacheResourceIT.java @@ -8,8 +8,7 @@ import io.quarkus.test.services.Container; import io.quarkus.test.services.QuarkusApplication; -// TODO https://github.com/quarkus-qe/quarkus-test-suite/issues/756 -@Tag("fips-incompatible") // native-mode +@Tag("fips-incompatible") // TODO: enable when the https://github.com/eclipse-vertx/vertx-sql-client/issues/1436 is fixed @QuarkusScenario public class MySqlPanacheResourceIT extends AbstractPanacheResourceIT { diff --git a/sql-db/sql-app-compatibility/src/test/java/io/quarkus/ts/sqldb/compatibility/MySqlDatabaseIT.java b/sql-db/sql-app-compatibility/src/test/java/io/quarkus/ts/sqldb/compatibility/MySqlDatabaseIT.java index f1bbc71ad..b6f7ad860 100644 --- a/sql-db/sql-app-compatibility/src/test/java/io/quarkus/ts/sqldb/compatibility/MySqlDatabaseIT.java +++ b/sql-db/sql-app-compatibility/src/test/java/io/quarkus/ts/sqldb/compatibility/MySqlDatabaseIT.java @@ -1,7 +1,5 @@ package io.quarkus.ts.sqldb.compatibility; -import org.junit.jupiter.api.Tag; - import io.quarkus.test.bootstrap.MySqlService; import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.scenarios.QuarkusScenario; @@ -9,8 +7,6 @@ import io.quarkus.test.services.Container; import io.quarkus.test.services.QuarkusApplication; -// TODO https://github.com/quarkus-qe/quarkus-test-suite/issues/756 -@Tag("fips-incompatible") // native-mode @QuarkusScenario @DisabledOnNative(reason = "Compatibility mode check in JVM mode is enough for this DB") public class MySqlDatabaseIT extends AbstractSqlDatabaseIT { diff --git a/sql-db/sql-app/src/test/java/io/quarkus/ts/sqldb/sqlapp/MySqlDatabaseIT.java b/sql-db/sql-app/src/test/java/io/quarkus/ts/sqldb/sqlapp/MySqlDatabaseIT.java index ee746f940..b298347a2 100644 --- a/sql-db/sql-app/src/test/java/io/quarkus/ts/sqldb/sqlapp/MySqlDatabaseIT.java +++ b/sql-db/sql-app/src/test/java/io/quarkus/ts/sqldb/sqlapp/MySqlDatabaseIT.java @@ -1,15 +1,11 @@ package io.quarkus.ts.sqldb.sqlapp; -import org.junit.jupiter.api.Tag; - import io.quarkus.test.bootstrap.MySqlService; import io.quarkus.test.bootstrap.RestService; import io.quarkus.test.scenarios.QuarkusScenario; import io.quarkus.test.services.Container; import io.quarkus.test.services.QuarkusApplication; -// TODO https://github.com/quarkus-qe/quarkus-test-suite/issues/756 -@Tag("fips-incompatible") // native-mode @QuarkusScenario public class MySqlDatabaseIT extends AbstractSqlDatabaseIT { diff --git a/sql-db/vertx-sql/src/test/java/io/quarkus/ts/vertx/sql/handlers/MysqlHandlerIT.java b/sql-db/vertx-sql/src/test/java/io/quarkus/ts/vertx/sql/handlers/MysqlHandlerIT.java index b8adca111..9208d3f15 100644 --- a/sql-db/vertx-sql/src/test/java/io/quarkus/ts/vertx/sql/handlers/MysqlHandlerIT.java +++ b/sql-db/vertx-sql/src/test/java/io/quarkus/ts/vertx/sql/handlers/MysqlHandlerIT.java @@ -8,8 +8,7 @@ import io.quarkus.test.services.Container; import io.quarkus.test.services.QuarkusApplication; -// TODO https://github.com/quarkus-qe/quarkus-test-suite/issues/756 -@Tag("fips-incompatible") // native-mode +@Tag("fips-incompatible") // TODO: enable when the https://github.com/eclipse-vertx/vertx-sql-client/issues/1436 is fixed @QuarkusScenario public class MysqlHandlerIT extends CommonTestCases { private static final String DATABASE = "amadeus";