diff --git a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BuiltInOpenTelemetryMetricsProviderTest.java b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BuiltInOpenTelemetryMetricsProviderTest.java index 1f2adb41a218..b83f3d175a08 100644 --- a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BuiltInOpenTelemetryMetricsProviderTest.java +++ b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/BuiltInOpenTelemetryMetricsProviderTest.java @@ -110,6 +110,7 @@ private void verifyHash(String hash) { private SpannerOptions newTestOptions() { return SpannerOptions.newBuilder() + .setEmulatorHost(null) .setProjectId("host-project") .setCredentials( OAuth2Credentials.create(new AccessToken("test-token", new Date(Long.MAX_VALUE)))) diff --git a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/LocationAwareSharedBackendReplicaHarnessTest.java b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/LocationAwareSharedBackendReplicaHarnessTest.java index d55e95653e21..21f0b144f98d 100644 --- a/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/LocationAwareSharedBackendReplicaHarnessTest.java +++ b/java-spanner/google-cloud-spanner/src/test/java/com/google/cloud/spanner/LocationAwareSharedBackendReplicaHarnessTest.java @@ -605,7 +605,7 @@ private static int waitForReplicaRoutedRead( private static void waitForReplicaRoutedStrongRead( DatabaseClient client, SharedBackendReplicaHarness harness, int expectedReplicaIndex) throws InterruptedException { - long deadlineNanos = System.nanoTime() + TimeUnit.SECONDS.toNanos(10); + long deadlineNanos = System.nanoTime() + TimeUnit.SECONDS.toNanos(30); while (System.nanoTime() < deadlineNanos) { harness.clearRequests(); boolean sawRow; diff --git a/java-spanner/samples/snippets/src/test/java/com/example/spanner/CreateFullBackupScheduleSampleIT.java b/java-spanner/samples/snippets/src/test/java/com/example/spanner/CreateFullBackupScheduleSampleIT.java index 82b67c4dfe85..f1a5d2695d13 100644 --- a/java-spanner/samples/snippets/src/test/java/com/example/spanner/CreateFullBackupScheduleSampleIT.java +++ b/java-spanner/samples/snippets/src/test/java/com/example/spanner/CreateFullBackupScheduleSampleIT.java @@ -20,6 +20,7 @@ import com.google.spanner.admin.database.v1.BackupScheduleName; import java.util.UUID; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -29,6 +30,11 @@ public class CreateFullBackupScheduleSampleIT extends SampleTestBaseV2 { // Default instance and given db should exist for tests to pass. private static String databaseId = System.getProperty("spanner.sample.database", "mysample"); + @Before + public void cleanUpPreExistingBackupSchedules() { + cleanUpPreExistingBackupSchedules(instanceId, databaseId); + } + @Test public void testCreateFullBackupScheduleSample() throws Exception { String backupScheduleId = String.format("schedule-%s", UUID.randomUUID()); diff --git a/java-spanner/samples/snippets/src/test/java/com/example/spanner/CreateIncrementalBackupScheduleSampleIT.java b/java-spanner/samples/snippets/src/test/java/com/example/spanner/CreateIncrementalBackupScheduleSampleIT.java index ac38150f5203..3b64c787f185 100644 --- a/java-spanner/samples/snippets/src/test/java/com/example/spanner/CreateIncrementalBackupScheduleSampleIT.java +++ b/java-spanner/samples/snippets/src/test/java/com/example/spanner/CreateIncrementalBackupScheduleSampleIT.java @@ -20,6 +20,7 @@ import com.google.spanner.admin.database.v1.BackupScheduleName; import java.util.UUID; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -29,6 +30,11 @@ public class CreateIncrementalBackupScheduleSampleIT extends SampleTestBaseV2 { // Default instance and given db should exist for tests to pass. private static String databaseId = System.getProperty("spanner.sample.database", "mysample"); + @Before + public void cleanUpPreExistingBackupSchedules() { + cleanUpPreExistingBackupSchedules(multiRegionalInstanceId, databaseId); + } + @Test public void testCreateIncrementalBackupScheduleSample() throws Exception { String backupScheduleId = String.format("schedule-%s", UUID.randomUUID()); diff --git a/java-spanner/samples/snippets/src/test/java/com/example/spanner/DeleteBackupScheduleSampleIT.java b/java-spanner/samples/snippets/src/test/java/com/example/spanner/DeleteBackupScheduleSampleIT.java index f379c9bfe47d..2669f93f44be 100644 --- a/java-spanner/samples/snippets/src/test/java/com/example/spanner/DeleteBackupScheduleSampleIT.java +++ b/java-spanner/samples/snippets/src/test/java/com/example/spanner/DeleteBackupScheduleSampleIT.java @@ -20,6 +20,7 @@ import com.google.spanner.admin.database.v1.BackupScheduleName; import java.util.UUID; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -29,6 +30,11 @@ public class DeleteBackupScheduleSampleIT extends SampleTestBaseV2 { // Default instance and given db should exist for tests to pass. private static String databaseId = System.getProperty("spanner.sample.database", "mysample"); + @Before + public void cleanUpPreExistingBackupSchedules() { + cleanUpPreExistingBackupSchedules(instanceId, databaseId); + } + @Test public void testDeleteBackupScheduleSample() throws Exception { String backupScheduleId = String.format("schedule-%s", UUID.randomUUID()); diff --git a/java-spanner/samples/snippets/src/test/java/com/example/spanner/GetBackupScheduleSampleIT.java b/java-spanner/samples/snippets/src/test/java/com/example/spanner/GetBackupScheduleSampleIT.java index 366093cddd5e..50e5be4065cb 100644 --- a/java-spanner/samples/snippets/src/test/java/com/example/spanner/GetBackupScheduleSampleIT.java +++ b/java-spanner/samples/snippets/src/test/java/com/example/spanner/GetBackupScheduleSampleIT.java @@ -20,6 +20,7 @@ import com.google.spanner.admin.database.v1.BackupScheduleName; import java.util.UUID; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -29,6 +30,11 @@ public class GetBackupScheduleSampleIT extends SampleTestBaseV2 { // Default instance and given db should exist for tests to pass. private static String databaseId = System.getProperty("spanner.sample.database", "mysample"); + @Before + public void cleanUpPreExistingBackupSchedules() { + cleanUpPreExistingBackupSchedules(instanceId, databaseId); + } + @Test public void testGetBackupScheduleSample() throws Exception { String backupScheduleId = String.format("schedule-%s", UUID.randomUUID()); diff --git a/java-spanner/samples/snippets/src/test/java/com/example/spanner/ListBackupSchedulesSampleIT.java b/java-spanner/samples/snippets/src/test/java/com/example/spanner/ListBackupSchedulesSampleIT.java index 97feb2d7e9ba..e2cb29943473 100644 --- a/java-spanner/samples/snippets/src/test/java/com/example/spanner/ListBackupSchedulesSampleIT.java +++ b/java-spanner/samples/snippets/src/test/java/com/example/spanner/ListBackupSchedulesSampleIT.java @@ -20,6 +20,7 @@ import com.google.spanner.admin.database.v1.BackupScheduleName; import java.util.UUID; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -29,6 +30,11 @@ public class ListBackupSchedulesSampleIT extends SampleTestBaseV2 { // Default instance and given db should exist for tests to pass. private static String databaseId = System.getProperty("spanner.sample.database", "mysample"); + @Before + public void cleanUpPreExistingBackupSchedules() { + cleanUpPreExistingBackupSchedules(instanceId, databaseId); + } + @Test public void testListBackupSchedulesSample() throws Exception { String backupScheduleId1 = String.format("schedule-%s", UUID.randomUUID()); diff --git a/java-spanner/samples/snippets/src/test/java/com/example/spanner/SampleTestBaseV2.java b/java-spanner/samples/snippets/src/test/java/com/example/spanner/SampleTestBaseV2.java index 5a43261269d9..17098729187a 100644 --- a/java-spanner/samples/snippets/src/test/java/com/example/spanner/SampleTestBaseV2.java +++ b/java-spanner/samples/snippets/src/test/java/com/example/spanner/SampleTestBaseV2.java @@ -23,6 +23,7 @@ import com.google.cloud.spanner.admin.database.v1.DatabaseAdminSettings; import com.google.cloud.spanner.admin.instance.v1.InstanceAdminClient; import com.google.cloud.spanner.admin.instance.v1.InstanceAdminSettings; +import com.google.spanner.admin.database.v1.BackupSchedule; import com.google.spanner.admin.database.v1.DatabaseDialect; import java.io.IOException; import java.util.concurrent.TimeUnit; @@ -180,4 +181,26 @@ static String getCreateDatabaseStatement( return "CREATE DATABASE \"" + databaseName + "\""; } } + + protected static void cleanUpPreExistingBackupSchedules( + final String targetInstanceId, final String targetDatabaseId) { + try { + if (targetInstanceId == null || targetDatabaseId == null || databaseAdminClient == null) { + return; + } + DatabaseAdminClient dbAdminClient = databaseAdminClient; + for (BackupSchedule schedule : + dbAdminClient + .listBackupSchedules(getDatabaseName(projectId, targetInstanceId, targetDatabaseId)) + .iterateAll()) { + try { + dbAdminClient.deleteBackupSchedule(schedule.getName()); + } catch (Exception ignored) { + // Ignore errors if schedule was already deleted or is in use + } + } + } catch (Exception e) { + System.err.println("Warning: failed pre-test schedule cleanup: " + e.getMessage()); + } + } } diff --git a/java-spanner/samples/snippets/src/test/java/com/example/spanner/UpdateBackupScheduleSampleIT.java b/java-spanner/samples/snippets/src/test/java/com/example/spanner/UpdateBackupScheduleSampleIT.java index eff037459f91..a952ef1cbc03 100644 --- a/java-spanner/samples/snippets/src/test/java/com/example/spanner/UpdateBackupScheduleSampleIT.java +++ b/java-spanner/samples/snippets/src/test/java/com/example/spanner/UpdateBackupScheduleSampleIT.java @@ -20,6 +20,7 @@ import com.google.spanner.admin.database.v1.BackupScheduleName; import java.util.UUID; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -29,6 +30,11 @@ public class UpdateBackupScheduleSampleIT extends SampleTestBaseV2 { // Default instance and given db should exist for tests to pass. private static String databaseId = System.getProperty("spanner.sample.database", "mysample"); + @Before + public void cleanUpPreExistingBackupSchedules() { + cleanUpPreExistingBackupSchedules(instanceId, databaseId); + } + @Test public void testUpdateBackupScheduleSample() throws Exception { String backupScheduleId = String.format("schedule-%s", UUID.randomUUID());