Skip to content

Commit 87b77a3

Browse files
authored
chore: configure backups test to run in nightly build (#1409)
* test: remove unused junit categories * test: add slow test category Add a new JUnit category: SlowTest. It will be used to execute tests that are part of the nightly build. Also refactors the categories hierarchy to be easier to setup. * test: add maven profile to run slow tests Configures a profile to execute only the slow tests. It will be invoked in the nightly build. * chore: configure nightly build for slow tests Sets up the kokoro configuration for running slow tests nightly * chore: ignore templated build.sh * chore: fix linting violations * test: reverts tracertest category removal * chore: address PR comments
1 parent 865bac1 commit 87b77a3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+180
-71
lines changed

.kokoro/build.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,18 @@ integration)
6969
verify
7070
RETURN_CODE=$?
7171
;;
72+
slowtests)
73+
mvn -B ${INTEGRATION_TEST_ARGS} \
74+
-ntp \
75+
-Pslow-tests \
76+
-DskipITs=false \
77+
-DtrimStackTrace=false \
78+
-Dclirr.skip=true \
79+
-Denforcer.skip=true \
80+
-fae \
81+
verify
82+
RETURN_CODE=$?
83+
;;
7284
samples)
7385
SAMPLES_DIR=samples
7486
# only run ITs in snapshot/ on presubmit PRs. run ITs in all 3 samples/ subdirectories otherwise.

.kokoro/nightly/slow-tests.cfg

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# Format: //devtools/kokoro/config/proto/build.proto
2+
# Runs the slow tests only in the nightly build
3+
4+
# Configure the docker image for kokoro-trampoline.
5+
env_vars: {
6+
key: "TRAMPOLINE_IMAGE"
7+
value: "gcr.io/cloud-devrel-kokoro-resources/java8"
8+
}
9+
10+
env_vars: {
11+
key: "JOB_TYPE"
12+
value: "slowtests"
13+
}
14+
# TODO: remove this after we've migrated all tests and scripts
15+
env_vars: {
16+
key: "GCLOUD_PROJECT"
17+
value: "gcloud-devel"
18+
}
19+
20+
env_vars: {
21+
key: "GOOGLE_CLOUD_PROJECT"
22+
value: "gcloud-devel"
23+
}
24+
25+
env_vars: {
26+
key: "ENABLE_FLAKYBOT"
27+
value: "true"
28+
}
29+
30+
env_vars: {
31+
key: "GOOGLE_APPLICATION_CREDENTIALS"
32+
value: "secret_manager/java-it-service-account"
33+
}
34+
35+
env_vars: {
36+
key: "SECRET_MANAGER_KEYS"
37+
value: "java-it-service-account"
38+
}

google-cloud-spanner/pom.xml

Lines changed: 48 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,10 @@
4747
</configuration>
4848
<executions>
4949
<execution>
50+
<!-- Executes unit tests -->
5051
<id>default-test</id>
5152
<configuration>
52-
<excludedGroups>com.google.cloud.spanner.TracerTest,com.google.cloud.spanner.IntegrationTest</excludedGroups>
53+
<excludedGroups>com.google.cloud.spanner.categories.TracerTest,com.google.cloud.spanner.categories.IntegrationTest</excludedGroups>
5354
</configuration>
5455
</execution>
5556
<execution>
@@ -58,7 +59,7 @@
5859
<goal>test</goal>
5960
</goals>
6061
<configuration>
61-
<groups>com.google.cloud.spanner.TracerTest</groups>
62+
<groups>com.google.cloud.spanner.categories.TracerTest</groups>
6263
</configuration>
6364
</execution>
6465
</executions>
@@ -76,21 +77,21 @@
7677
<forkedProcessTimeoutInSeconds>3000</forkedProcessTimeoutInSeconds>
7778
</configuration>
7879
<executions>
80+
<!-- Executes serial integration tests -->
7981
<execution>
8082
<id>default</id>
8183
<configuration>
82-
<groups>com.google.cloud.spanner.IntegrationTest</groups>
83-
<excludedGroups>com.google.cloud.spanner.FlakyTest,com.google.cloud.spanner.TracerTest,com.google.cloud.spanner.ParallelIntegrationTest</excludedGroups>
84+
<groups>com.google.cloud.spanner.categories.SerialIntegrationTest</groups>
8485
</configuration>
8586
</execution>
87+
<!-- Executes parallel integration tests -->
8688
<execution>
8789
<id>parallel-integration-test</id>
8890
<goals>
8991
<goal>integration-test</goal>
9092
</goals>
9193
<configuration>
92-
<groups>com.google.cloud.spanner.ParallelIntegrationTest</groups>
93-
<excludedGroups>com.google.cloud.spanner.FlakyTest,com.google.cloud.spanner.TracerTest,com.google.cloud.spanner.IntegrationTest</excludedGroups>
94+
<groups>com.google.cloud.spanner.categories.ParallelIntegrationTest</groups>
9495
<forkCount>8</forkCount>
9596
<reuseForks>true</reuseForks>
9697
</configuration>
@@ -365,6 +366,47 @@
365366
</plugins>
366367
</build>
367368
</profile>
369+
<profile>
370+
<id>slow-tests</id>
371+
<build>
372+
<plugins>
373+
<plugin>
374+
<groupId>org.apache.maven.plugins</groupId>
375+
<artifactId>maven-surefire-plugin</artifactId>
376+
<executions>
377+
<execution>
378+
<id>default-test</id>
379+
<configuration>
380+
<groups>com.google.cloud.spanner.categories.SlowTest</groups>
381+
</configuration>
382+
</execution>
383+
</executions>
384+
</plugin>
385+
<plugin>
386+
<groupId>org.apache.maven.plugins</groupId>
387+
<artifactId>maven-failsafe-plugin</artifactId>
388+
<executions>
389+
<execution>
390+
<id>default</id>
391+
<configuration>
392+
<groups>com.google.cloud.spanner.categories.SlowTest</groups>
393+
</configuration>
394+
</execution>
395+
<!-- Overrides default configuration to skip this step -->
396+
<execution>
397+
<id>parallel-integration-test</id>
398+
<goals>
399+
<goal>integration-test</goal>
400+
</goals>
401+
<configuration>
402+
<skipTests>true</skipTests>
403+
</configuration>
404+
</execution>
405+
</executions>
406+
</plugin>
407+
</plugins>
408+
</build>
409+
</profile>
368410
<profile>
369411
<id>spanner-directpath-it</id>
370412
<build>

