From c6f38e3592498d6d6184b838bf245bfa133ede04 Mon Sep 17 00:00:00 2001 From: Michael Darakananda Date: Mon, 12 Mar 2018 16:35:46 +1100 Subject: [PATCH 1/3] storage: speed up IT We create fewer blobs since the basic case is already tested by other ITs. Fixes #3019, hopefully. --- .../cloud/storage/it/ITStorageTest.java | 43 +++++++++---------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITStorageTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITStorageTest.java index f0888a05dc93..c4d13a9474ed 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITStorageTest.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITStorageTest.java @@ -410,22 +410,11 @@ public void testListBlobsEmptySelectedFields() throws InterruptedException { @Test(timeout = 5000) public void testListBlobRequesterPays() throws InterruptedException { - String[] blobNames = {"test-list-blobs-empty-selected-fields-blob1", - "test-list-blobs-empty-selected-fields-blob2"}; - BlobInfo blob1 = BlobInfo.newBuilder(BUCKET, blobNames[0]) - .setContentType(CONTENT_TYPE) - .build(); - BlobInfo blob2 = BlobInfo.newBuilder(BUCKET, blobNames[1]) - .setContentType(CONTENT_TYPE) - .build(); - Blob remoteBlob1 = storage.create(blob1); - Blob remoteBlob2 = storage.create(blob2); - assertNotNull(remoteBlob1); - assertNotNull(remoteBlob2); - - Page page = storage.list(BUCKET, - Storage.BlobListOption.prefix("test-list-blobs-empty-selected-fields-blob"), - Storage.BlobListOption.fields()); + BlobInfo blob1 = + BlobInfo.newBuilder(BUCKET, "test-list-blobs-empty-selected-fields-blob1") + .setContentType(CONTENT_TYPE) + .build(); + assertNotNull(storage.create(blob1)); // Test listing a Requester Pays bucket. Bucket remoteBucket = storage.get(BUCKET, Storage.BucketGetOption.fields(BucketField.ID)); @@ -433,9 +422,9 @@ public void testListBlobRequesterPays() throws InterruptedException { remoteBucket = remoteBucket.toBuilder().setRequesterPays(true).build(); Bucket updatedBucket = storage.update(remoteBucket); assertTrue(updatedBucket.requesterPays()); - String projectId = remoteStorageHelper.getOptions().getProjectId(); try { - page = storage.list(BUCKET, + storage.list( + BUCKET, Storage.BlobListOption.prefix("test-list-blobs-empty-selected-fields-blob"), Storage.BlobListOption.fields(), Storage.BlobListOption.userProject("fakeBillingProjectId")); @@ -443,12 +432,20 @@ public void testListBlobRequesterPays() throws InterruptedException { } catch (StorageException e) { assertTrue(e.getMessage().contains("User project specified in the request is invalid")); } - while (Iterators.size(page.iterateAll().iterator()) != 2) { + + String projectId = remoteStorageHelper.getOptions().getProjectId(); + for (; ; ) { + Page page = + storage.list( + BUCKET, + Storage.BlobListOption.prefix("test-list-blobs-empty-selected-fields-blob"), + Storage.BlobListOption.fields(), + Storage.BlobListOption.userProject(projectId)); + int size = Iterators.size(page.iterateAll().iterator()); + if (size == 1) { + break; + } Thread.sleep(500); - page = storage.list(BUCKET, - Storage.BlobListOption.prefix("test-list-blobs-empty-selected-fields-blob"), - Storage.BlobListOption.fields(), - Storage.BlobListOption.userProject(projectId)); } } From ac6a39888e57f48446c4e703afbfa5e10666c0e6 Mon Sep 17 00:00:00 2001 From: Michael Darakananda Date: Wed, 14 Mar 2018 11:27:45 +1100 Subject: [PATCH 2/3] pr comment --- .../com/google/cloud/storage/it/ITStorageTest.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITStorageTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITStorageTest.java index c4d13a9474ed..a774810e0e7d 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITStorageTest.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITStorageTest.java @@ -408,7 +408,7 @@ public void testListBlobsEmptySelectedFields() throws InterruptedException { } } - @Test(timeout = 5000) + @Test(timeout = 7500) public void testListBlobRequesterPays() throws InterruptedException { BlobInfo blob1 = BlobInfo.newBuilder(BUCKET, "test-list-blobs-empty-selected-fields-blob1") @@ -434,16 +434,19 @@ public void testListBlobRequesterPays() throws InterruptedException { } String projectId = remoteStorageHelper.getOptions().getProjectId(); - for (; ; ) { + while (true) { Page page = storage.list( BUCKET, Storage.BlobListOption.prefix("test-list-blobs-empty-selected-fields-blob"), Storage.BlobListOption.fields(), Storage.BlobListOption.userProject(projectId)); - int size = Iterators.size(page.iterateAll().iterator()); - if (size == 1) { - break; + List blobs = Lists.newArrayList(page.iterateAll()); + // If the list is empty, maybe the blob isn't visible yet; wait and try again. + // Otherwise, expect one blob, since we only put in one above. + if (!blobs.isEmpty()) { + assertThat(blobs).hasSize(1); + return; } Thread.sleep(500); } From 60638e2004473fb1ebfe208ee47f2cdcd40b010e Mon Sep 17 00:00:00 2001 From: Michael Darakananda Date: Wed, 14 Mar 2018 11:52:25 +1100 Subject: [PATCH 3/3] break, not return --- .../test/java/com/google/cloud/storage/it/ITStorageTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITStorageTest.java b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITStorageTest.java index a774810e0e7d..9f6272b87bf2 100644 --- a/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITStorageTest.java +++ b/google-cloud-storage/src/test/java/com/google/cloud/storage/it/ITStorageTest.java @@ -446,7 +446,7 @@ public void testListBlobRequesterPays() throws InterruptedException { // Otherwise, expect one blob, since we only put in one above. if (!blobs.isEmpty()) { assertThat(blobs).hasSize(1); - return; + break; } Thread.sleep(500); }