See also {@code it/WriteIntegrationTest}, which provides coverage of writing and reading back * all Cloud Spanner types. */ -@Category(IntegrationTest.class) +@Category(SerialIntegrationTest.class) @RunWith(JUnit4.class) public class ITSessionPoolIntegrationTest { @ClassRule public static IntegrationTestEnv env = new IntegrationTestEnv(); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ParallelIntegrationTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ParallelIntegrationTest.java index 382f826c6ad..3553f331b31 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ParallelIntegrationTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/ParallelIntegrationTest.java @@ -17,4 +17,4 @@ package com.google.cloud.spanner; /** Parallel Integration Test interface. */ -public interface ParallelIntegrationTest {} +public interface ParallelIntegrationTest extends IntegrationTest {} diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SerialIntegrationTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SerialIntegrationTest.java new file mode 100644 index 00000000000..1aab60acf99 --- /dev/null +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SerialIntegrationTest.java @@ -0,0 +1,20 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed 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. + */ + +package com.google.cloud.spanner; + +/** Serial Integration Test interface. */ +public interface SerialIntegrationTest {} diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SlowTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SlowTest.java new file mode 100644 index 00000000000..ba5e58f81f6 --- /dev/null +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SlowTest.java @@ -0,0 +1,20 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed 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. + */ + +package com.google.cloud.spanner; + +/** Category of slow tests, to be run on the nightly build * */ +public interface SlowTest extends IntegrationTest {} diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpanTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpanTest.java index 1ba1e9c25ca..34db11d3054 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpanTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpanTest.java @@ -48,8 +48,8 @@ import org.junit.runners.JUnit4; import org.threeten.bp.Duration; -@RunWith(JUnit4.class) @Category(TracerTest.class) +@RunWith(JUnit4.class) public class SpanTest { private static final String TEST_PROJECT = "my-project"; private static final String TEST_INSTANCE = "my-instance"; diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TracerTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TracerTest.java index cad3dd19fdf..c52070b02ab 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TracerTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/TracerTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2021 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,11 +16,10 @@ package com.google.cloud.spanner; -import org.junit.experimental.categories.Category; - /** - * Tests marked with this {@link Category} will be executed in a separate execution with the - * maven-surefire plugin. The tests will be excluded from execution with the maven-failsafe plugin. + * Tests marked with this {@link org.junit.experimental.categories.Category} will be executed in a + * separate execution with the maven-surefire plugin. The tests will be excluded from execution with + * the maven-failsafe plugin. * *
Separate execution prevents the injection of any custom tracing configuration from interfering
* with other tests, as most tracing configuration is stored in static final variables.
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/it/ITBulkConnectionTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/it/ITBulkConnectionTest.java
index 8c1f0b3c945..9cc46e6ee13 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/it/ITBulkConnectionTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/it/ITBulkConnectionTest.java
@@ -20,8 +20,8 @@
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.hamcrest.MatcherAssert.assertThat;
-import com.google.cloud.spanner.IntegrationTest;
import com.google.cloud.spanner.ResultSet;
+import com.google.cloud.spanner.SerialIntegrationTest;
import com.google.cloud.spanner.Statement;
import com.google.cloud.spanner.connection.ITAbstractSpannerTest;
import java.util.ArrayList;
@@ -39,7 +39,7 @@
* parallel with other tests, as it tries to close all active connections, and should not try to
* close connections of other integration tests.
*/
-@Category(IntegrationTest.class)
+@Category(SerialIntegrationTest.class)
@RunWith(JUnit4.class)
public class ITBulkConnectionTest extends ITAbstractSpannerTest {
private static final int NUMBER_OF_TEST_CONNECTIONS = 250;
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITAsyncAPITest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITAsyncAPITest.java
index ab24219d7ed..ebd3ab4883f 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITAsyncAPITest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITAsyncAPITest.java
@@ -36,13 +36,13 @@
import com.google.cloud.spanner.DatabaseClient;
import com.google.cloud.spanner.DatabaseId;
import com.google.cloud.spanner.ErrorCode;
-import com.google.cloud.spanner.IntegrationTest;
import com.google.cloud.spanner.IntegrationTestEnv;
import com.google.cloud.spanner.Key;
import com.google.cloud.spanner.KeyRange;
import com.google.cloud.spanner.KeySet;
import com.google.cloud.spanner.Mutation;
import com.google.cloud.spanner.Options;
+import com.google.cloud.spanner.SerialIntegrationTest;
import com.google.cloud.spanner.SpannerException;
import com.google.cloud.spanner.Statement;
import com.google.cloud.spanner.Struct;
@@ -68,7 +68,7 @@
import org.junit.runners.JUnit4;
/** Integration tests for asynchronous APIs. */
-@Category(IntegrationTest.class)
+@Category(SerialIntegrationTest.class)
@RunWith(JUnit4.class)
public class ITAsyncAPITest {
@ClassRule public static IntegrationTestEnv env = new IntegrationTestEnv();
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITAsyncExamplesTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITAsyncExamplesTest.java
index c340ebd21ed..5a22c64009f 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITAsyncExamplesTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITAsyncExamplesTest.java
@@ -29,12 +29,12 @@
import com.google.cloud.spanner.Database;
import com.google.cloud.spanner.DatabaseClient;
import com.google.cloud.spanner.ErrorCode;
-import com.google.cloud.spanner.IntegrationTest;
import com.google.cloud.spanner.IntegrationTestEnv;
import com.google.cloud.spanner.Key;
import com.google.cloud.spanner.KeySet;
import com.google.cloud.spanner.Mutation;
import com.google.cloud.spanner.ReadOnlyTransaction;
+import com.google.cloud.spanner.SerialIntegrationTest;
import com.google.cloud.spanner.SpannerException;
import com.google.cloud.spanner.Statement;
import com.google.cloud.spanner.Struct;
@@ -59,7 +59,7 @@
import org.junit.runners.JUnit4;
/** Integration tests for asynchronous APIs. */
-@Category(IntegrationTest.class)
+@Category(SerialIntegrationTest.class)
@RunWith(JUnit4.class)
public class ITAsyncExamplesTest {
@ClassRule public static IntegrationTestEnv env = new IntegrationTestEnv();
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITInstanceAdminTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITInstanceAdminTest.java
index fcda2603cad..df541e84ef0 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITInstanceAdminTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITInstanceAdminTest.java
@@ -25,9 +25,9 @@
import com.google.cloud.spanner.InstanceAdminClient;
import com.google.cloud.spanner.InstanceConfig;
import com.google.cloud.spanner.InstanceInfo;
-import com.google.cloud.spanner.IntegrationTest;
import com.google.cloud.spanner.IntegrationTestEnv;
import com.google.cloud.spanner.Options;
+import com.google.cloud.spanner.SerialIntegrationTest;
import com.google.common.collect.Iterators;
import com.google.spanner.admin.instance.v1.UpdateInstanceMetadata;
import java.util.ArrayList;
@@ -42,7 +42,7 @@
import org.junit.runners.JUnit4;
/** Integration tests for {@link com.google.cloud.spanner.InstanceAdminClient}. */
-@Category(IntegrationTest.class)
+@Category(SerialIntegrationTest.class)
@RunWith(JUnit4.class)
public class ITInstanceAdminTest {
@ClassRule public static IntegrationTestEnv env = new IntegrationTestEnv();
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITVPCNegativeTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITVPCNegativeTest.java
index 584ab0ff86f..01d2dc1ad37 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITVPCNegativeTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITVPCNegativeTest.java
@@ -35,10 +35,10 @@
import com.google.cloud.spanner.ErrorCode;
import com.google.cloud.spanner.InstanceAdminClient;
import com.google.cloud.spanner.InstanceId;
-import com.google.cloud.spanner.IntegrationTest;
import com.google.cloud.spanner.KeySet;
import com.google.cloud.spanner.Options;
import com.google.cloud.spanner.ResultSet;
+import com.google.cloud.spanner.SerialIntegrationTest;
import com.google.cloud.spanner.SessionPoolOptions;
import com.google.cloud.spanner.Spanner;
import com.google.cloud.spanner.SpannerException;
@@ -62,7 +62,7 @@
import org.junit.runners.JUnit4;
/** Integration tests for VPC-SC */
-@Category(IntegrationTest.class)
+@Category(SerialIntegrationTest.class)
@RunWith(JUnit4.class)
public class ITVPCNegativeTest {
private static final Logger logger = Logger.getLogger(ITVPCNegativeTest.class.getName());
diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITBackupTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/slow/ITBackupTest.java
similarity index 99%
rename from google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITBackupTest.java
rename to google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/slow/ITBackupTest.java
index 6ccce161f08..672f6551e99 100644
--- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/ITBackupTest.java
+++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/it/slow/ITBackupTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.cloud.spanner.it;
+package com.google.cloud.spanner.it.slow;
import static com.google.cloud.spanner.testing.EmulatorSpannerHelper.isUsingEmulator;
import static com.google.cloud.spanner.testing.TimestampHelper.afterDays;
@@ -42,9 +42,9 @@
import com.google.cloud.spanner.IntegrationTestEnv;
import com.google.cloud.spanner.Mutation;
import com.google.cloud.spanner.Options;
-import com.google.cloud.spanner.ParallelIntegrationTest;
import com.google.cloud.spanner.Restore;
import com.google.cloud.spanner.ResultSet;
+import com.google.cloud.spanner.SlowTest;
import com.google.cloud.spanner.SpannerException;
import com.google.cloud.spanner.SpannerExceptionFactory;
import com.google.cloud.spanner.Statement;
@@ -85,7 +85,7 @@
* Integration tests creating, reading, updating and deleting backups. This test class combines
* several tests into one long test to reduce the total execution time.
*/
-@Category(ParallelIntegrationTest.class)
+@Category(SlowTest.class)
@RunWith(JUnit4.class)
public class ITBackupTest {
private static final Logger logger = Logger.getLogger(ITBackupTest.class.getName());
diff --git a/grpc-google-cloud-spanner-admin-database-v1/pom.xml b/grpc-google-cloud-spanner-admin-database-v1/pom.xml
index e9d15cf45f7..5b9a3b4bd04 100644
--- a/grpc-google-cloud-spanner-admin-database-v1/pom.xml
+++ b/grpc-google-cloud-spanner-admin-database-v1/pom.xml
@@ -4,13 +4,13 @@