Guard integration tests against known not-working OS variants.
Closes #1371
This commit is contained in:
@@ -21,9 +21,9 @@ import reactor.core.publisher.Mono;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.junit.jupiter.api.condition.DisabledOnOs;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.ComponentScan.Filter;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -45,6 +45,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration
|
||||
@EnabledOnClass("oracle.r2dbc.impl.OracleConnectionFactoryProviderImpl")
|
||||
@DisabledOnOs(architectures = "aarch64")
|
||||
public class OracleR2dbcRepositoryIntegrationTests extends AbstractR2dbcRepositoryIntegrationTests {
|
||||
|
||||
@RegisterExtension public static final ExternalDatabase database = OracleTestSupport.database();
|
||||
|
||||
@@ -21,9 +21,9 @@ import java.util.Optional;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.junit.jupiter.api.condition.DisabledOnOs;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.ComponentScan.Filter;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -49,6 +49,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration
|
||||
@EnabledOnClass("oracle.r2dbc.impl.OracleConnectionFactoryProviderImpl")
|
||||
@DisabledOnOs(architectures = "aarch64")
|
||||
public class OracleR2dbcRepositoryWithMixedCaseNamesIntegrationTests
|
||||
extends AbstractR2dbcRepositoryWithMixedCaseNamesIntegrationTests {
|
||||
|
||||
|
||||
@@ -22,9 +22,9 @@ import reactor.core.publisher.Mono;
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.condition.DisabledOnOs;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.ComponentScan.Filter;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -44,6 +44,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
*/
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration
|
||||
@DisabledOnOs(architectures = "aarch64")
|
||||
public class SqlServerR2dbcRepositoryIntegrationTests extends AbstractR2dbcRepositoryIntegrationTests {
|
||||
|
||||
@RegisterExtension public static final ExternalDatabase database = SqlServerTestSupport.database();
|
||||
|
||||
@@ -21,9 +21,9 @@ import java.util.Optional;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.junit.jupiter.api.condition.DisabledOnOs;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.ComponentScan.Filter;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -47,6 +47,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
*/
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration
|
||||
@DisabledOnOs(architectures = "aarch64")
|
||||
public class SqlServerR2dbcRepositoryWithMixedCaseNamesIntegrationTests
|
||||
extends AbstractR2dbcRepositoryWithMixedCaseNamesIntegrationTests {
|
||||
|
||||
|
||||
@@ -19,9 +19,9 @@ import io.r2dbc.spi.ConnectionFactory;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.junit.jupiter.api.condition.DisabledOnOs;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.r2dbc.config.AbstractR2dbcConfiguration;
|
||||
import org.springframework.data.r2dbc.testing.ExternalDatabase;
|
||||
@@ -36,6 +36,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
*/
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration
|
||||
@DisabledOnOs(architectures = "aarch64")
|
||||
public class SqlServerSimpleR2dbcRepositoryIntegrationTests extends AbstractSimpleR2dbcRepositoryIntegrationTests {
|
||||
|
||||
@RegisterExtension public static final ExternalDatabase database = SqlServerTestSupport.database();
|
||||
|
||||
@@ -30,6 +30,8 @@ import javax.sql.DataSource;
|
||||
*/
|
||||
abstract class ConnectionUtils {
|
||||
|
||||
public static String AARCH64 = "aarch64";
|
||||
|
||||
/**
|
||||
* Obtain a {@link ConnectionFactory} given {@link ExternalDatabase} and {@code driver}.
|
||||
*
|
||||
|
||||
@@ -25,12 +25,10 @@ import java.util.stream.Stream;
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.awaitility.Awaitility;
|
||||
|
||||
import org.springframework.data.r2dbc.testing.ExternalDatabase.ProvidedDatabase;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.jdbc.datasource.DriverManagerDataSource;
|
||||
import org.springframework.util.ClassUtils;
|
||||
|
||||
import org.testcontainers.containers.OracleContainer;
|
||||
|
||||
/**
|
||||
@@ -73,6 +71,11 @@ public class OracleTestSupport {
|
||||
*/
|
||||
public static ExternalDatabase database() {
|
||||
|
||||
// Disable Oracle support as there's no M1 support yet.
|
||||
if (ConnectionUtils.AARCH64.equals(System.getProperty("os.arch"))) {
|
||||
return ExternalDatabase.unavailable();
|
||||
}
|
||||
|
||||
if (!ClassUtils.isPresent("oracle.r2dbc.impl.OracleConnectionFactoryProviderImpl",
|
||||
OracleTestSupport.class.getClassLoader())) {
|
||||
return ExternalDatabase.unavailable();
|
||||
@@ -125,8 +128,7 @@ public class OracleTestSupport {
|
||||
if (testContainerDatabase == null) {
|
||||
|
||||
try {
|
||||
OracleContainer container = new OracleContainer("gvenzl/oracle-xe:21.3.0-slim")
|
||||
.withReuse(true);
|
||||
OracleContainer container = new OracleContainer("gvenzl/oracle-xe:21.3.0-slim").withReuse(true);
|
||||
container.start();
|
||||
|
||||
testContainerDatabase = ProvidedDatabase.builder(container) //
|
||||
|
||||
@@ -23,9 +23,7 @@ import java.util.stream.Stream;
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.postgresql.ds.PGSimpleDataSource;
|
||||
|
||||
import org.springframework.data.r2dbc.testing.ExternalDatabase.ProvidedDatabase;
|
||||
|
||||
import org.testcontainers.containers.PostgreSQLContainer;
|
||||
|
||||
/**
|
||||
@@ -120,7 +118,7 @@ public class PostgresTestSupport {
|
||||
|
||||
try {
|
||||
PostgreSQLContainer container = new PostgreSQLContainer(
|
||||
"postgres:14.3");
|
||||
"postgres:14.5");
|
||||
container.start();
|
||||
|
||||
testContainerDatabase = ProvidedDatabase.builder(container).database(container.getDatabaseName()).build();
|
||||
|
||||
@@ -23,7 +23,6 @@ import java.util.stream.Stream;
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.springframework.data.r2dbc.testing.ExternalDatabase.ProvidedDatabase;
|
||||
|
||||
import org.testcontainers.containers.MSSQLServerContainer;
|
||||
|
||||
import com.microsoft.sqlserver.jdbc.SQLServerDataSource;
|
||||
@@ -72,6 +71,11 @@ public class SqlServerTestSupport {
|
||||
*/
|
||||
public static ExternalDatabase database() {
|
||||
|
||||
// Disable SQL Server support as there's no M1 support yet.
|
||||
if (ConnectionUtils.AARCH64.equals(System.getProperty("os.arch"))) {
|
||||
return ExternalDatabase.unavailable();
|
||||
}
|
||||
|
||||
if (Boolean.getBoolean("spring.data.r2dbc.test.preferLocalDatabase")) {
|
||||
|
||||
return getFirstWorkingDatabase( //
|
||||
|
||||
Reference in New Issue
Block a user