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