Bläddra i källkod

HADOOP-16941. ITestS3GuardOutOfBandOperations.testListingDelete failing on versioned bucket (#1919)

Contributed by Steve Loughran.

Removed the failing probe and replacing with two probes which will fail
on both versioned and unversioned buckets.
Steve Loughran 5 år sedan
förälder
incheckning
aeeebc5e79

+ 9 - 2
hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestS3GuardOutOfBandOperations.java

@@ -76,6 +76,7 @@ import static org.apache.hadoop.fs.s3a.S3ATestUtils.removeBaseAndBucketOverrides
 import static org.apache.hadoop.test.LambdaTestUtils.eventually;
 import static org.apache.hadoop.test.LambdaTestUtils.intercept;
 
+import static org.apache.hadoop.test.LambdaTestUtils.interceptFuture;
 import static org.junit.Assume.assumeTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -964,6 +965,14 @@ public class ITestS3GuardOutOfBandOperations extends AbstractS3ATestBase {
       // Delete the file without S3Guard (raw)
       deleteFile(rawFS, testFilePath);
 
+      // now, versioned FS or not, it will not be readable from the
+      // raw FS, and this will fail in both open APIs during the open
+      // phase, rather than when a read is attempted.
+      interceptFuture(FileNotFoundException.class, "",
+          rawFS.openFile(testFilePath).build());
+      intercept(FileNotFoundException.class, () ->
+          rawFS.open(testFilePath).close());
+
       // File status will be still readable from s3guard
       S3AFileStatus status = (S3AFileStatus)
           guardedFs.getFileStatus(testFilePath);
@@ -985,8 +994,6 @@ public class ITestS3GuardOutOfBandOperations extends AbstractS3ATestBase {
         Assertions.assertThat(toChar(bytes))
             .describedAs("open(%s)", testFilePath)
             .isEqualTo(text);
-        expectExceptionWhenReadingOpenFileAPI(rawFS, testFilePath, text,
-            null);
       } else {
         // unversioned sequence
         expectExceptionWhenReading(testFilePath, text);