Guard integration tests against known not-working OS variants.

Closes #1371
This commit is contained in:
Mark Paluch
2022-10-31 15:02:09 +01:00
parent 3b6c2f06ae
commit 541eee7c8b
9 changed files with 24 additions and 13 deletions

View File

@@ -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();

View File

@@ -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 {

View File

@@ -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();

View File

@@ -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 {

View File

@@ -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();

View File

@@ -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}.
* *

View File

@@ -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) //

View File

@@ -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();

View File

@@ -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( //