google-cloud-spanner/src/test/java/com/google/cloud/spanner/ITSessionPoolIntegrationTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import com.google.cloud.grpc.GrpcTransportOptions.ExecutorFactory;
2222
import com.google.cloud.spanner.SessionPool.PooledSessionFuture;
23+
import com.google.cloud.spanner.categories.SerialIntegrationTest;
2324
import java.util.ArrayList;
2425
import java.util.List;
2526
import java.util.concurrent.CountDownLatch;
@@ -40,7 +41,7 @@
4041
* <p>See also {@code it/WriteIntegrationTest}, which provides coverage of writing and reading back
4142
* all Cloud Spanner types.
4243
*/
43-
@Category(IntegrationTest.class)
44+
@Category(SerialIntegrationTest.class)
4445
@RunWith(JUnit4.class)
4546
public class ITSessionPoolIntegrationTest {
4647
@ClassRule public static IntegrationTestEnv env = new IntegrationTestEnv();

google-cloud-spanner/src/test/java/com/google/cloud/spanner/SpanTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.google.cloud.NoCredentials;
2626
import com.google.cloud.spanner.MockSpannerServiceImpl.SimulatedExecutionTime;
2727
import com.google.cloud.spanner.MockSpannerServiceImpl.StatementResult;
28+
import com.google.cloud.spanner.categories.TracerTest;
2829
import com.google.protobuf.ListValue;
2930
import com.google.spanner.v1.ResultSetMetadata;
3031
import com.google.spanner.v1.StructType;
@@ -48,8 +49,8 @@
4849
import org.junit.runners.JUnit4;
4950
import org.threeten.bp.Duration;
5051

51-
@RunWith(JUnit4.class)
5252
@Category(TracerTest.class)
53+
@RunWith(JUnit4.class)
5354
public class SpanTest {
5455
private static final String TEST_PROJECT = "my-project";
5556
private static final String TEST_INSTANCE = "my-instance";

google-cloud-spanner/src/test/java/com/google/cloud/spanner/IntegrationTest.java renamed to google-cloud-spanner/src/test/java/com/google/cloud/spanner/categories/IntegrationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package com.google.cloud.spanner;
17+
package com.google.cloud.spanner.categories;
1818

1919
/** Integration Test interface. */
2020
public interface IntegrationTest {}

google-cloud-spanner/src/test/java/com/google/cloud/spanner/ParallelIntegrationTest.java renamed to google-cloud-spanner/src/test/java/com/google/cloud/spanner/categories/ParallelIntegrationTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package com.google.cloud.spanner;
17+
package com.google.cloud.spanner.categories;
1818

1919
/** Parallel Integration Test interface. */
20-
public interface ParallelIntegrationTest {}
20+
public interface ParallelIntegrationTest extends IntegrationTest {}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2017 Google LLC
2+
* Copyright 2021 Google LLC
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -14,12 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package com.google.cloud.spanner;
17+
package com.google.cloud.spanner.categories;
1818

19-
/**
20-
* Annotation for JUnit {@link org.junit.experimental.categories.Category} that indicates a test is
21-
* flaky. These will be excluded from integration tests. Use this annotation sparingly: typically it
22-
* should only be used for a test where the flakiness is dependent on a fix in a module dependency
23-
* (for example, grpc-java) and cannot be addressed locally.
24-
*/
25-
public interface FlakyTest {}
19+
/** Serial Integration Test interface. */
20+
public interface SerialIntegrationTest {}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* Copyright 2021 Google LLC
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package com.google.cloud.spanner.categories;
18+
19+
/** Category of slow tests, to be run on the nightly build * */
20+
public interface SlowTest extends IntegrationTest {}

google-cloud-spanner/src/test/java/com/google/cloud/spanner/TracerTest.java renamed to google-cloud-spanner/src/test/java/com/google/cloud/spanner/categories/TracerTest.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2020 Google LLC
2+
* Copyright 2021 Google LLC
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -14,13 +14,12 @@
1414
* limitations under the License.
1515
*/
1616

17-
package com.google.cloud.spanner;
18-
19-
import org.junit.experimental.categories.Category;
17+
package com.google.cloud.spanner.categories;
2018

2119
/**
22-
* Tests marked with this {@link Category} will be executed in a separate execution with the
23-
* maven-surefire plugin. The tests will be excluded from execution with the maven-failsafe plugin.
20+
* Tests marked with this {@link org.junit.experimental.categories.Category} will be executed in a
21+
* separate execution with the maven-surefire plugin. The tests will be excluded from execution with
22+
* the maven-failsafe plugin.
2423
*
2524
* <p>Separate execution prevents the injection of any custom tracing configuration from interfering
2625
* with other tests, as most tracing configuration is stored in static final variables.

google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/it/ITAsyncTransactionRetryTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@
3333
import com.google.cloud.spanner.KeySet;
3434
import com.google.cloud.spanner.Mutation;
3535
import com.google.cloud.spanner.Options;
36-
import com.google.cloud.spanner.ParallelIntegrationTest;
3736
import com.google.cloud.spanner.ResultSet;
3837
import com.google.cloud.spanner.SpannerExceptionFactory;
3938
import com.google.cloud.spanner.Statement;
4039
import com.google.cloud.spanner.Struct;
40+
import com.google.cloud.spanner.categories.ParallelIntegrationTest;
4141
import com.google.cloud.spanner.connection.Connection;
4242
import com.google.cloud.spanner.connection.ITAbstractSpannerTest;
4343
import com.google.cloud.spanner.connection.TransactionRetryListener;

google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/it/ITBulkConnectionTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
import static org.hamcrest.CoreMatchers.notNullValue;
2121
import static org.hamcrest.MatcherAssert.assertThat;
2222

23-
import com.google.cloud.spanner.IntegrationTest;
2423
import com.google.cloud.spanner.ResultSet;
2524
import com.google.cloud.spanner.Statement;
25+
import com.google.cloud.spanner.categories.SerialIntegrationTest;
2626
import com.google.cloud.spanner.connection.ITAbstractSpannerTest;
2727
import java.util.ArrayList;
2828
import java.util.List;
@@ -39,7 +39,7 @@
3939
* parallel with other tests, as it tries to close all active connections, and should not try to
4040
* close connections of other integration tests.
4141
*/
42-
@Category(IntegrationTest.class)
42+
@Category(SerialIntegrationTest.class)
4343
@RunWith(JUnit4.class)
4444
public class ITBulkConnectionTest extends ITAbstractSpannerTest {
4545
private static final int NUMBER_OF_TEST_CONNECTIONS = 250;

google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/it/ITCommitResponseTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525

2626
import com.google.cloud.spanner.KeySet;
2727
import com.google.cloud.spanner.Mutation;
28-
import com.google.cloud.spanner.ParallelIntegrationTest;
2928
import com.google.cloud.spanner.ResultSet;
3029
import com.google.cloud.spanner.Statement;
30+
import com.google.cloud.spanner.categories.ParallelIntegrationTest;
3131
import com.google.cloud.spanner.connection.ITAbstractSpannerTest;
3232
import org.junit.Before;
3333
import org.junit.Test;

google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/it/ITDdlTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
package com.google.cloud.spanner.connection.it;
1818

19-
import com.google.cloud.spanner.ParallelIntegrationTest;
19+
import com.google.cloud.spanner.categories.ParallelIntegrationTest;
2020
import com.google.cloud.spanner.connection.ITAbstractSpannerTest;
2121
import com.google.cloud.spanner.connection.SqlScriptVerifier;
2222
import org.junit.Test;

google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/it/ITReadOnlySpannerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@
2828
import com.google.cloud.spanner.ErrorCode;
2929
import com.google.cloud.spanner.Mutation;
3030
import com.google.cloud.spanner.Options;
31-
import com.google.cloud.spanner.ParallelIntegrationTest;
3231
import com.google.cloud.spanner.ReadContext.QueryAnalyzeMode;
3332
import com.google.cloud.spanner.ResultSet;
3433
import com.google.cloud.spanner.SpannerException;
3534
import com.google.cloud.spanner.Statement;
35+
import com.google.cloud.spanner.categories.ParallelIntegrationTest;
3636
import com.google.cloud.spanner.connection.ITAbstractSpannerTest;
3737
import com.google.cloud.spanner.connection.SqlScriptVerifier;
3838
import java.math.BigInteger;

google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/it/ITReadWriteAutocommitSpannerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@
2424

2525
import com.google.cloud.spanner.ErrorCode;
2626
import com.google.cloud.spanner.Mutation;
27-
import com.google.cloud.spanner.ParallelIntegrationTest;
2827
import com.google.cloud.spanner.ResultSet;
2928
import com.google.cloud.spanner.SpannerBatchUpdateException;
3029
import com.google.cloud.spanner.SpannerException;
3130
import com.google.cloud.spanner.Statement;
31+
import com.google.cloud.spanner.categories.ParallelIntegrationTest;
3232
import com.google.cloud.spanner.connection.ITAbstractSpannerTest;
3333
import com.google.cloud.spanner.connection.SqlScriptVerifier;
3434
import java.util.Arrays;

google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/it/ITSqlMusicScriptTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@
2424

2525
import com.google.cloud.spanner.AbortedDueToConcurrentModificationException;
2626
import com.google.cloud.spanner.Mutation;
27-
import com.google.cloud.spanner.ParallelIntegrationTest;
2827
import com.google.cloud.spanner.ResultSet;
2928
import com.google.cloud.spanner.Statement;
29+
import com.google.cloud.spanner.categories.ParallelIntegrationTest;
3030
import com.google.cloud.spanner.connection.AbstractSqlScriptVerifier.GenericConnection;
3131
import com.google.cloud.spanner.connection.ITAbstractSpannerTest;
3232
import com.google.cloud.spanner.connection.SqlScriptVerifier;

google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/it/ITSqlScriptTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
import static com.google.cloud.spanner.testing.EmulatorSpannerHelper.isUsingEmulator;
2020

2121
import com.google.cloud.spanner.ErrorCode;
22-
import com.google.cloud.spanner.ParallelIntegrationTest;
2322
import com.google.cloud.spanner.SpannerException;
23+
import com.google.cloud.spanner.categories.ParallelIntegrationTest;
2424
import com.google.cloud.spanner.connection.ITAbstractSpannerTest;
2525
import com.google.cloud.spanner.connection.SqlScriptVerifier;
2626
import com.google.cloud.spanner.connection.SqlScriptVerifier.SpannerGenericConnection;

google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/it/ITTransactionModeTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@
2525
import com.google.cloud.spanner.ErrorCode;
2626
import com.google.cloud.spanner.Key;
2727
import com.google.cloud.spanner.Mutation;
28-
import com.google.cloud.spanner.ParallelIntegrationTest;
2928
import com.google.cloud.spanner.ResultSet;
3029
import com.google.cloud.spanner.SpannerException;
3130
import com.google.cloud.spanner.Statement;
31+
import com.google.cloud.spanner.categories.ParallelIntegrationTest;
3232
import com.google.cloud.spanner.connection.ITAbstractSpannerTest;
3333
import com.google.cloud.spanner.connection.SqlScriptVerifier;
3434
import java.util.Arrays;

google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/it/ITTransactionRetryTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@
2727
import com.google.cloud.spanner.AbortedException;
2828
import com.google.cloud.spanner.KeySet;
2929
import com.google.cloud.spanner.Mutation;
30-
import com.google.cloud.spanner.ParallelIntegrationTest;
3130
import com.google.cloud.spanner.ResultSet;
3231
import com.google.cloud.spanner.SpannerException;
3332
import com.google.cloud.spanner.Statement;
33+
import com.google.cloud.spanner.categories.ParallelIntegrationTest;
3434
import com.google.cloud.spanner.connection.ITAbstractSpannerTest;
3535
import com.google.cloud.spanner.connection.TransactionRetryListener;
3636
import java.sql.Connection;

0 commit comments

Comments
 (0)