diff --git a/google-cloud-jar-parent/pom.xml b/google-cloud-jar-parent/pom.xml index 285459cad823..2e8868b2d5d7 100644 --- a/google-cloud-jar-parent/pom.xml +++ b/google-cloud-jar-parent/pom.xml @@ -227,6 +227,7 @@ 1C true + 1200 diff --git a/java-storage/google-cloud-storage/pom.xml b/java-storage/google-cloud-storage/pom.xml index 892fd729b9ae..cef251b77c0e 100644 --- a/java-storage/google-cloud-storage/pom.xml +++ b/java-storage/google-cloud-storage/pom.xml @@ -460,6 +460,23 @@ + + org.apache.maven.plugins + maven-failsafe-plugin + + 1C + true + 600 + + + + + integration-test + verify + + + + diff --git a/java-storage/google-cloud-storage/src/test/java/com/google/cloud/storage/it/runner/registry/MetadataService.java b/java-storage/google-cloud-storage/src/test/java/com/google/cloud/storage/it/runner/registry/MetadataService.java index b668a4936c26..f27046cc5d03 100644 --- a/java-storage/google-cloud-storage/src/test/java/com/google/cloud/storage/it/runner/registry/MetadataService.java +++ b/java-storage/google-cloud-storage/src/test/java/com/google/cloud/storage/it/runner/registry/MetadataService.java @@ -42,6 +42,8 @@ final class MetadataService { .createRequestFactory( request -> { request.setCurlLoggingEnabled(false); + request.setConnectTimeout(1000); + request.setReadTimeout(2000); request.getHeaders().set("Metadata-Flavor", "Google"); })); private static final String baseUri = "http://metadata.google.internal"; diff --git a/java-storage/google-cloud-storage/src/test/java/com/google/cloud/storage/it/runner/registry/TestBench.java b/java-storage/google-cloud-storage/src/test/java/com/google/cloud/storage/it/runner/registry/TestBench.java index 4d9340762093..493f51f8cc50 100644 --- a/java-storage/google-cloud-storage/src/test/java/com/google/cloud/storage/it/runner/registry/TestBench.java +++ b/java-storage/google-cloud-storage/src/test/java/com/google/cloud/storage/it/runner/registry/TestBench.java @@ -128,6 +128,8 @@ private TestBench( .createRequestFactory( request -> { request.setCurlLoggingEnabled(false); + request.setConnectTimeout(5000); + request.setReadTimeout(10000); request.getHeaders().setAccept("application/json"); request .getHeaders() @@ -487,6 +489,14 @@ static final class Builder { private static final String DEFAULT_CONTAINER_NAME = "default"; + private static int findFreePort() { + try (java.net.ServerSocket socket = new java.net.ServerSocket(0)) { + return socket.getLocalPort(); + } catch (IOException e) { + throw new RuntimeException("No free port available", e); + } + } + private boolean ignorePullError; private String baseUri; private String gRPCBaseUri; @@ -497,8 +507,8 @@ static final class Builder { private Builder() { this( false, - DEFAULT_BASE_URI, - DEFAULT_GRPC_BASE_URI, + "http://localhost:" + findFreePort(), + "http://localhost:" + findFreePort(), DEFAULT_IMAGE_NAME, DEFAULT_IMAGE_TAG, DEFAULT_CONTAINER_NAME); @@ -550,13 +560,15 @@ public Builder setContainerName(String containerName) { } public TestBench build() { + String suffix = Optional.ofNullable(System.getProperty("surefire.forkNumber")) + .orElseGet(() -> java.util.UUID.randomUUID().toString().substring(0, 8)); return new TestBench( ignorePullError, baseUri, gRPCBaseUri, requireNonNull(dockerImageName, "dockerImageName must be non null"), requireNonNull(dockerImageTag, "dockerImageTag must be non null"), - String.format(Locale.US, "storage-testbench_%s", containerName)); + String.format(Locale.US, "storage-testbench_%s_%s", containerName, suffix)); } }