This is an automated email from the ASF dual-hosted git repository.

adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new fe80c6f0eb9 HDDS-14885. Replace usage of Hadoop ...TestUtils (#9966)
fe80c6f0eb9 is described below

commit fe80c6f0eb92443a1aa67d63535f61269415d94a
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Tue Mar 24 12:50:16 2026 +0100

    HDDS-14885. Replace usage of Hadoop ...TestUtils (#9966)
---
 .../fs/contract/AbstractContractConcatTest.java    |  8 +--
 .../AbstractContractContentSummaryTest.java        |  4 +-
 .../AbstractContractCopyFromLocalTest.java         | 10 +--
 .../AbstractContractGetFileStatusTest.java         | 10 +--
 .../AbstractContractLeaseRecoveryTest.java         | 14 ++--
 .../AbstractContractMultipartUploaderTest.java     | 55 ++++++++--------
 .../fs/contract/AbstractContractOpenTest.java      | 74 ++++++++++++----------
 .../AbstractContractRootDirectoryTest.java         | 18 +++---
 .../tools/contract/AbstractContractDistCpTest.java | 14 ++--
 pom.xml                                            |  4 --
 10 files changed, 111 insertions(+), 100 deletions(-)

diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractConcatTest.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractConcatTest.java
index 2a7c48acd8f..cdd98ed40fe 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractConcatTest.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractConcatTest.java
@@ -23,7 +23,7 @@
 import static org.apache.hadoop.fs.contract.ContractTestUtils.createFile;
 import static org.apache.hadoop.fs.contract.ContractTestUtils.dataset;
 import static org.apache.hadoop.fs.contract.ContractTestUtils.touch;
-import static org.apache.hadoop.test.LambdaTestUtils.intercept;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import org.apache.hadoop.fs.Path;
 import org.junit.jupiter.api.BeforeEach;
@@ -58,14 +58,14 @@ public void setup() throws Exception {
   @Test
   public void testConcatEmptyFiles() throws Throwable {
     touch(getFileSystem(), target);
-    handleExpectedException(intercept(Exception.class,
+    handleExpectedException(assertThrows(Exception.class,
         () -> getFileSystem().concat(target, new Path[0])));
   }
 
   @Test
   public void testConcatMissingTarget() throws Throwable {
     handleExpectedException(
-        intercept(Exception.class,
+        assertThrows(Exception.class,
             () -> getFileSystem().concat(target, new Path[]{zeroByteFile})));
   }
 
@@ -85,7 +85,7 @@ public void testConcatFileOnFile() throws Throwable {
   public void testConcatOnSelf() throws Throwable {
     byte[] block = dataset(TEST_FILE_LEN, 0, 255);
     createFile(getFileSystem(), target, false, block);
-    handleExpectedException(intercept(Exception.class,
+    handleExpectedException(assertThrows(Exception.class,
         () -> getFileSystem().concat(target, new Path[]{target})));
   }
 
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractContentSummaryTest.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractContentSummaryTest.java
index 5611b4d7c86..2ea7b7070b9 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractContentSummaryTest.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractContentSummaryTest.java
@@ -18,7 +18,7 @@
 package org.apache.hadoop.fs.contract;
 
 import static org.apache.hadoop.fs.contract.ContractTestUtils.touch;
-import static org.apache.hadoop.test.LambdaTestUtils.intercept;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import java.io.FileNotFoundException;
 import org.apache.hadoop.fs.ContentSummary;
@@ -57,6 +57,6 @@ public void testGetContentSummaryIncorrectPath() throws 
Throwable {
 
     fs.mkdirs(parent);
 
-    intercept(FileNotFoundException.class, () -> fs.getContentSummary(nested));
+    assertThrows(FileNotFoundException.class, () -> 
fs.getContentSummary(nested));
   }
 }
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractCopyFromLocalTest.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractCopyFromLocalTest.java
index c27319d0ec1..61a59727a19 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractCopyFromLocalTest.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractCopyFromLocalTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.hadoop.fs.contract;
 
-import static org.apache.hadoop.test.LambdaTestUtils.intercept;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -79,7 +79,7 @@ public void testCopyFile() throws Throwable {
   public void testCopyFileNoOverwrite() throws Throwable {
     file = createTempFile("hello");
     copyFromLocal(file, true);
-    intercept(PathExistsException.class,
+    assertThrows(PathExistsException.class,
         () -> copyFromLocal(file, false));
   }
 
@@ -99,7 +99,7 @@ public void testCopyMissingFile() throws Throwable {
     file = createTempFile("test");
     FileUtils.deleteQuietly(file);
     // first upload to create
-    intercept(FileNotFoundException.class, "",
+    assertThrows(FileNotFoundException.class,
         () -> copyFromLocal(file, true));
   }
 
@@ -194,7 +194,7 @@ public void testSrcIsDirWithOverwriteOptions() throws 
Throwable {
 
     Path dest = path(source.getName()).getParent();
     fs.copyFromLocalFile(sourcePath, dest);
-    intercept(PathExistsException.class,
+    assertThrows(PathExistsException.class,
         () -> fs.copyFromLocalFile(false, false,
             sourcePath, dest));
 
@@ -279,7 +279,7 @@ public void testSourceIsDirectoryAndDestinationIsFile() 
throws Throwable {
     Path destination = copyFromLocal(f, false);
     Path sourcePath = new Path(source.toURI());
 
-    intercept(FileAlreadyExistsException.class,
+    assertThrows(FileAlreadyExistsException.class,
         () -> getFileSystem().copyFromLocalFile(false, true,
             sourcePath, destination));
   }
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractGetFileStatusTest.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractGetFileStatusTest.java
index 6d09248a091..d37f783ec64 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractGetFileStatusTest.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractGetFileStatusTest.java
@@ -25,8 +25,8 @@
 import static 
org.apache.hadoop.fs.contract.ContractTestUtils.toListThroughNextCallsAlone;
 import static org.apache.hadoop.fs.contract.ContractTestUtils.touch;
 import static org.apache.hadoop.fs.contract.ContractTestUtils.treeWalk;
-import static org.apache.hadoop.test.LambdaTestUtils.intercept;
 import static org.assertj.core.api.Assertions.fail;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -321,28 +321,28 @@ public void testListFilesNoDir() throws Throwable {
   public void testListStatusIteratorNoDir() throws Throwable {
     describe("test the listStatusIterator call on a path which is not " +
         "present");
-    intercept(FileNotFoundException.class,
+    assertThrows(FileNotFoundException.class,
         () -> getFileSystem().listStatusIterator(path("missing")));
   }
 
   @Test
   public void testLocatedStatusNoDir() throws Throwable {
     describe("test the LocatedStatus call on a path which is not present");
-    intercept(FileNotFoundException.class,
+    assertThrows(FileNotFoundException.class,
         () -> getFileSystem().listLocatedStatus(path("missing")));
   }
 
   @Test
   public void testListStatusNoDir() throws Throwable {
     describe("test the listStatus(path) call on a path which is not present");
-    intercept(FileNotFoundException.class,
+    assertThrows(FileNotFoundException.class,
         () -> getFileSystem().listStatus(path("missing")));
   }
 
   @Test
   public void testListStatusFilteredNoDir() throws Throwable {
     describe("test the listStatus(path, filter) call on a missing path");
-    intercept(FileNotFoundException.class,
+    assertThrows(FileNotFoundException.class,
         () -> getFileSystem().listStatus(path("missing"), ALL_PATHS));
   }
 
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractLeaseRecoveryTest.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractLeaseRecoveryTest.java
index 55a5e88aa8d..9c9a5ac2faf 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractLeaseRecoveryTest.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractLeaseRecoveryTest.java
@@ -18,13 +18,13 @@
 package org.apache.hadoop.fs.contract;
 
 import static org.apache.hadoop.fs.CommonPathCapabilities.LEASE_RECOVERABLE;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.LeaseRecoverable;
 import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.test.LambdaTestUtils;
 import org.assertj.core.api.Assertions;
 import org.junit.jupiter.api.Test;
 
@@ -56,11 +56,13 @@ public void testLeaseRecoveryFileNotExist() throws 
Throwable {
     final FileSystem fs = getFileSystem();
     LeaseRecoverable leaseRecoverableFs = 
verifyAndGetLeaseRecoverableInstance(fs, path);
 
-    LambdaTestUtils.intercept(FileNotFoundException.class, "File does not 
exist",
+    Exception e = assertThrows(FileNotFoundException.class,
         () -> leaseRecoverableFs.recoverLease(path));
+    Assertions.assertThat(e).hasMessageContaining("File does not exist");
 
-    LambdaTestUtils.intercept(FileNotFoundException.class, "File does not 
exist",
+    e = assertThrows(FileNotFoundException.class,
         () -> leaseRecoverableFs.isFileClosed(path));
+    Assertions.assertThat(e).hasMessageContaining("File does not exist");
   }
 
   @Test
@@ -70,11 +72,13 @@ public void testLeaseRecoveryFileOnDirectory() throws 
Throwable {
     LeaseRecoverable leaseRecoverableFs = 
verifyAndGetLeaseRecoverableInstance(fs, path);
     final Path parentDirectory = path.getParent();
 
-    LambdaTestUtils.intercept(FileNotFoundException.class, "Path is not a 
file",
+    Exception e = assertThrows(FileNotFoundException.class,
         () -> leaseRecoverableFs.recoverLease(parentDirectory));
+    Assertions.assertThat(e).hasMessageContaining("Path is not a file");
 
-    LambdaTestUtils.intercept(FileNotFoundException.class, "Path is not a 
file",
+    e = assertThrows(FileNotFoundException.class,
         () -> leaseRecoverableFs.isFileClosed(parentDirectory));
+    Assertions.assertThat(e).hasMessageContaining("Path is not a file");
   }
 
   private LeaseRecoverable verifyAndGetLeaseRecoverableInstance(FileSystem fs, 
Path path)
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractMultipartUploaderTest.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractMultipartUploaderTest.java
index ba902986eee..c6fa82b0602 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractMultipartUploaderTest.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractMultipartUploaderTest.java
@@ -20,16 +20,16 @@
 import static org.apache.hadoop.fs.contract.ContractTestUtils.verifyPathExists;
 import static 
org.apache.hadoop.fs.statistics.IOStatisticsLogging.ioStatisticsSourceToString;
 import static org.apache.hadoop.io.IOUtils.cleanupWithLogger;
-import static org.apache.hadoop.test.LambdaTestUtils.eventually;
-import static org.apache.hadoop.test.LambdaTestUtils.intercept;
 import static org.apache.hadoop.util.functional.FutureIO.awaitFuture;
 import static org.assertj.core.api.Assumptions.assumeThat;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import com.google.common.base.Charsets;
 import java.io.ByteArrayInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.UncheckedIOException;
 import java.nio.ByteBuffer;
 import java.security.MessageDigest;
 import java.util.HashMap;
@@ -47,8 +47,8 @@
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.fs.PathHandle;
 import org.apache.hadoop.fs.UploadHandle;
-import org.apache.hadoop.test.LambdaTestUtils;
 import org.apache.hadoop.util.DurationInfo;
+import org.apache.ozone.test.GenericTestUtils;
 import org.assertj.core.api.Assertions;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
@@ -262,7 +262,7 @@ public void testSingleUpload() throws Exception {
     // verify that if the implementation processes data immediately
     // then a second attempt at the upload will fail.
     if (finalizeConsumesUploadIdImmediately()) {
-      intercept(FileNotFoundException.class,
+      assertThrows(FileNotFoundException.class,
           () -> complete(completer, uploadHandle, file, partHandles));
     } else {
       // otherwise, the same or other uploader can try again.
@@ -429,14 +429,18 @@ protected void verifyContents(final Path file,
    * @param expectedLength expected length
    * @throws IOException IO failure
    */
-  private void verifyFileLength(final Path file, final long expectedLength)
-      throws IOException {
-    FileStatus st = getFileSystem().getFileStatus(file);
-    Assertions.assertThat(st)
-        .describedAs("Uploaded file %s", st)
-        .matches(FileStatus::isFile)
-        .extracting(FileStatus::getLen)
-        .isEqualTo(expectedLength);
+  private boolean verifyFileLength(final Path file, final long expectedLength) 
{
+    try {
+      FileStatus st = getFileSystem().getFileStatus(file);
+      Assertions.assertThat(st)
+          .describedAs("Uploaded file %s", st)
+          .matches(FileStatus::isFile)
+          .extracting(FileStatus::getLen)
+          .isEqualTo(expectedLength);
+      return true;
+    } catch (IOException e) {
+      throw new UncheckedIOException(e);
+    }
   }
 
   /**
@@ -608,10 +612,10 @@ public void testMultipartUploadAbort() throws Exception {
     int len = contents.getBytes(Charsets.UTF_8).length;
     InputStream is = IOUtils.toInputStream(contents, "UTF-8");
 
-    intercept(IOException.class,
+    assertThrows(IOException.class,
         () -> awaitFuture(
             uploader0.putPart(uploadHandle, 49, true, file, is, len)));
-    intercept(IOException.class,
+    assertThrows(IOException.class,
         () -> complete(uploader0, uploadHandle, file, partHandles));
 
     assertPathDoesNotExist("Uploaded file should not exist", file);
@@ -619,7 +623,7 @@ public void testMultipartUploadAbort() throws Exception {
     // A second abort should be an FileNotFoundException if the UploadHandle is
     // consumed by finalization operations (complete, abort).
     if (finalizeConsumesUploadIdImmediately()) {
-      intercept(FileNotFoundException.class,
+      assertThrows(FileNotFoundException.class,
           () -> abortUpload(uploadHandle, file));
     } else {
       abortUpload(uploadHandle, file);
@@ -634,7 +638,7 @@ public void testAbortUnknownUpload() throws Exception {
     Path file = methodPath();
     ByteBuffer byteBuffer = ByteBuffer.wrap(
         "invalid-handle".getBytes(Charsets.UTF_8));
-    intercept(FileNotFoundException.class,
+    assertThrows(FileNotFoundException.class,
         () -> abortUpload(BBUploadHandle.from(byteBuffer), file));
   }
 
@@ -681,7 +685,7 @@ public void testAbortAllPendingUploads() throws Exception {
   @Test
   public void testAbortEmptyUploadHandle() throws Exception {
     ByteBuffer byteBuffer = ByteBuffer.wrap(new byte[0]);
-    intercept(IllegalArgumentException.class,
+    assertThrows(IllegalArgumentException.class,
         () -> abortUpload(BBUploadHandle.from(byteBuffer), methodPath()));
   }
 
@@ -693,7 +697,7 @@ public void testCompleteEmptyUpload() throws Exception {
     describe("Expect an empty MPU to fail, but still be abortable");
     Path dest = methodPath();
     UploadHandle handle = startUpload(dest);
-    intercept(IllegalArgumentException.class,
+    assertThrows(IllegalArgumentException.class,
         () -> complete(uploader0, handle, dest, new HashMap<>()));
     abortUpload(handle, dest);
   }
@@ -709,7 +713,7 @@ public void testPutPartEmptyUploadID() throws Exception {
         BBUploadHandle.from(ByteBuffer.wrap(new byte[0]));
     byte[] payload = generatePayload(1);
     InputStream is = new ByteArrayInputStream(payload);
-    intercept(IllegalArgumentException.class,
+    assertThrows(IllegalArgumentException.class,
         () -> uploader0.putPart(emptyHandle, 1, true, dest, is,
             payload.length));
   }
@@ -729,14 +733,14 @@ public void testCompleteEmptyUploadID() throws Exception {
         generatePayload(1, SMALL_FILE));
     partHandles.put(1, partHandle);
 
-    intercept(IllegalArgumentException.class,
+    assertThrows(IllegalArgumentException.class,
         () -> complete(uploader0, emptyHandle, dest, partHandles));
 
     // and, while things are setup, attempt to complete with
     // a part index of 0
     partHandles.clear();
     partHandles.put(0, partHandle);
-    intercept(IllegalArgumentException.class,
+    assertThrows(IllegalArgumentException.class,
         () -> complete(uploader0, realHandle, dest, partHandles));
   }
 
@@ -758,7 +762,7 @@ public void testDirectoryInTheWay() throws Exception {
     partHandles.put(1, partHandle);
 
     fs.mkdirs(file);
-    intercept(IOException.class,
+    assertThrows(IOException.class,
         () -> completeUpload(file, uploadHandle, partHandles, null,
             size));
     // abort should still work
@@ -830,11 +834,8 @@ public void testConcurrentUploads() throws Throwable {
     // consistent.
     final int consistencyDelay = timeToBecomeConsistentMillis();
     if (consistencyDelay > 0) {
-      eventually(consistencyDelay,
-          () -> verifyFileLength(file, size2),
-          new LambdaTestUtils.ProportionalRetryInterval(
-              CONSISTENCY_INTERVAL,
-              consistencyDelay));
+      GenericTestUtils.waitFor(() -> verifyFileLength(file, size2),
+          CONSISTENCY_INTERVAL, consistencyDelay);
     }
 
     verifyContents(file, digest2, size2);
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractOpenTest.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractOpenTest.java
index e696654059d..400035c2364 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractOpenTest.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractOpenTest.java
@@ -24,14 +24,16 @@
 import static org.apache.hadoop.fs.contract.ContractTestUtils.createFile;
 import static org.apache.hadoop.fs.contract.ContractTestUtils.dataset;
 import static org.apache.hadoop.fs.contract.ContractTestUtils.touch;
-import static org.apache.hadoop.test.LambdaTestUtils.intercept;
-import static org.apache.hadoop.test.LambdaTestUtils.interceptFuture;
 import static org.apache.hadoop.util.functional.FutureIO.awaitFuture;
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.fail;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.time.Duration;
 import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import org.apache.hadoop.conf.Configuration;
@@ -42,7 +44,6 @@
 import org.apache.hadoop.fs.FutureDataInputStreamBuilder;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.io.IOUtils;
-import org.assertj.core.api.Assertions;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
 
@@ -75,7 +76,7 @@ public void testOpenReadZeroByteFile() throws Throwable {
     Path path = path("zero.txt");
     touch(getFileSystem(), path);
     instream = getFileSystem().open(path);
-    Assertions.assertThat(instream.getPos())
+    assertThat(instream.getPos())
         .isEqualTo(0);
     //expect initial read to fail
     assertMinusOne("initial byte read", instream.read());
@@ -87,7 +88,7 @@ public void testFsIsEncrypted() throws Exception {
     final Path path = path("file");
     createFile(getFileSystem(), path, false, new byte[0]);
     final FileStatus stat = getFileSystem().getFileStatus(path);
-    Assertions.assertThat(stat.isEncrypted())
+    assertThat(stat.isEncrypted())
         .withFailMessage("Result wrong for for isEncrypted() in " + stat)
         .isEqualTo(areZeroByteFilesEncrypted());
   }
@@ -152,16 +153,16 @@ public void testOpenFileTwice() throws Throwable {
     FSDataInputStream instream2 = null;
     try {
       int c = instream1.read();
-      Assertions.assertThat(c).isEqualTo(0);
+      assertThat(c).isEqualTo(0);
       instream2 = getFileSystem().open(path);
-      Assertions.assertThat(instream2.read())
+      assertThat(instream2.read())
           .withFailMessage("first read of instream 2")
           .isEqualTo(0);
-      Assertions.assertThat(instream1.read())
+      assertThat(instream1.read())
           .withFailMessage("second read of instream 1")
           .isEqualTo(1);
       instream1.close();
-      Assertions.assertThat(instream2.read())
+      assertThat(instream2.read())
           .withFailMessage("second read of instream 2")
           .isEqualTo(1);
       //close instream1 again
@@ -183,18 +184,18 @@ public void testSequentialRead() throws Throwable {
     createFile(getFileSystem(), path, true, block);
     //open first
     instream = getFileSystem().open(path);
-    Assertions.assertThat(instream.read())
+    assertThat(instream.read())
         .isEqualTo(base);
-    Assertions.assertThat(instream.read())
+    assertThat(instream.read())
         .isEqualTo(base + 1);
-    Assertions.assertThat(instream.read())
+    assertThat(instream.read())
         .isEqualTo(base + 2);
-    Assertions.assertThat(instream.read())
+    assertThat(instream.read())
         .isEqualTo(base + 3);
     // and now, failures
-    Assertions.assertThat(instream.read())
+    assertThat(instream.read())
         .isEqualTo(-1);
-    Assertions.assertThat(instream.read())
+    assertThat(instream.read())
         .isEqualTo(-1);
     instream.close();
   }
@@ -222,7 +223,7 @@ public void testOpenFileUnknownOption() throws Throwable {
         getFileSystem().openFile(path("testOpenFileUnknownOption"))
         .opt("fs.test.something", true)
         .must("fs.test.something", true);
-    intercept(IllegalArgumentException.class,
+    assertThrows(IllegalArgumentException.class,
         () -> builder.build());
   }
 
@@ -233,7 +234,7 @@ public void testOpenFileUnknownOptionLong() throws 
Throwable {
         getFileSystem().openFile(path("testOpenFileUnknownOption"))
         .optLong("fs.test.something", 1L)
         .mustLong("fs.test.something2", 1L);
-    intercept(IllegalArgumentException.class,
+    assertThrows(IllegalArgumentException.class,
         () -> builder.build());
   }
 
@@ -243,7 +244,10 @@ public void testOpenFileLazyFail() throws Throwable {
     FutureDataInputStreamBuilder builder =
         getFileSystem().openFile(path("testOpenFileLazyFail"))
             .opt("fs.test.something", true);
-    interceptFuture(FileNotFoundException.class, "", builder.build());
+    assertThat(builder.build())
+        .failsWithin(Duration.ofSeconds(1))
+        .withThrowableOfType(ExecutionException.class)
+        .withCauseInstanceOf(FileNotFoundException.class);
   }
 
   @Test
@@ -252,7 +256,7 @@ public void testOpenFileFailExceptionally() throws 
Throwable {
     FutureDataInputStreamBuilder builder =
         getFileSystem().openFile(path("testOpenFileFailExceptionally"))
             .opt("fs.test.something", true);
-    Assertions.assertThat(builder.build().exceptionally(ex -> null).get())
+    assertThat(builder.build().exceptionally(ex -> null).get())
         .withFailMessage("exceptional uprating")
         .isNull();
   }
@@ -263,7 +267,7 @@ public void testAwaitFutureFailToFNFE() throws Throwable {
     FutureDataInputStreamBuilder builder =
         getFileSystem().openFile(path("testAwaitFutureFailToFNFE"))
             .opt("fs.test.something", true);
-    intercept(FileNotFoundException.class,
+    assertThrows(FileNotFoundException.class,
         () -> awaitFuture(builder.build()));
   }
 
@@ -273,7 +277,7 @@ public void testAwaitFutureTimeoutFailToFNFE() throws 
Throwable {
     FutureDataInputStreamBuilder builder =
         getFileSystem().openFile(path("testAwaitFutureFailToFNFE"))
             .opt("fs.test.something", true);
-    intercept(FileNotFoundException.class,
+    assertThrows(FileNotFoundException.class,
         () -> awaitFuture(builder.build(),
             10, TimeUnit.DAYS));
   }
@@ -282,12 +286,16 @@ public void testAwaitFutureTimeoutFailToFNFE() throws 
Throwable {
   public void testOpenFileExceptionallyTranslating() throws Throwable {
     describe("openFile missing file chains into exceptionally()");
     CompletableFuture<FSDataInputStream> f = getFileSystem()
-        .openFile(path("testOpenFileExceptionallyTranslating")).build();
-    interceptFuture(RuntimeException.class,
-        "exceptionally",
-        f.exceptionally(ex -> {
+        .openFile(path("testOpenFileExceptionallyTranslating")).build()
+        .exceptionally(ex -> {
           throw new RuntimeException("exceptionally", ex);
-        }));
+        });
+    assertThat(f)
+        .failsWithin(Duration.ofSeconds(1))
+        .withThrowableOfType(ExecutionException.class)
+        .havingCause()
+        .isInstanceOf(RuntimeException.class)
+        .withMessage("exceptionally");
   }
 
   @Test
@@ -297,12 +305,12 @@ public void testChainedFailureAwaitFuture() throws 
Throwable {
         .openFile(path("testChainedFailureAwaitFuture"))
         .withFileStatus(null)
         .build();
-    intercept(RuntimeException.class,
-        "exceptionally",
+    Exception e = assertThrows(RuntimeException.class,
         () -> awaitFuture(
             f.exceptionally(ex -> {
               throw new RuntimeException("exceptionally", ex);
             })));
+    assertThat(e).hasMessageContaining("exceptionally");
   }
 
   @Test
@@ -318,7 +326,7 @@ public void testOpenFileApplyRead() throws Throwable {
         .withFileStatus(st)
         .build()
         .thenApply(ContractTestUtils::readStream);
-    Assertions.assertThat((long) readAllBytes.get())
+    assertThat((long) readAllBytes.get())
         .withFailMessage("Wrong number of bytes read value")
         .isEqualTo(len);
     // now reattempt with a new FileStatus and a different path
@@ -334,7 +342,7 @@ public void testOpenFileApplyRead() throws Throwable {
         st.getOwner(),
         st.getGroup(),
         new Path("gopher:///localhost:/"; + path.getName()));
-    Assertions.assertThat((long) fs.openFile(path)
+    assertThat((long) fs.openFile(path)
             .withFileStatus(st2)
             .build()
             .thenApply(ContractTestUtils::readStream)
@@ -359,10 +367,10 @@ public void testOpenFileApplyAsyncRead() throws Throwable 
{
       accepted.set(true);
       return ContractTestUtils.readStream(stream);
     }).get();
-    Assertions.assertThat(accepted.get())
+    assertThat(accepted.get())
         .withFailMessage("async accept operation not invoked")
         .isTrue();
-    Assertions.assertThat(bytes)
+    assertThat(bytes)
         .describedAs("bytes read from stream")
         .isEqualTo(len);
   }
@@ -419,7 +427,7 @@ public void testFloatingPointLength() throws Throwable {
         .build()
         .thenApply(ContractTestUtils::readStream)
         .get();
-    Assertions.assertThat(l)
+    assertThat(l)
         .describedAs("bytes read from file %s", path)
         .isEqualTo(len);
   }
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractRootDirectoryTest.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractRootDirectoryTest.java
index e16340af2b6..b86e914937e 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractRootDirectoryTest.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/contract/AbstractContractRootDirectoryTest.java
@@ -31,7 +31,6 @@
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.List;
-import java.util.concurrent.Callable;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 import org.apache.hadoop.fs.FileStatus;
@@ -39,7 +38,7 @@
 import org.apache.hadoop.fs.LocatedFileStatus;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.fs.RemoteIterator;
-import org.apache.hadoop.test.LambdaTestUtils;
+import org.apache.ozone.test.GenericTestUtils;
 import org.assertj.core.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -98,11 +97,9 @@ public void testRmEmptyRootDirNonRecursive() throws 
Throwable {
     final FileSystem fs = getFileSystem();
     final AtomicInteger iterations = new AtomicInteger(0);
     final FileStatus[] originalChildren = listChildren(fs, root);
-    LambdaTestUtils.eventually(
-        OBJECTSTORE_RETRY_TIMEOUT,
-        new Callable<Void>() {
-          @Override
-          public Void call() throws Exception {
+    GenericTestUtils.waitFor(
+        () -> {
+          try {
             FileStatus[] deleted = deleteChildren(fs, root, true);
             FileStatus[] children = listChildren(fs, root);
             if (children.length > 0) {
@@ -114,10 +111,11 @@ public Void call() throws Exception {
                   dumpStats("deleted", deleted),
                   dumpStats("original", originalChildren)));
             }
-            return null;
+            return true;
+          } catch (IOException e) {
+            return false;
           }
-        },
-        new LambdaTestUtils.ProportionalRetryInterval(50, 1000));
+        }, 50, OBJECTSTORE_RETRY_TIMEOUT);
     // then try to delete the empty one
     boolean deleted = fs.delete(root, false);
     LOG.info("rm / of empty dir result is {}", deleted);
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/tools/contract/AbstractContractDistCpTest.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/tools/contract/AbstractContractDistCpTest.java
index e6cfc6e4674..35360004c9d 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/tools/contract/AbstractContractDistCpTest.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/tools/contract/AbstractContractDistCpTest.java
@@ -18,6 +18,7 @@
 package org.apache.hadoop.tools.contract;
 
 import static org.apache.hadoop.fs.contract.ContractTestUtils.createFile;
+import static org.apache.hadoop.fs.contract.ContractTestUtils.createSubdirs;
 import static org.apache.hadoop.fs.contract.ContractTestUtils.dataset;
 import static org.apache.hadoop.fs.contract.ContractTestUtils.skip;
 import static 
org.apache.hadoop.fs.contract.ContractTestUtils.verifyFileContents;
@@ -26,6 +27,7 @@
 import static org.apache.hadoop.tools.DistCpConstants.CONF_LABEL_DISTCP_JOB_ID;
 import static org.assertj.core.api.Assertions.assertThat;
 
+import java.io.File;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.Collections;
@@ -44,7 +46,6 @@
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.mapreduce.Counter;
 import org.apache.hadoop.mapreduce.Job;
-import org.apache.hadoop.test.GenericTestUtils;
 import org.apache.hadoop.tools.CopyListingFileStatus;
 import org.apache.hadoop.tools.DistCp;
 import org.apache.hadoop.tools.DistCpConstants;
@@ -53,10 +54,12 @@
 import org.apache.hadoop.tools.mapred.CopyMapper;
 import org.apache.hadoop.util.ToolRunner;
 import org.apache.hadoop.util.functional.RemoteIterators;
+import org.apache.ozone.test.GenericTestUtils;
 import org.assertj.core.api.Assertions;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -137,6 +140,9 @@ public abstract class AbstractContractDistCpTest
 
   private Path inputDirUnderOutputDir;
 
+  @TempDir
+  private File testDir;
+
   /**
    * The timeout value is extended over the default so that large updates
    * are allowed to take time, especially to remote stores.
@@ -168,8 +174,7 @@ public void setup() throws Exception {
     String className = getClass().getSimpleName();
     String testSubDir = className + "/" + getMethodName();
     localDir =
-        localFS.makeQualified(new Path(new Path(
-        GenericTestUtils.getTestDir().toURI()), testSubDir + "/local"));
+        localFS.makeQualified(new Path(new Path(testDir.toURI()), testSubDir + 
"/local"));
     localFS.delete(localDir, true);
     mkdirs(localFS, localDir);
     Path testSubPath = path(testSubDir);
@@ -703,8 +708,7 @@ public void testDistCpWithIterator() throws Exception {
     Path dest = new Path(localDir, "dest");
     dest = localFS.makeQualified(dest);
 
-    GenericTestUtils
-        .createFiles(remoteFS, source, getDepth(), getWidth(), getWidth());
+    createSubdirs(remoteFS, source, getDepth(), getWidth(), getWidth(), 0);
 
     GenericTestUtils.LogCapturer log =
         GenericTestUtils.LogCapturer.captureLogs(SimpleCopyListing.LOG);
diff --git a/pom.xml b/pom.xml
index ceab051c55c..7350d26f3a6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1961,10 +1961,6 @@
                       
<excludedSourceRoot>${project.build.directory}/generated-sources/java</excludedSourceRoot>
                       
<excludedSourceRoot>${project.build.directory}/generated-sources/protobuf/java</excludedSourceRoot>
                     </excludedSourceRoots>
-                    <exclusions>
-                      <exclusion>org.apache.hadoop.fs.contract.*</exclusion>
-                      <exclusion>org.apache.hadoop.tools.contract.*</exclusion>
-                    </exclusions>
                   </restrictImports>
                   <restrictImports>
                     <includeTestCode>true</includeTestCode>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to