This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/polaris.git
The following commit(s) were added to refs/heads/main by this push: new 8a5b80a2d Separate Cloud Integration Tests (#2283) 8a5b80a2d is described below commit 8a5b80a2d6e331052fb99632fa5405eb231740ef Author: Tamas Mate <50709850+tma...@users.noreply.github.com> AuthorDate: Mon Aug 11 15:02:46 2025 +0200 Separate Cloud Integration Tests (#2283) Currently, cloud integration tests are part of the regular test suite but require cloud credentials to execute properly. This creates unnecessary overhead for developers who just want to run local builds or for CI jobs that don't have cloud access configured. --- .../src/main/kotlin/polaris-runtime.gradle.kts | 36 +++++---- ... PolarisRestCatalogAwsIntegrationTestBase.java} | 10 +-- ...olarisRestCatalogAzureIntegrationTestBase.java} | 10 +-- .../PolarisRestCatalogFileIntegrationTest.java | 5 -- ... PolarisRestCatalogGcpIntegrationTestBase.java} | 10 +-- .../it/test/PolarisRestCatalogIntegrationBase.java | 8 -- runtime/service/README.md | 6 +- runtime/service/build.gradle.kts | 94 ++++++++++++---------- .../polaris/service/it/RestCatalogAwsIT.java | 6 +- .../polaris/service/it/RestCatalogAzureIT.java | 6 +- .../polaris/service/it/RestCatalogGcpIT.java | 6 +- .../polaris/service/it/RestCatalogViewAwsIT.java | 2 + .../polaris/service/it/RestCatalogViewAzureIT.java | 2 + .../polaris/service/it/RestCatalogViewGcpIT.java | 2 + ...che.polaris.service.it.ext.PolarisServerManager | 20 +++++ .../service/it/PolarisRestCatalogMinIOIT.java | 5 -- 16 files changed, 116 insertions(+), 112 deletions(-) diff --git a/build-logic/src/main/kotlin/polaris-runtime.gradle.kts b/build-logic/src/main/kotlin/polaris-runtime.gradle.kts index f52b2f16f..3d5cd18f9 100644 --- a/build-logic/src/main/kotlin/polaris-runtime.gradle.kts +++ b/build-logic/src/main/kotlin/polaris-runtime.gradle.kts @@ -31,8 +31,11 @@ testing { // See https://github.com/quarkusio/quarkus/issues/22844 systemProperty("junit.jupiter.extensions.autodetection.enabled", "true") } - - if (testTask.name != "test") { + } + } + fun intTestSuiteConfigure(testSuite: JvmTestSuite) = + testSuite.run { + targets.all { testTask.configure { // For Quarkus... // @@ -42,15 +45,22 @@ testing { dependsOn(tasks.named("quarkusBuild")) } } - } - } - register<JvmTestSuite>("intTest") { - targets.all { - tasks.named("compileIntTestJava").configure { - dependsOn(tasks.named("compileQuarkusTestGeneratedSourcesJava")) + tasks.named(sources.compileJavaTaskName).configure { + dependsOn("compileQuarkusTestGeneratedSourcesJava") } + configurations.named(sources.runtimeOnlyConfigurationName).configure { + extendsFrom(configurations.getByName("testRuntimeOnly")) + } + configurations.named(sources.implementationConfigurationName).configure { + // Let the test's implementation config extend testImplementation, so it also inherits the + // project's "main" implementation dependencies (not just the "api" configuration) + extendsFrom(configurations.getByName("testImplementation")) + } + sources { java.srcDirs(tasks.named("quarkusGenerateCodeTests")) } } - sources { java.srcDirs(tasks.named("quarkusGenerateCodeTests")) } + + listOf("intTest", "cloudTest").forEach { + register<JvmTestSuite>(it).configure { intTestSuiteConfigure(this) } } } } @@ -72,14 +82,6 @@ configurations.all { } } -// Let the test's implementation config extend testImplementation, so it also inherits the -// project's "main" implementation dependencies (not just the "api" configuration) -configurations.named("intTestImplementation").configure { - extendsFrom(configurations.getByName("testImplementation")) -} - -dependencies { add("intTestImplementation", java.sourceSets.getByName("test").output.dirs) } - configurations.named("intTestRuntimeOnly").configure { extendsFrom(configurations.getByName("testRuntimeOnly")) } diff --git a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAwsIntegrationTest.java b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAwsIntegrationTestBase.java similarity index 85% rename from integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAwsIntegrationTest.java rename to integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAwsIntegrationTestBase.java index 11abab685..64bf0f221 100644 --- a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAwsIntegrationTest.java +++ b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAwsIntegrationTestBase.java @@ -20,13 +20,12 @@ package org.apache.polaris.service.it.test; import java.util.List; import java.util.Optional; -import java.util.stream.Stream; import org.apache.polaris.core.admin.model.AwsStorageConfigInfo; import org.apache.polaris.core.admin.model.StorageConfigInfo; -import org.assertj.core.util.Strings; /** Runs PolarisRestCatalogIntegrationBase test on AWS. */ -public class PolarisRestCatalogAwsIntegrationTest extends PolarisRestCatalogIntegrationBase { +public abstract class PolarisRestCatalogAwsIntegrationTestBase + extends PolarisRestCatalogIntegrationBase { public static final String ROLE_ARN = Optional.ofNullable(System.getenv("INTEGRATION_TEST_ROLE_ARN")) .or(() -> Optional.ofNullable(System.getenv("INTEGRATION_TEST_S3_ROLE_ARN"))) @@ -41,9 +40,4 @@ public class PolarisRestCatalogAwsIntegrationTest extends PolarisRestCatalogInte .setAllowedLocations(List.of(BASE_LOCATION)) .build(); } - - @Override - protected boolean shouldSkip() { - return Stream.of(BASE_LOCATION, ROLE_ARN).anyMatch(Strings::isNullOrEmpty); - } } diff --git a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAzureIntegrationTest.java b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAzureIntegrationTestBase.java similarity index 83% rename from integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAzureIntegrationTest.java rename to integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAzureIntegrationTestBase.java index 8453b5617..923f3592b 100644 --- a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAzureIntegrationTest.java +++ b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogAzureIntegrationTestBase.java @@ -19,13 +19,12 @@ package org.apache.polaris.service.it.test; import java.util.List; -import java.util.stream.Stream; import org.apache.polaris.core.admin.model.AzureStorageConfigInfo; import org.apache.polaris.core.admin.model.StorageConfigInfo; -import org.assertj.core.util.Strings; /** Runs PolarisRestCatalogIntegrationBase test on Azure. */ -public class PolarisRestCatalogAzureIntegrationTest extends PolarisRestCatalogIntegrationBase { +public abstract class PolarisRestCatalogAzureIntegrationTestBase + extends PolarisRestCatalogIntegrationBase { public static final String TENANT_ID = System.getenv("INTEGRATION_TEST_AZURE_TENANT_ID"); public static final String BASE_LOCATION = System.getenv("INTEGRATION_TEST_AZURE_PATH"); @@ -37,9 +36,4 @@ public class PolarisRestCatalogAzureIntegrationTest extends PolarisRestCatalogIn .setAllowedLocations(List.of(BASE_LOCATION)) .build(); } - - @Override - protected boolean shouldSkip() { - return Stream.of(BASE_LOCATION, TENANT_ID).anyMatch(Strings::isNullOrEmpty); - } } diff --git a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogFileIntegrationTest.java b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogFileIntegrationTest.java index 3cd2face1..7c50c67f3 100644 --- a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogFileIntegrationTest.java +++ b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogFileIntegrationTest.java @@ -46,11 +46,6 @@ public class PolarisRestCatalogFileIntegrationTest extends PolarisRestCatalogInt .build(); } - @Override - protected boolean shouldSkip() { - return false; - } - private static String stripTrailingSlash(String uri) { return uri.endsWith("/") && uri.length() > "file:///".length() ? uri.substring(0, uri.length() - 1) diff --git a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogGcpIntegrationTest.java b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogGcpIntegrationTestBase.java similarity index 83% rename from integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogGcpIntegrationTest.java rename to integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogGcpIntegrationTestBase.java index 92dd96973..381983933 100644 --- a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogGcpIntegrationTest.java +++ b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogGcpIntegrationTestBase.java @@ -19,13 +19,12 @@ package org.apache.polaris.service.it.test; import java.util.List; -import java.util.stream.Stream; import org.apache.polaris.core.admin.model.GcpStorageConfigInfo; import org.apache.polaris.core.admin.model.StorageConfigInfo; -import org.assertj.core.util.Strings; /** Runs PolarisRestCatalogIntegrationBase test on GCP. */ -public class PolarisRestCatalogGcpIntegrationTest extends PolarisRestCatalogIntegrationBase { +public abstract class PolarisRestCatalogGcpIntegrationTestBase + extends PolarisRestCatalogIntegrationBase { public static final String SERVICE_ACCOUNT = System.getenv("INTEGRATION_TEST_GCS_SERVICE_ACCOUNT"); public static final String BASE_LOCATION = System.getenv("INTEGRATION_TEST_GCS_PATH"); @@ -38,9 +37,4 @@ public class PolarisRestCatalogGcpIntegrationTest extends PolarisRestCatalogInte .setAllowedLocations(List.of(BASE_LOCATION)) .build(); } - - @Override - protected boolean shouldSkip() { - return Stream.of(BASE_LOCATION, SERVICE_ACCOUNT).anyMatch(Strings::isNullOrEmpty); - } } diff --git a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogIntegrationBase.java b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogIntegrationBase.java index c8400e5ba..78817fe92 100644 --- a/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogIntegrationBase.java +++ b/integration-tests/src/main/java/org/apache/polaris/service/it/test/PolarisRestCatalogIntegrationBase.java @@ -198,13 +198,6 @@ public abstract class PolarisRestCatalogIntegrationBase extends CatalogTests<RES fileIO.initialize(Map.of()); } - /** - * Determine whether the test should be skipped based on the environment or configuration. - * - * @return true if the test should be skipped, false otherwise - */ - protected abstract boolean shouldSkip(); - @BeforeAll static void setup(PolarisApiEndpoints apiEndpoints, ClientCredentials credentials) { adminCredentials = credentials; @@ -224,7 +217,6 @@ public abstract class PolarisRestCatalogIntegrationBase extends CatalogTests<RES @BeforeEach public void before(TestInfo testInfo) { - Assumptions.assumeThat(shouldSkip()).isFalse(); String principalName = client.newEntityName("snowman-rest"); String principalRoleName = client.newEntityName("rest-admin"); principalCredentials = managementApi.createPrincipalWithRole(principalName, principalRoleName); diff --git a/runtime/service/README.md b/runtime/service/README.md index 4aff45a7e..7d499b993 100644 --- a/runtime/service/README.md +++ b/runtime/service/README.md @@ -27,17 +27,17 @@ For S3: ```shell export INTEGRATION_TEST_S3_PATH="s3://bucket/subpath" export INTEGRATION_TEST_S3_ROLE_ARN="your-role-arn" -./gradlew :polaris-runtime-service:intTest +./gradlew :polaris-runtime-service:cloudTest ``` For Azure: ```shell export INTEGRATION_TEST_AZURE_PATH="abfss://bucket/subpath" export INTEGRATION_TEST_AZURE_TENANT_ID="your-tenant-id" -./gradlew :polaris-runtime-service:intTest +./gradlew :polaris-runtime-service:cloudTest ``` For GCS: ```shell export INTEGRATION_TEST_GCS_PATH="gs://bucket/subpath" export INTEGRATION_TEST_GCS_SERVICE_ACCOUNT="your-service-account" -./gradlew :polaris-runtime-service:intTest +./gradlew :polaris-runtime-service:cloudTest ``` diff --git a/runtime/service/build.gradle.kts b/runtime/service/build.gradle.kts index 037776c40..6a3cc092b 100644 --- a/runtime/service/build.gradle.kts +++ b/runtime/service/build.gradle.kts @@ -212,50 +212,56 @@ tasks.named<Test>("test").configure { jvmArgs("-Xshare:off") } -tasks.named<Test>("intTest").configure { - maxParallelForks = 1 - - val logsDir = project.layout.buildDirectory.get().asFile.resolve("logs") - - // JVM arguments provider does not interfere with Gradle's cache keys - jvmArgumentProviders.add( - CommandLineArgumentProvider { - // Same issue as above: allow a java security manager after Java 21 - // (this setting is for the application under test, while the setting above is for test code). - val securityManagerAllow = "-Djava.security.manager=allow" - - val args = mutableListOf<String>() - - // Example: to attach a debugger to the spawned JVM running Quarkus, add - // -Dquarkus.test.arg-line=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 - // to your test configuration. - val explicitQuarkusTestArgLine = System.getProperty("quarkus.test.arg-line") - var quarkusTestArgLine = - if (explicitQuarkusTestArgLine != null) "$explicitQuarkusTestArgLine $securityManagerAllow" - else securityManagerAllow - - args.add("-Dquarkus.test.arg-line=$quarkusTestArgLine") - // This property is not honored in a per-profile application.properties file, - // so we need to set it here. - args.add("-Dquarkus.log.file.path=${logsDir.resolve("polaris.log").absolutePath}") - - // Add `quarkus.*` system properties, other than the ones explicitly set above - System.getProperties() - .filter { - it.key.toString().startsWith("quarkus.") && - !"quarkus.test.arg-line".equals(it.key) && - !"quarkus.log.file.path".equals(it.key) +listOf("intTest", "cloudTest") + .map { tasks.named<Test>(it) } + .forEach { + it.configure { + maxParallelForks = 1 + + val logsDir = project.layout.buildDirectory.get().asFile.resolve("logs") + + // JVM arguments provider does not interfere with Gradle's cache keys + jvmArgumentProviders.add( + CommandLineArgumentProvider { + // Same issue as above: allow a java security manager after Java 21 + // (this setting is for the application under test, while the setting above is for test + // code). + val securityManagerAllow = "-Djava.security.manager=allow" + + val args = mutableListOf<String>() + + // Example: to attach a debugger to the spawned JVM running Quarkus, add + // -Dquarkus.test.arg-line=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 + // to your test configuration. + val explicitQuarkusTestArgLine = System.getProperty("quarkus.test.arg-line") + var quarkusTestArgLine = + if (explicitQuarkusTestArgLine != null) + "$explicitQuarkusTestArgLine $securityManagerAllow" + else securityManagerAllow + + args.add("-Dquarkus.test.arg-line=$quarkusTestArgLine") + // This property is not honored in a per-profile application.properties file, + // so we need to set it here. + args.add("-Dquarkus.log.file.path=${logsDir.resolve("polaris.log").absolutePath}") + + // Add `quarkus.*` system properties, other than the ones explicitly set above + System.getProperties() + .filter { + it.key.toString().startsWith("quarkus.") && + !"quarkus.test.arg-line".equals(it.key) && + !"quarkus.log.file.path".equals(it.key) + } + .forEach { args.add("${it.key}=${it.value}") } + + args } - .forEach { args.add("${it.key}=${it.value}") } - - args + ) + // delete files from previous runs + doFirst { + // delete log files written by Polaris + logsDir.deleteRecursively() + // delete quarkus.log file (captured Polaris stdout/stderr) + project.layout.buildDirectory.get().asFile.resolve("quarkus.log").delete() + } } - ) - // delete files from previous runs - doFirst { - // delete log files written by Polaris - logsDir.deleteRecursively() - // delete quarkus.log file (captured Polaris stdout/stderr) - project.layout.buildDirectory.get().asFile.resolve("quarkus.log").delete() } -} diff --git a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogAwsIT.java b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogAwsIT.java similarity index 84% rename from runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogAwsIT.java rename to runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogAwsIT.java index 553af07df..a229c1c16 100644 --- a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogAwsIT.java +++ b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogAwsIT.java @@ -19,7 +19,9 @@ package org.apache.polaris.service.it; import io.quarkus.test.junit.QuarkusIntegrationTest; -import org.apache.polaris.service.it.test.PolarisRestCatalogAwsIntegrationTest; +import org.apache.polaris.service.it.test.PolarisRestCatalogAwsIntegrationTestBase; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; @QuarkusIntegrationTest -public class RestCatalogAwsIT extends PolarisRestCatalogAwsIntegrationTest {} +@EnabledIfEnvironmentVariable(named = "INTEGRATION_TEST_S3_PATH", matches = ".+") +public class RestCatalogAwsIT extends PolarisRestCatalogAwsIntegrationTestBase {} diff --git a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogAzureIT.java b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogAzureIT.java similarity index 84% rename from runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogAzureIT.java rename to runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogAzureIT.java index b7b850388..d89bbf22d 100644 --- a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogAzureIT.java +++ b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogAzureIT.java @@ -19,7 +19,9 @@ package org.apache.polaris.service.it; import io.quarkus.test.junit.QuarkusIntegrationTest; -import org.apache.polaris.service.it.test.PolarisRestCatalogAzureIntegrationTest; +import org.apache.polaris.service.it.test.PolarisRestCatalogAzureIntegrationTestBase; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; @QuarkusIntegrationTest -public class RestCatalogAzureIT extends PolarisRestCatalogAzureIntegrationTest {} +@EnabledIfEnvironmentVariable(named = "INTEGRATION_TEST_AZURE_PATH", matches = ".+") +public class RestCatalogAzureIT extends PolarisRestCatalogAzureIntegrationTestBase {} diff --git a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogGcpIT.java b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogGcpIT.java similarity index 84% rename from runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogGcpIT.java rename to runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogGcpIT.java index ad6a7fe54..80448f0c2 100644 --- a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogGcpIT.java +++ b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogGcpIT.java @@ -19,7 +19,9 @@ package org.apache.polaris.service.it; import io.quarkus.test.junit.QuarkusIntegrationTest; -import org.apache.polaris.service.it.test.PolarisRestCatalogGcpIntegrationTest; +import org.apache.polaris.service.it.test.PolarisRestCatalogGcpIntegrationTestBase; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; @QuarkusIntegrationTest -public class RestCatalogGcpIT extends PolarisRestCatalogGcpIntegrationTest {} +@EnabledIfEnvironmentVariable(named = "INTEGRATION_TEST_GCS_PATH", matches = ".+") +public class RestCatalogGcpIT extends PolarisRestCatalogGcpIntegrationTestBase {} diff --git a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogViewAwsIT.java b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogViewAwsIT.java similarity index 91% rename from runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogViewAwsIT.java rename to runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogViewAwsIT.java index b6e742227..de6cfb387 100644 --- a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogViewAwsIT.java +++ b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogViewAwsIT.java @@ -24,9 +24,11 @@ import java.nio.file.Path; import org.apache.iceberg.view.ViewCatalogTests; import org.apache.polaris.service.it.test.PolarisRestCatalogViewAwsIntegrationTest; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.junit.jupiter.api.io.TempDir; @QuarkusIntegrationTest +@EnabledIfEnvironmentVariable(named = "INTEGRATION_TEST_S3_PATH", matches = ".+") public class RestCatalogViewAwsIT extends PolarisRestCatalogViewAwsIntegrationTest { @BeforeEach diff --git a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogViewAzureIT.java b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogViewAzureIT.java similarity index 91% rename from runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogViewAzureIT.java rename to runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogViewAzureIT.java index b2f237205..38a83c83f 100644 --- a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogViewAzureIT.java +++ b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogViewAzureIT.java @@ -24,9 +24,11 @@ import java.nio.file.Path; import org.apache.iceberg.view.ViewCatalogTests; import org.apache.polaris.service.it.test.PolarisRestCatalogViewAzureIntegrationTest; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.junit.jupiter.api.io.TempDir; @QuarkusIntegrationTest +@EnabledIfEnvironmentVariable(named = "INTEGRATION_TEST_AZURE_PATH", matches = ".+") public class RestCatalogViewAzureIT extends PolarisRestCatalogViewAzureIntegrationTest { @BeforeEach diff --git a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogViewGcpIT.java b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogViewGcpIT.java similarity index 91% rename from runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogViewGcpIT.java rename to runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogViewGcpIT.java index 1f816312c..1eca3ecc3 100644 --- a/runtime/service/src/intTest/java/org/apache/polaris/service/it/RestCatalogViewGcpIT.java +++ b/runtime/service/src/cloudTest/java/org/apache/polaris/service/it/RestCatalogViewGcpIT.java @@ -24,9 +24,11 @@ import java.nio.file.Path; import org.apache.iceberg.view.ViewCatalogTests; import org.apache.polaris.service.it.test.PolarisRestCatalogViewGcpIntegrationTest; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.junit.jupiter.api.io.TempDir; @QuarkusIntegrationTest +@EnabledIfEnvironmentVariable(named = "INTEGRATION_TEST_GCS_PATH", matches = ".+") public class RestCatalogViewGcpIT extends PolarisRestCatalogViewGcpIntegrationTest { @BeforeEach diff --git a/runtime/service/src/cloudTest/resources/META-INF/services/org.apache.polaris.service.it.ext.PolarisServerManager b/runtime/service/src/cloudTest/resources/META-INF/services/org.apache.polaris.service.it.ext.PolarisServerManager new file mode 100644 index 000000000..07ecf4b1f --- /dev/null +++ b/runtime/service/src/cloudTest/resources/META-INF/services/org.apache.polaris.service.it.ext.PolarisServerManager @@ -0,0 +1,20 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +org.apache.polaris.service.it.ServerManager \ No newline at end of file diff --git a/runtime/service/src/intTest/java/org/apache/polaris/service/it/PolarisRestCatalogMinIOIT.java b/runtime/service/src/intTest/java/org/apache/polaris/service/it/PolarisRestCatalogMinIOIT.java index e430d8ec6..d7f764dd5 100644 --- a/runtime/service/src/intTest/java/org/apache/polaris/service/it/PolarisRestCatalogMinIOIT.java +++ b/runtime/service/src/intTest/java/org/apache/polaris/service/it/PolarisRestCatalogMinIOIT.java @@ -69,11 +69,6 @@ public class PolarisRestCatalogMinIOIT extends PolarisRestCatalogIntegrationBase endpoint = minioAccess.s3endpoint(); } - @Override - protected boolean shouldSkip() { - return false; - } - @Override protected void initializeClientFileIO(FileIO fileIO) { fileIO.initialize(