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 d71904d2d4 HDDS-6152. Migrate TestOzoneFileSystem to JUnit5 (#5795)
d71904d2d4 is described below

commit d71904d2d40e226151c8a56e8555b7753fb40e3c
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Tue Dec 19 07:02:52 2023 +0100

    HDDS-6152. Migrate TestOzoneFileSystem to JUnit5 (#5795)
---
 .../dev-support/findbugsExcludeFile.xml            |   4 -
 ...ystem.java => AbstractOzoneFileSystemTest.java} | 302 ++++++++-------------
 ...ava => AbstractOzoneFileSystemTestWithFSO.java} | 168 ++++--------
 .../java/org/apache/hadoop/fs/ozone/TestO3FS.java  |  28 ++
 .../apache/hadoop/fs/ozone/TestO3FSWithFSO.java    |  27 ++
 .../hadoop/fs/ozone/TestO3FSWithFSOAndOMRatis.java |  27 ++
 .../hadoop/fs/ozone/TestO3FSWithFSPaths.java       |  28 ++
 .../fs/ozone/TestO3FSWithFSPathsAndOMRatis.java    |  28 ++
 .../hadoop/fs/ozone/TestO3FSWithOMRatis.java       |  28 ++
 9 files changed, 337 insertions(+), 303 deletions(-)

diff --git a/hadoop-ozone/integration-test/dev-support/findbugsExcludeFile.xml 
b/hadoop-ozone/integration-test/dev-support/findbugsExcludeFile.xml
index 098d27980c..99ca98f85e 100644
--- a/hadoop-ozone/integration-test/dev-support/findbugsExcludeFile.xml
+++ b/hadoop-ozone/integration-test/dev-support/findbugsExcludeFile.xml
@@ -125,10 +125,6 @@
     <Class name="org.apache.hadoop.fs.ozone.TestRootedOzoneFileSystem"/>
     <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD" />
   </Match>
-  <Match>
-    <Class name="org.apache.hadoop.fs.ozone.TestOzoneFileSystem"/>
-    <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD" />
-  </Match>
   <Match>
     <Class name="org.apache.hadoop.fs.ozone.TestOzoneFileSystemMissingParent"/>
     <Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD" />
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFileSystem.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractOzoneFileSystemTest.java
similarity index 87%
rename from 
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFileSystem.java
rename to 
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractOzoneFileSystemTest.java
index b5d8370483..ba55b2afcf 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFileSystem.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractOzoneFileSystemTest.java
@@ -64,15 +64,11 @@ import 
org.apache.hadoop.ozone.om.protocol.OzoneManagerProtocol;
 import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.ozone.test.GenericTestUtils;
 import org.apache.ozone.test.TestClock;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestRule;
-import org.junit.rules.Timeout;
-import org.apache.ozone.test.JUnit5AwareTimeout;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.event.Level;
@@ -106,20 +102,20 @@ import static 
org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_FS_ITERATE_BATCH_SIZ
 import static org.apache.hadoop.ozone.OzoneConsts.OM_KEY_PREFIX;
 import static org.apache.hadoop.ozone.OzoneConsts.OZONE_URI_DELIMITER;
 import static 
org.apache.hadoop.ozone.om.helpers.BucketLayout.FILE_SYSTEM_OPTIMIZED;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThrows;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-import static org.junit.Assume.assumeFalse;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
+import static org.junit.jupiter.api.Assumptions.assumeFalse;
 
 /**
  * Ozone file system tests that are not covered by contract tests.
  */
-@RunWith(Parameterized.class)
-public class TestOzoneFileSystem {
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+abstract class AbstractOzoneFileSystemTest {
 
   private static final float TRASH_INTERVAL = 0.05f; // 3 seconds
 
@@ -132,58 +128,31 @@ public class TestOzoneFileSystem {
   private static final PathFilter EXCLUDE_TRASH =
       p -> !p.toUri().getPath().startsWith(TRASH_ROOT.toString());
 
-  @Parameterized.Parameters
-  public static Collection<Object[]> data() {
-    return Arrays.asList(
-        new Object[]{true, true},
-        new Object[]{true, false},
-        new Object[]{false, true},
-        new Object[]{false, false});
-  }
-
-  public TestOzoneFileSystem(boolean setDefaultFs, boolean enableOMRatis) {
-    // Checking whether 'defaultFS' and 'omRatis' flags represents next
-    // parameter index values. This is to ensure that initialize
-    // TestOzoneFileSystem#init() function will be invoked only at the
-    // beginning of every new set of Parameterized.Parameters.
-    if (enabledFileSystemPaths != setDefaultFs ||
-            omRatisEnabled != enableOMRatis || cluster == null) {
-      enabledFileSystemPaths = setDefaultFs;
-      omRatisEnabled = enableOMRatis;
-      try {
-        teardown();
-        init();
-      } catch (Exception e) {
-        LOG.info("Unexpected exception", e);
-        fail("Unexpected exception:" + e.getMessage());
-      }
-    }
+  AbstractOzoneFileSystemTest(boolean setDefaultFs, boolean enableOMRatis, 
BucketLayout layout) {
+    enabledFileSystemPaths = setDefaultFs;
+    omRatisEnabled = enableOMRatis;
+    bucketLayout = layout;
   }
 
-  /**
-   * Set a timeout for each test.
-   */
-  @Rule
-  public TestRule timeout = new JUnit5AwareTimeout(Timeout.seconds(600));
-
   private static final Logger LOG =
-      LoggerFactory.getLogger(TestOzoneFileSystem.class);
-
-  private static BucketLayout bucketLayout = BucketLayout.LEGACY;
-  private static boolean enabledFileSystemPaths;
-  private static boolean omRatisEnabled;
-
-  private static MiniOzoneCluster cluster;
-  private static OzoneClient client;
-  private static OzoneManagerProtocol writeClient;
-  private static FileSystem fs;
-  private static OzoneFileSystem o3fs;
-  private static OzoneBucket ozoneBucket;
-  private static String volumeName;
-  private static String bucketName;
-  private static Trash trash;
-
-  private void init() throws Exception {
+      LoggerFactory.getLogger(AbstractOzoneFileSystemTest.class);
+
+  private final BucketLayout bucketLayout;
+  private final boolean enabledFileSystemPaths;
+  private final boolean omRatisEnabled;
+
+  private MiniOzoneCluster cluster;
+  private OzoneClient client;
+  private OzoneManagerProtocol writeClient;
+  private FileSystem fs;
+  private OzoneFileSystem o3fs;
+  private OzoneBucket ozoneBucket;
+  private String volumeName;
+  private String bucketName;
+  private Trash trash;
+
+  @BeforeAll
+  void init() throws Exception {
     OzoneConfiguration conf = new OzoneConfiguration();
     conf.setFloat(OMConfigKeys.OZONE_FS_TRASH_INTERVAL_KEY, TRASH_INTERVAL);
     conf.setFloat(FS_TRASH_INTERVAL_KEY, TRASH_INTERVAL);
@@ -224,8 +193,8 @@ public class TestOzoneFileSystem {
     o3fs = (OzoneFileSystem) fs;
   }
 
-  @AfterClass
-  public static void teardown() {
+  @AfterAll
+  void teardown() {
     IOUtils.closeQuietly(client);
     if (cluster != null) {
       cluster.shutdown();
@@ -233,7 +202,7 @@ public class TestOzoneFileSystem {
     IOUtils.closeQuietly(fs);
   }
 
-  @After
+  @AfterEach
   public void cleanup() {
     try {
       deleteRootDir();
@@ -243,28 +212,24 @@ public class TestOzoneFileSystem {
     }
   }
 
-  public static MiniOzoneCluster getCluster() {
+  public MiniOzoneCluster getCluster() {
     return cluster;
   }
 
-  public static FileSystem getFs() {
+  public FileSystem getFs() {
     return fs;
   }
 
-  public static void setBucketLayout(BucketLayout bLayout) {
-    bucketLayout = bLayout;
-  }
-
-  public static String getBucketName() {
+  public String getBucketName() {
     return bucketName;
   }
 
-  public static String getVolumeName() {
+  public String getVolumeName() {
     return volumeName;
   }
 
   public BucketLayout getBucketLayout() {
-    return BucketLayout.DEFAULT;
+    return bucketLayout;
   }
 
   @Test
@@ -284,7 +249,7 @@ public class TestOzoneFileSystem {
     Path parent = new Path("/d1/d2/d3/d4/");
     Path file1 = new Path(parent, "key1");
     try (FSDataOutputStream outputStream = fs.create(file1, false)) {
-      assertNotNull("Should be able to create file", outputStream);
+      assertNotNull(outputStream, "Should be able to create file");
     }
 
     Path dir1 = new Path("/d1/d2/d3/d4/key2");
@@ -297,7 +262,7 @@ public class TestOzoneFileSystem {
 
     Path file2 = new Path("/d1/d2/d3/d4/key3");
     try (FSDataOutputStream outputStream2 = fs.create(file2, false)) {
-      assertNotNull("Should be able to create file", outputStream2);
+      assertNotNull(outputStream2, "Should be able to create file");
     }
     try {
       fs.mkdirs(file2);
@@ -316,10 +281,8 @@ public class TestOzoneFileSystem {
 
     // Directory
     FileStatus fileStatus = fs.getFileStatus(parent);
-    assertEquals("FileStatus did not return the directory",
-            "/d1/d2/d3/d4", fileStatus.getPath().toUri().getPath());
-    assertTrue("FileStatus did not return the directory",
-            fileStatus.isDirectory());
+    assertEquals("/d1/d2/d3/d4", fileStatus.getPath().toUri().getPath());
+    assertTrue(fileStatus.isDirectory());
 
     // invalid sub directory
     try {
@@ -351,12 +314,12 @@ public class TestOzoneFileSystem {
     Path parent = new Path("/d1/d2/d3/d4/");
     Path file1 = new Path(parent, "key1");
     try (FSDataOutputStream outputStream = fs.create(file1, false)) {
-      assertNotNull("Should be able to create file", outputStream);
+      assertNotNull(outputStream, "Should be able to create file");
     }
 
     Path subdir = new Path("/d1/d2/");
     boolean status = fs.mkdirs(subdir);
-    assertTrue("Shouldn't send error if dir exists", status);
+    assertTrue(status, "Shouldn't send error if dir exists");
   }
 
   @Test
@@ -412,9 +375,8 @@ public class TestOzoneFileSystem {
   public void testOzoneFsServiceLoader() throws IOException {
     assumeFalse(FILE_SYSTEM_OPTIMIZED.equals(getBucketLayout()));
 
-    assertEquals(
-        FileSystem.getFileSystemClass(OzoneConsts.OZONE_URI_SCHEME, null),
-        OzoneFileSystem.class);
+    assertEquals(OzoneFileSystem.class,
+        FileSystem.getFileSystemClass(OzoneConsts.OZONE_URI_SCHEME, null));
   }
 
   @Test
@@ -435,10 +397,8 @@ public class TestOzoneFileSystem {
     }
 
     // List status on the parent should show the child file
-    assertEquals("List status of parent should include the 1 child file", 1L,
-        fs.listStatus(parent).length);
-    assertTrue("Parent directory does not appear to be a directory",
-        fs.getFileStatus(parent).isDirectory());
+    assertEquals(1L, fs.listStatus(parent).length, "List status of parent 
should include the 1 child file");
+    assertTrue(fs.getFileStatus(parent).isDirectory(), "Parent directory does 
not appear to be a directory");
   }
 
   @Test
@@ -601,22 +561,19 @@ public class TestOzoneFileSystem {
     Path file2 = new Path(parent, "key2");
 
     FileStatus[] fileStatuses = o3fs.listStatus(ROOT, EXCLUDE_TRASH);
-    assertEquals("Should be empty", 0, fileStatuses.length);
+    assertEquals(0, fileStatuses.length, "Should be empty");
 
     ContractTestUtils.touch(fs, file1);
     ContractTestUtils.touch(fs, file2);
 
     fileStatuses = o3fs.listStatus(ROOT, EXCLUDE_TRASH);
-    assertEquals("Should have created parent",
-            1, fileStatuses.length);
-    assertEquals("Parent path doesn't match",
-            fileStatuses[0].getPath().toUri().getPath(), parent.toString());
+    assertEquals(1, fileStatuses.length, "Should have created parent");
+    assertEquals(fileStatuses[0].getPath().toUri().getPath(), 
parent.toString(), "Parent path doesn't match");
 
     // ListStatus on a directory should return all subdirs along with
     // files, even if there exists a file and sub-dir with the same name.
     fileStatuses = o3fs.listStatus(parent);
-    assertEquals("FileStatus did not return all children of the directory",
-        2, fileStatuses.length);
+    assertEquals(2, fileStatuses.length, "FileStatus did not return all 
children of the directory");
 
     // ListStatus should return only the immediate children of a directory.
     Path file3 = new Path(parent, "dir1/key3");
@@ -624,8 +581,7 @@ public class TestOzoneFileSystem {
     ContractTestUtils.touch(fs, file3);
     ContractTestUtils.touch(fs, file4);
     fileStatuses = o3fs.listStatus(parent);
-    assertEquals("FileStatus did not return all children of the directory",
-        3, fileStatuses.length);
+    assertEquals(3, fileStatuses.length, "FileStatus did not return all 
children of the directory");
   }
 
   @Test
@@ -661,7 +617,7 @@ public class TestOzoneFileSystem {
     FileStatus[] fileStatuses = fs.listStatus(ROOT, EXCLUDE_TRASH);
 
     // the number of immediate children of root is 1
-    assertEquals(Arrays.toString(fileStatuses), 1, fileStatuses.length);
+    assertEquals(1, fileStatuses.length, Arrays.toString(fileStatuses));
     writeClient.deleteKey(keyArgs);
   }
 
@@ -694,8 +650,7 @@ public class TestOzoneFileSystem {
     FileStatus[] fileStatuses = fs.listStatus(ROOT, EXCLUDE_TRASH);
     // the number of immediate children of root is 1
     assertEquals(1, fileStatuses.length);
-    assertEquals(fileStatuses[0].isErasureCoded(),
-            !bucketLayout.isFileSystemOptimized());
+    assertEquals(fileStatuses[0].isErasureCoded(), 
!bucketLayout.isFileSystemOptimized());
     fileStatuses = fs.listStatus(new Path(
             fileStatuses[0].getPath().toString() + "/object-name1"));
     assertEquals(1, fileStatuses.length);
@@ -718,8 +673,7 @@ public class TestOzoneFileSystem {
     // exist) and dir2 only. dir12 is not an immediate child of root and
     // hence should not be listed.
     FileStatus[] fileStatuses = o3fs.listStatus(ROOT, EXCLUDE_TRASH);
-    assertEquals("FileStatus should return only the immediate children",
-        2, fileStatuses.length);
+    assertEquals(2, fileStatuses.length, "FileStatus should return only the 
immediate children");
 
     // Verify that dir12 is not included in the result of the listStatus on 
root
     String fileStatus1 = fileStatuses[0].getPath().toUri().getPath();
@@ -767,9 +721,7 @@ public class TestOzoneFileSystem {
         LOG.info("actualPathList: {}", actualPathList);
       }
     }
-    assertEquals(
-        "Total directories listed do not match the existing directories",
-        numDirs, fileStatuses.length);
+    assertEquals(numDirs, fileStatuses.length, "Total directories listed do 
not match the existing directories");
 
     for (int i = 0; i < numDirs; i++) {
       assertTrue(paths.contains(fileStatuses[i].getPath().getName()));
@@ -802,8 +754,7 @@ public class TestOzoneFileSystem {
 
     fileStatuses = fs.listStatus(new Path("/dir1/dir2"));
     assertEquals(1, fileStatuses.length);
-    assertEquals("/dir1/dir2/key1",
-        fileStatuses[0].getPath().toUri().getPath());
+    assertEquals("/dir1/dir2/key1", 
fileStatuses[0].getPath().toUri().getPath());
     assertTrue(fileStatuses[0].isFile());
   }
 
@@ -824,11 +775,11 @@ public class TestOzoneFileSystem {
       for (FileStatus fileStatus : fileStatuses) {
         LOG.error("Unexpected file, should have been deleted: {}", fileStatus);
       }
-      assertEquals("Delete root failed!", 0, fileStatuses.length);
+      assertEquals(0, fileStatuses.length, "Delete root failed!");
     }
   }
 
-  private static void deleteRootRecursively(FileStatus[] fileStatuses)
+  private void deleteRootRecursively(FileStatus[] fileStatuses)
       throws IOException {
     for (FileStatus fStatus : fileStatuses) {
       fs.delete(fStatus.getPath(), true);
@@ -861,8 +812,7 @@ public class TestOzoneFileSystem {
     fs.mkdirs(dir2);
 
     FileStatus[] fileStatuses = o3fs.listStatus(dir1);
-    assertEquals("FileStatus should return only the immediate children", 2,
-        fileStatuses.length);
+    assertEquals(2, fileStatuses.length, "FileStatus should return only the 
immediate children");
 
     // Verify that the two children of /dir1 returned by listStatus operation
     // are /dir1/dir11 and /dir1/dir12.
@@ -894,8 +844,7 @@ public class TestOzoneFileSystem {
       while (it.hasNext()) {
         FileStatus fileStatus = it.next();
         assertNotNull(fileStatus);
-        assertEquals("Parent path doesn't match",
-            fileStatus.getPath().toUri().getPath(), parent.toString());
+        assertEquals(fileStatus.getPath().toUri().getPath(), 
parent.toString(), "Parent path doesn't match");
       }
       // Iterator on a directory should return all subdirs along with
       // files, even if there exists a file and sub-dir with the same name.
@@ -906,9 +855,7 @@ public class TestOzoneFileSystem {
         FileStatus fileStatus = it.next();
         assertNotNull(fileStatus);
       }
-      assertEquals(
-          "Iterator did not return all the file status",
-          2, iCount);
+      assertEquals(2, iCount, "Iterator did not return all the file status");
       // Iterator should return file status for only the
       // immediate children of a directory.
       Path file3 = new Path(parent, "dir1/key3");
@@ -923,8 +870,8 @@ public class TestOzoneFileSystem {
         FileStatus fileStatus = it.next();
         assertNotNull(fileStatus);
       }
-      assertEquals("Iterator did not return file status " +
-          "of all the children of the directory", 3, iCount);
+      assertEquals(3, iCount, "Iterator did not return file status " +
+          "of all the children of the directory");
 
     } finally {
       // Cleanup
@@ -955,11 +902,9 @@ public class TestOzoneFileSystem {
         assertNotNull(fileStatus);
         // Verify that dir12 is not included in the result
         // of the listStatusIterator on root.
-        assertNotEquals(fileStatus.getPath().toUri().getPath(),
-            dir12.toString());
+        assertNotEquals(fileStatus.getPath().toUri().getPath(), 
dir12.toString());
       }
-      assertEquals("FileStatus should return only the immediate children",
-          2, iCount);
+      assertEquals(2, iCount, "FileStatus should return only the immediate 
children");
     } finally {
       // Cleanup
       fs.delete(dir2, true);
@@ -1010,8 +955,7 @@ public class TestOzoneFileSystem {
             equals(dir11.toString()) || fileStatus.getPath().toUri().getPath()
             .equals(dir12.toString()));
       }
-      assertEquals("FileStatus should return only the immediate children", 2,
-          iCount);
+      assertEquals(2, iCount, "FileStatus should return only the immediate 
children");
     } finally {
       // Cleanup
       fs.delete(dir2, true);
@@ -1035,8 +979,7 @@ public class TestOzoneFileSystem {
       fs.open(fileNotExists);
       fail("Should throw FileNotFoundException as file doesn't exist!");
     } catch (FileNotFoundException fnfe) {
-      assertTrue("Expected KEY_NOT_FOUND error",
-              fnfe.getMessage().contains("KEY_NOT_FOUND"));
+      assertTrue(fnfe.getMessage().contains("KEY_NOT_FOUND"), "Expected 
KEY_NOT_FOUND error");
     }
   }
 
@@ -1059,14 +1002,12 @@ public class TestOzoneFileSystem {
       FileStatus fileStatus = fs.getFileStatus(file);
       long blkSize = fileStatus.getBlockSize();
       long fileLength = fileStatus.getLen();
-      assertTrue("Block allocation should happen",
-              fileLength > blkSize);
+      assertTrue(fileLength > blkSize, "Block allocation should happen");
 
       long newNumBlockAllocations =
               cluster.getOzoneManager().getMetrics().getNumBlockAllocates();
 
-      assertTrue("Block allocation should happen",
-              (newNumBlockAllocations > numBlockAllocationsOrg));
+      assertTrue((newNumBlockAllocations > numBlockAllocationsOrg), "Block 
allocation should happen");
 
       stream.seek(fileLength);
       assertEquals(-1, stream.read());
@@ -1097,11 +1038,10 @@ public class TestOzoneFileSystem {
     // after rename listStatus for interimPath should succeed and
     // interimPath should have no children
     FileStatus[] statuses = fs.listStatus(interimPath);
-    assertNotNull("liststatus returns a null array", statuses);
-    assertEquals("Statuses array is not empty", 0, statuses.length);
+    assertNotNull(statuses, "liststatus returns a null array");
+    assertEquals(0, statuses.length, "Statuses array is not empty");
     FileStatus fileStatus = fs.getFileStatus(interimPath);
-    assertEquals("FileStatus does not point to interimPath",
-        interimPath.getName(), fileStatus.getPath().getName());
+    assertEquals(interimPath.getName(), fileStatus.getPath().getName(), 
"FileStatus does not point to interimPath");
   }
 
   /**
@@ -1120,8 +1060,7 @@ public class TestOzoneFileSystem {
     LOG.info("Created destin dir: {}", destin);
 
     LOG.info("Rename op-> source:{} to destin:{}}", source, destin);
-    assertFalse("Expected to fail rename as src doesn't exist",
-            fs.rename(source, destin));
+    assertFalse(fs.rename(source, destin), "Expected to fail rename as src 
doesn't exist");
   }
 
   /**
@@ -1188,12 +1127,12 @@ public class TestOzoneFileSystem {
     fs.mkdirs(acPath);
 
     // Rename from /a to /b.
-    assertTrue("Rename failed", fs.rename(aSourcePath, bDestinPath));
+    assertTrue(fs.rename(aSourcePath, bDestinPath), "Rename failed");
 
     final Path baPath = new Path(fs.getUri().toString() + "/b/a");
     final Path bacPath = new Path(fs.getUri().toString() + "/b/a/c");
-    assertTrue("Rename failed", fs.exists(baPath));
-    assertTrue("Rename failed", fs.exists(bacPath));
+    assertTrue(fs.exists(baPath), "Rename failed");
+    assertTrue(fs.exists(bacPath), "Rename failed");
   }
 
   /**
@@ -1219,8 +1158,7 @@ public class TestOzoneFileSystem {
     final Path baPath = new Path(fs.getUri().toString() + "/b/a/c");
     fs.mkdirs(baPath);
 
-    assertFalse("New destin sub-path /b/a already exists",
-            fs.rename(aSourcePath, bDestinPath));
+    assertFalse(fs.rename(aSourcePath, bDestinPath), "New destin sub-path /b/a 
already exists");
 
     // Case-5.b) Rename file from /a/b/c/file1 to /a.
     // Should be failed since /a/file1 exists.
@@ -1234,8 +1172,7 @@ public class TestOzoneFileSystem {
 
     final Path aDestinPath = new Path(fs.getUri().toString() + "/a");
 
-    assertFalse("New destin sub-path /b/a already exists",
-            fs.rename(abcFile1, aDestinPath));
+    assertFalse(fs.rename(abcFile1, aDestinPath), "New destin sub-path /b/a 
already exists");
   }
 
   /**
@@ -1251,8 +1188,7 @@ public class TestOzoneFileSystem {
     ContractTestUtils.touch(fs, file1Destin);
     Path abcRootPath = new Path(fs.getUri().toString() + "/a/b/c");
     fs.mkdirs(abcRootPath);
-    assertFalse("key already exists /root_dir/file1",
-            fs.rename(abcRootPath, file1Destin));
+    assertFalse(fs.rename(abcRootPath, file1Destin), "key already exists 
/root_dir/file1");
   }
 
   /**
@@ -1268,8 +1204,8 @@ public class TestOzoneFileSystem {
             + "/file1_Copy");
     ContractTestUtils.touch(fs, file1Source);
     Path file1Destin = new Path(fs.getUri().toString() + root + "/file1");
-    assertTrue("Renamed failed", fs.rename(file1Source, file1Destin));
-    assertTrue("Renamed failed: /root/file1", fs.exists(file1Destin));
+    assertTrue(fs.rename(file1Source, file1Destin), "Renamed failed");
+    assertTrue(fs.exists(file1Destin), "Renamed failed: /root/file1");
 
     /**
      * Reading several times, this is to verify that OmKeyInfo#keyName cached
@@ -1278,8 +1214,8 @@ public class TestOzoneFileSystem {
      */
     for (int i = 0; i < 10; i++) {
       FileStatus[] fStatus = fs.listStatus(rootPath);
-      assertEquals("Renamed failed", 1, fStatus.length);
-      assertEquals("Wrong path name!", file1Destin, fStatus[0].getPath());
+      assertEquals(1, fStatus.length, "Renamed failed");
+      assertEquals(file1Destin, fStatus[0].getPath(), "Wrong path name!");
     }
   }
 
@@ -1296,9 +1232,9 @@ public class TestOzoneFileSystem {
     ContractTestUtils.touch(fs, file1Destin);
     Path abcRootPath = new Path(fs.getUri().toString() + "/a/b/c");
     fs.mkdirs(abcRootPath);
-    assertTrue("Renamed failed", fs.rename(file1Destin, abcRootPath));
-    assertTrue("Renamed filed: /a/b/c/file1", fs.exists(new Path(abcRootPath,
-            "file1")));
+    assertTrue(fs.rename(file1Destin, abcRootPath), "Renamed failed");
+    assertTrue(fs.exists(new Path(abcRootPath,
+            "file1")), "Renamed filed: /a/b/c/file1");
   }
 
   @Test
@@ -1374,18 +1310,16 @@ public class TestOzoneFileSystem {
     ContractTestUtils.touch(fs, file1Source);
 
     // rename source directory to its parent directory(destination).
-    assertTrue("Rename failed", fs.rename(dir2SourcePath, destRootPath));
+    assertTrue(fs.rename(dir2SourcePath, destRootPath), "Rename failed");
     final Path expectedPathAfterRename =
             new Path(fs.getUri().toString() + root + "/dir2");
-    assertTrue("Rename failed",
-            fs.exists(expectedPathAfterRename));
+    assertTrue(fs.exists(expectedPathAfterRename), "Rename failed");
 
     // rename source file to its parent directory(destination).
-    assertTrue("Rename failed", fs.rename(file1Source, destRootPath));
+    assertTrue(fs.rename(file1Source, destRootPath), "Rename failed");
     final Path expectedFilePathAfterRename =
             new Path(fs.getUri().toString() + root + "/file2");
-    assertTrue("Rename failed",
-            fs.exists(expectedFilePathAfterRename));
+    assertTrue(fs.exists(expectedFilePathAfterRename), "Rename failed");
   }
 
   @Test
@@ -1399,11 +1333,10 @@ public class TestOzoneFileSystem {
     LOG.info("Created dir {}", subdir);
     LOG.info("Will move {} to {}", source, dest);
     fs.rename(source, dest);
-    assertTrue("Directory rename failed", fs.exists(dest));
+    assertTrue(fs.exists(dest), "Directory rename failed");
     // Verify that the subdir is also renamed i.e. keys corresponding to the
     // sub-directories of the renamed directory have also been renamed.
-    assertTrue("Keys under the renamed directory not renamed",
-        fs.exists(new Path(dest, "sub_dir1")));
+    assertTrue(fs.exists(new Path(dest, "sub_dir1")), "Keys under the renamed 
directory not renamed");
 
     // Test if one path belongs to other FileSystem.
     IllegalArgumentException exception = assertThrows(
@@ -1440,8 +1373,7 @@ public class TestOzoneFileSystem {
     FileStatus[] fileStatuses = o3fs.listStatus(mdir11);
     // Above listStatus result should only have one entry: mdir111
     assertEquals(1, fileStatuses.length);
-    assertEquals(mdir111.toString(),
-        fileStatuses[0].getPath().toUri().getPath());
+    assertEquals(mdir111.toString(), 
fileStatuses[0].getPath().toUri().getPath());
     assertTrue(fileStatuses[0].isDirectory());
     // The dir key is actually created on server,
     // so modification time should always be the same value.
@@ -1457,8 +1389,7 @@ public class TestOzoneFileSystem {
     fileStatuses = o3fs.listStatus(mdir1);
     // Above listStatus result should only have one entry: mdir11
     assertEquals(1, fileStatuses.length);
-    assertEquals(mdir11.toString(),
-        fileStatuses[0].getPath().toUri().getPath());
+    assertEquals(mdir11.toString(), 
fileStatuses[0].getPath().toUri().getPath());
     assertTrue(fileStatuses[0].isDirectory());
     // Since the dir key doesn't exist on server, the modification time is
     // set to current time upon every listStatus request.
@@ -1538,9 +1469,8 @@ public class TestOzoneFileSystem {
       OzoneFileSystem o3FS, Path keyPath, ReplicationType expectedType)
       throws IOException {
     o3FS.createFile(keyPath).build().close();
-    assertEquals(expectedType.name(),
-        bucket.getKey(o3FS.pathToKey(keyPath)).getReplicationConfig()
-            .getReplicationType().name());
+    assertEquals(expectedType.name(), 
bucket.getKey(o3FS.pathToKey(keyPath)).getReplicationConfig()
+        .getReplicationType().name());
   }
 
   @Test
@@ -1554,8 +1484,7 @@ public class TestOzoneFileSystem {
     fs.mkdirs(userTrash);
     res = o3fs.getTrashRoots(false);
     assertEquals(1, res.size());
-    res.forEach(e -> assertEquals(
-        userTrash.toString(), e.getPath().toUri().getPath()));
+    res.forEach(e -> assertEquals(userTrash.toString(), 
e.getPath().toUri().getPath()));
     // Only have one user trash for now
     res = o3fs.getTrashRoots(true);
     assertEquals(1, res.size());
@@ -1572,8 +1501,7 @@ public class TestOzoneFileSystem {
     // allUsers = false should still return current user trash
     res = o3fs.getTrashRoots(false);
     assertEquals(1, res.size());
-    res.forEach(e -> assertEquals(
-        userTrash.toString(), e.getPath().toUri().getPath()));
+    res.forEach(e -> assertEquals(userTrash.toString(), 
e.getPath().toUri().getPath()));
     // allUsers = true should return all user trash
     res = o3fs.getTrashRoots(true);
     assertEquals(6, res.size());
@@ -1663,8 +1591,7 @@ public class TestOzoneFileSystem {
           cluster.getOzoneManager().getKeyManager());
       fail("Non-existent key name!");
     } catch (OMException ome) {
-      assertEquals(OMException.ResultCodes.KEY_NOT_FOUND,
-          ome.getResult());
+      assertEquals(OMException.ResultCodes.KEY_NOT_FOUND, ome.getResult());
     }
 
     OzonePrefixPathImpl ozonePrefixPath =
@@ -1678,7 +1605,7 @@ public class TestOzoneFileSystem {
 
     Iterator<? extends OzoneFileStatus> pathItr =
         ozonePrefixPath.getChildren(keyName);
-    assertTrue("Failed to list keyPath:" + keyName, pathItr.hasNext());
+    assertTrue(pathItr.hasNext(), "Failed to list keyPath:" + keyName);
 
     Set<String> actualPaths = new TreeSet<>();
     while (pathItr.hasNext()) {
@@ -1689,17 +1616,15 @@ public class TestOzoneFileSystem {
       Iterator<? extends OzoneFileStatus> subPathItr =
           ozonePrefixPath.getChildren(pathname);
       assertNotNull(subPathItr);
-      assertFalse("Failed to list keyPath: " + pathname,
-          subPathItr.hasNext());
+      assertFalse(subPathItr.hasNext(), "Failed to list keyPath: " + pathname);
     }
 
-    assertEquals("ListStatus failed", paths.size(),
-        actualPaths.size());
+    assertEquals(paths.size(), actualPaths.size(), "ListStatus failed");
 
     for (String pathname : actualPaths) {
       paths.remove(pathname);
     }
-    assertTrue("ListStatus failed:" + paths, paths.isEmpty());
+    assertTrue(paths.isEmpty(), "ListStatus failed:" + paths);
   }
 
   @Test
@@ -1760,8 +1685,7 @@ public class TestOzoneFileSystem {
       fail("Should throw Exception due to loop in Link Buckets");
     } catch (OMException oe) {
       // Expected exception
-      assertEquals(OMException.ResultCodes.DETECTED_LOOP_IN_BUCKET_LINKS,
-          oe.getResult());
+      assertEquals(OMException.ResultCodes.DETECTED_LOOP_IN_BUCKET_LINKS, 
oe.getResult());
     } finally {
       volume.deleteBucket(linkBucket1Name);
       volume.deleteBucket(linkBucket2Name);
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFileSystemWithFSO.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractOzoneFileSystemTestWithFSO.java
similarity index 80%
rename from 
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFileSystemWithFSO.java
rename to 
hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractOzoneFileSystemTestWithFSO.java
index d2d2fd6b81..2d4c310c88 100644
--- 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestOzoneFileSystemWithFSO.java
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/AbstractOzoneFileSystemTestWithFSO.java
@@ -33,61 +33,41 @@ import org.apache.hadoop.ozone.om.helpers.OmBucketInfo;
 import org.apache.hadoop.ozone.om.helpers.OmDirectoryInfo;
 import org.apache.hadoop.ozone.om.helpers.OmKeyInfo;
 import org.apache.ozone.test.GenericTestUtils;
-import org.junit.After;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.MethodOrderer;
+import org.junit.jupiter.api.Order;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.api.TestMethodOrder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThrows;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
 /**
  * Ozone file system tests that are not covered by contract tests,
  * - prefix layout.
  *
  */
-@RunWith(Parameterized.class)
-public class TestOzoneFileSystemWithFSO extends TestOzoneFileSystem {
-
-  @Parameterized.Parameters
-  public static Collection<Object[]> data() {
-    return Arrays.asList(
-            new Object[]{true, true},
-            new Object[]{true, false});
-  }
-
-  @BeforeClass
-  public static void init() {
-    setBucketLayout(BucketLayout.FILE_SYSTEM_OPTIMIZED);
-  }
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
+abstract class AbstractOzoneFileSystemTestWithFSO extends 
AbstractOzoneFileSystemTest {
 
-  public TestOzoneFileSystemWithFSO(boolean setDefaultFs,
-      boolean enableOMRatis) {
-    super(setDefaultFs, enableOMRatis);
-  }
+  private static final Logger LOG =
+      LoggerFactory.getLogger(AbstractOzoneFileSystemTestWithFSO.class);
 
-  @After
-  @Override
-  public void cleanup() {
-    super.cleanup();
+  AbstractOzoneFileSystemTestWithFSO(boolean enableOMRatis) {
+    super(true, enableOMRatis, BucketLayout.FILE_SYSTEM_OPTIMIZED);
   }
 
-  private static final Logger LOG =
-      LoggerFactory.getLogger(TestOzoneFileSystemWithFSO.class);
-
   @Test
   public void testListStatusWithoutRecursiveSearch() throws Exception {
     /*
@@ -102,32 +82,27 @@ public class TestOzoneFileSystemWithFSO extends 
TestOzoneFileSystem {
     Path key1 = new Path("/key1");
     try (FSDataOutputStream outputStream = getFs().create(key1,
             false)) {
-      assertNotNull("Should be able to create file: key1",
-              outputStream);
+      assertNotNull(outputStream, "Should be able to create file: key1");
     }
     Path d1 = new Path("/d1");
     Path dir1Key1 = new Path(d1, "key1");
     try (FSDataOutputStream outputStream = getFs().create(dir1Key1, false)) {
-      assertNotNull("Should be able to create file: " + dir1Key1,
-              outputStream);
+      assertNotNull(outputStream, "Should be able to create file: " + 
dir1Key1);
     }
     Path d2 = new Path("/d2");
     Path dir2Key1 = new Path(d2, "key1");
     try (FSDataOutputStream outputStream = getFs().create(dir2Key1, false)) {
-      assertNotNull("Should be able to create file: " + dir2Key1,
-              outputStream);
+      assertNotNull(outputStream, "Should be able to create file: " + 
dir2Key1);
     }
     Path dir1Dir2 = new Path("/d1/d2/");
     Path dir1Dir2Key1 = new Path(dir1Dir2, "key1");
     try (FSDataOutputStream outputStream = getFs().create(dir1Dir2Key1,
             false)) {
-      assertNotNull("Should be able to create file: " + dir1Dir2Key1,
-              outputStream);
+      assertNotNull(outputStream, "Should be able to create file: " + 
dir1Dir2Key1);
     }
     Path d1Key2 = new Path(d1, "key2");
     try (FSDataOutputStream outputStream = getFs().create(d1Key2, false)) {
-      assertNotNull("Should be able to create file: " + d1Key2,
-              outputStream);
+      assertNotNull(outputStream, "Should be able to create file: " + d1Key2);
     }
 
     Path dir1Dir3 = new Path("/d1/d3/");
@@ -141,8 +116,7 @@ public class TestOzoneFileSystemWithFSO extends 
TestOzoneFileSystem {
 
     // Root Directory
     FileStatus[] fileStatusList = getFs().listStatus(new Path("/"));
-    assertEquals("FileStatus should return files and directories",
-            3, fileStatusList.length);
+    assertEquals(3, fileStatusList.length, "FileStatus should return files and 
directories");
     ArrayList<String> expectedPaths = new ArrayList<>();
     expectedPaths.add("o3fs://" + bucketName + "." + volumeName + "/d1");
     expectedPaths.add("o3fs://" + bucketName + "." + volumeName + "/d2");
@@ -150,13 +124,11 @@ public class TestOzoneFileSystemWithFSO extends 
TestOzoneFileSystem {
     for (FileStatus fileStatus : fileStatusList) {
       expectedPaths.remove(fileStatus.getPath().toString());
     }
-    assertEquals("Failed to return the filestatus[]" + expectedPaths,
-            0, expectedPaths.size());
+    assertEquals(0, expectedPaths.size(), "Failed to return the filestatus[]" 
+ expectedPaths);
 
     // level-1 sub-dirs
     fileStatusList = getFs().listStatus(new Path("/d1"));
-    assertEquals("FileStatus should return files and directories",
-            5, fileStatusList.length);
+    assertEquals(5, fileStatusList.length, "FileStatus should return files and 
directories");
     expectedPaths = new ArrayList<>();
     expectedPaths.add("o3fs://" + bucketName + "." + volumeName + "/d1/d2");
     expectedPaths.add("o3fs://" + bucketName + "." + volumeName + "/d1/d3");
@@ -166,34 +138,29 @@ public class TestOzoneFileSystemWithFSO extends 
TestOzoneFileSystem {
     for (FileStatus fileStatus : fileStatusList) {
       expectedPaths.remove(fileStatus.getPath().toString());
     }
-    assertEquals("Failed to return the filestatus[]" + expectedPaths,
-            0, expectedPaths.size());
+    assertEquals(0, expectedPaths.size(), "Failed to return the filestatus[]" 
+ expectedPaths);
 
     // level-2 sub-dirs
     fileStatusList = getFs().listStatus(new Path("/d1/d2"));
-    assertEquals("FileStatus should return files and directories",
-            1, fileStatusList.length);
+    assertEquals(1, fileStatusList.length, "FileStatus should return files and 
directories");
     expectedPaths = new ArrayList<>();
     expectedPaths.add("o3fs://" + bucketName + "." + volumeName + "/d1/d2/" +
             "key1");
     for (FileStatus fileStatus : fileStatusList) {
       expectedPaths.remove(fileStatus.getPath().toString());
     }
-    assertEquals("Failed to return the filestatus[]" + expectedPaths,
-            0, expectedPaths.size());
+    assertEquals(0, expectedPaths.size(), "Failed to return the filestatus[]" 
+ expectedPaths);
 
     // level-2 key2
     fileStatusList = getFs().listStatus(new Path("/d1/d2/key1"));
-    assertEquals("FileStatus should return files and directories",
-            1, fileStatusList.length);
+    assertEquals(1, fileStatusList.length, "FileStatus should return files and 
directories");
     expectedPaths = new ArrayList<>();
     expectedPaths.add("o3fs://" + bucketName + "." + volumeName + "/d1/d2/" +
             "key1");
     for (FileStatus fileStatus : fileStatusList) {
       expectedPaths.remove(fileStatus.getPath().toString());
     }
-    assertEquals("Failed to return the filestatus[]" + expectedPaths,
-            0, expectedPaths.size());
+    assertEquals(0, expectedPaths.size(), "Failed to return the filestatus[]" 
+ expectedPaths);
 
     // invalid root key
     try {
@@ -222,24 +189,21 @@ public class TestOzoneFileSystemWithFSO extends 
TestOzoneFileSystem {
     Path dir1Dir1Dir2Key1 = new Path("/d1/d1/d2/key1");
     try (FSDataOutputStream outputStream = getFs().create(dir1Dir1Dir2Key1,
             false)) {
-      assertNotNull("Should be able to create file: " + dir1Dir1Dir2Key1,
-              outputStream);
+      assertNotNull(outputStream, "Should be able to create file: " + 
dir1Dir1Dir2Key1);
     }
     Path key1 = new Path("/key1");
     try (FSDataOutputStream outputStream = getFs().create(key1, false)) {
-      assertNotNull("Should be able to create file: " + key1,
-              outputStream);
+      assertNotNull(outputStream, "Should be able to create file: " + key1);
     }
     Path key2 = new Path("/key2");
     try (FSDataOutputStream outputStream = getFs().create(key2, false)) {
-      assertNotNull("Should be able to create file: key2",
-              outputStream);
+      assertNotNull(outputStream, "Should be able to create file: key2");
     }
     Path dir1Dir2Dir1Dir2Key1 = new Path("/d1/d2/d1/d2/key1");
     try (FSDataOutputStream outputStream = getFs().create(dir1Dir2Dir1Dir2Key1,
             false)) {
-      assertNotNull("Should be able to create file: "
-              + dir1Dir2Dir1Dir2Key1, outputStream);
+      assertNotNull(outputStream, "Should be able to create file: "
+              + dir1Dir2Dir1Dir2Key1);
     }
     RemoteIterator<LocatedFileStatus> fileStatusItr = getFs().listFiles(
             new Path("/"), true);
@@ -256,10 +220,8 @@ public class TestOzoneFileSystemWithFSO extends 
TestOzoneFileSystem {
       expectedPaths.remove(status.getPath().toString());
       actualCount++;
     }
-    assertEquals("Failed to get all the files: " + expectedPaths,
-            expectedFilesCount, actualCount);
-    assertEquals("Failed to get all the files: " + expectedPaths, 0,
-            expectedPaths.size());
+    assertEquals(expectedFilesCount, actualCount, "Failed to get all the 
files: " + expectedPaths);
+    assertEquals(0, expectedPaths.size(), "Failed to get all the files: " + 
expectedPaths);
 
     // Recursive=false
     fileStatusItr = getFs().listFiles(new Path("/"), false);
@@ -273,10 +235,8 @@ public class TestOzoneFileSystemWithFSO extends 
TestOzoneFileSystem {
       expectedPaths.remove(status.getPath().toString());
       actualCount++;
     }
-    assertEquals("Failed to get all the files: " + expectedPaths, 0,
-            expectedPaths.size());
-    assertEquals("Failed to get all the files: " + expectedPaths,
-            expectedFilesCount, actualCount);
+    assertEquals(0, expectedPaths.size(), "Failed to get all the files: " + 
expectedPaths);
+    assertEquals(expectedFilesCount, actualCount, "Failed to get all the 
files: " + expectedPaths);
   }
 
   /**
@@ -431,8 +391,7 @@ public class TestOzoneFileSystemWithFSO extends 
TestOzoneFileSystem {
     // reset metrics
     long numKeys = getCluster().getOzoneManager().getMetrics().getNumKeys();
     getCluster().getOzoneManager().getMetrics().decNumKeys(numKeys);
-    assertEquals(0,
-        getCluster().getOzoneManager().getMetrics().getNumKeys());
+    assertEquals(0, getCluster().getOzoneManager().getMetrics().getNumKeys());
 
     // Op 1. create dir -> /d1/d2/d3/d4/
     // Op 2. create dir -> /d1/d2/d3/d4/d5
@@ -444,7 +403,7 @@ public class TestOzoneFileSystemWithFSO extends 
TestOzoneFileSystem {
         getCluster().getOzoneManager().getMetadataManager();
     OmBucketInfo omBucketInfo = omMgr.getBucketTable()
         .get(omMgr.getBucketKey(getVolumeName(), getBucketName()));
-    assertNotNull("Failed to find bucketInfo", omBucketInfo);
+    assertNotNull(omBucketInfo, "Failed to find bucketInfo");
 
     final long volumeId = omMgr.getVolumeId(getVolumeName());
     final long bucketId = omMgr.getBucketId(getVolumeName(), getBucketName());
@@ -462,8 +421,7 @@ public class TestOzoneFileSystemWithFSO extends 
TestOzoneFileSystem {
         verifyDirKey(volumeId, bucketId, d3ObjectID,
                 "d4", "/d1/d2/d3/d4", dirKeys, omMgr);
 
-    assertEquals("Wrong OM numKeys metrics", 4,
-        getCluster().getOzoneManager().getMetrics().getNumKeys());
+    assertEquals(4, getCluster().getOzoneManager().getMetrics().getNumKeys(), 
"Wrong OM numKeys metrics");
 
     // create sub-dirs under same parent
     Path subDir5 = new Path("/d1/d2/d3/d4/d5");
@@ -476,15 +434,14 @@ public class TestOzoneFileSystemWithFSO extends 
TestOzoneFileSystem {
     long d6ObjectID =
         verifyDirKey(volumeId, bucketId, d4ObjectID,
                 "d6", "/d1/d2/d3/d4/d6", dirKeys, omMgr);
-    assertTrue(
-        "Wrong objectIds for sub-dirs[" + d5ObjectID + "/d5, " + d6ObjectID
-            + "/d6] of same parent!", d5ObjectID != d6ObjectID);
+    assertTrue(d5ObjectID != d6ObjectID, "Wrong objectIds for sub-dirs[" + 
d5ObjectID + "/d5, " + d6ObjectID
+        + "/d6] of same parent!");
 
-    assertEquals("Wrong OM numKeys metrics", 6,
-        getCluster().getOzoneManager().getMetrics().getNumKeys());
+    assertEquals(6, getCluster().getOzoneManager().getMetrics().getNumKeys(), 
"Wrong OM numKeys metrics");
   }
 
   @Test
+  @Order(1)
   public void testCreateFile() throws Exception {
     // Op 1. create dir -> /d1/d2/d3/d4/
     Path parent = new Path("/d1/d2/");
@@ -496,7 +453,7 @@ public class TestOzoneFileSystemWithFSO extends 
TestOzoneFileSystem {
         getCluster().getOzoneManager().getMetadataManager();
     OmBucketInfo omBucketInfo = omMgr.getBucketTable()
         .get(omMgr.getBucketKey(getVolumeName(), getBucketName()));
-    assertNotNull("Failed to find bucketInfo", omBucketInfo);
+    assertNotNull(omBucketInfo, "Failed to find bucketInfo");
 
     ArrayList<String> dirKeys = new ArrayList<>();
 
@@ -516,7 +473,7 @@ public class TestOzoneFileSystemWithFSO extends 
TestOzoneFileSystem {
     outputStream.close();
 
     OmKeyInfo omKeyInfo = 
omMgr.getKeyTable(getBucketLayout()).get(openFileKey);
-    assertNotNull("Invalid Key!", omKeyInfo);
+    assertNotNull(omKeyInfo, "Invalid Key!");
     verifyOMFileInfoFormat(omKeyInfo, file.getName(), d2ObjectID);
 
     // wait for DB updates
@@ -571,11 +528,10 @@ public class TestOzoneFileSystemWithFSO extends 
TestOzoneFileSystem {
 
   private void verifyOMFileInfoFormat(OmKeyInfo omKeyInfo, String fileName,
       long parentID) {
-    assertEquals("Wrong keyName", fileName, omKeyInfo.getKeyName());
-    assertEquals("Wrong parentID", parentID,
-        omKeyInfo.getParentObjectID());
+    assertEquals(fileName, omKeyInfo.getKeyName(), "Wrong keyName");
+    assertEquals(parentID, omKeyInfo.getParentObjectID(), "Wrong parentID");
     String dbKey = parentID + OzoneConsts.OM_KEY_PREFIX + fileName;
-    assertEquals("Wrong path format", dbKey, omKeyInfo.getPath());
+    assertEquals(dbKey, omKeyInfo.getPath(), "Wrong path format");
   }
 
   long verifyDirKey(long volumeId, long bucketId, long parentId,
@@ -586,21 +542,13 @@ public class TestOzoneFileSystemWithFSO extends 
TestOzoneFileSystem {
             parentId + "/" + dirKey;
     dirKeys.add(dbKey);
     OmDirectoryInfo dirInfo = omMgr.getDirectoryTable().get(dbKey);
-    assertNotNull("Failed to find " + absolutePath +
-        " using dbKey: " + dbKey, dirInfo);
-    assertEquals("Parent Id mismatches", parentId,
-        dirInfo.getParentObjectID());
-    assertEquals("Mismatches directory name", dirKey,
-        dirInfo.getName());
-    assertTrue("Mismatches directory creation time param",
-        dirInfo.getCreationTime() > 0);
-    assertEquals("Mismatches directory modification time param",
-        dirInfo.getCreationTime(), dirInfo.getModificationTime());
+    assertNotNull(dirInfo, "Failed to find " + absolutePath +
+        " using dbKey: " + dbKey);
+    assertEquals(parentId, dirInfo.getParentObjectID(), "Parent Id 
mismatches");
+    assertEquals(dirKey, dirInfo.getName(), "Mismatches directory name");
+    assertTrue(dirInfo.getCreationTime() > 0, "Mismatches directory creation 
time param");
+    assertEquals(dirInfo.getCreationTime(), dirInfo.getModificationTime());
     return dirInfo.getObjectID();
   }
 
-  @Override
-  public BucketLayout getBucketLayout() {
-    return BucketLayout.FILE_SYSTEM_OPTIMIZED;
-  }
 }
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestO3FS.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestO3FS.java
new file mode 100644
index 0000000000..5fdab6fe95
--- /dev/null
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestO3FS.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.fs.ozone;
+
+import org.apache.hadoop.ozone.om.helpers.BucketLayout;
+import org.junit.jupiter.api.TestInstance;
+
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+class TestO3FS extends AbstractOzoneFileSystemTest {
+  TestO3FS() {
+    super(false, false, BucketLayout.LEGACY);
+  }
+}
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestO3FSWithFSO.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestO3FSWithFSO.java
new file mode 100644
index 0000000000..0d6be62b4f
--- /dev/null
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestO3FSWithFSO.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.fs.ozone;
+
+import org.junit.jupiter.api.TestInstance;
+
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+class TestO3FSWithFSO extends AbstractOzoneFileSystemTestWithFSO {
+  TestO3FSWithFSO() {
+    super(false);
+  }
+}
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestO3FSWithFSOAndOMRatis.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestO3FSWithFSOAndOMRatis.java
new file mode 100644
index 0000000000..d616d08e32
--- /dev/null
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestO3FSWithFSOAndOMRatis.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.fs.ozone;
+
+import org.junit.jupiter.api.TestInstance;
+
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+class TestO3FSWithFSOAndOMRatis extends AbstractOzoneFileSystemTestWithFSO {
+  TestO3FSWithFSOAndOMRatis() {
+    super(true);
+  }
+}
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestO3FSWithFSPaths.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestO3FSWithFSPaths.java
new file mode 100644
index 0000000000..5fffd9df7f
--- /dev/null
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestO3FSWithFSPaths.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.fs.ozone;
+
+import org.apache.hadoop.ozone.om.helpers.BucketLayout;
+import org.junit.jupiter.api.TestInstance;
+
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+class TestO3FSWithFSPaths extends AbstractOzoneFileSystemTest {
+  TestO3FSWithFSPaths() {
+    super(true, false, BucketLayout.LEGACY);
+  }
+}
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestO3FSWithFSPathsAndOMRatis.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestO3FSWithFSPathsAndOMRatis.java
new file mode 100644
index 0000000000..461961c3e7
--- /dev/null
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestO3FSWithFSPathsAndOMRatis.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.fs.ozone;
+
+import org.apache.hadoop.ozone.om.helpers.BucketLayout;
+import org.junit.jupiter.api.TestInstance;
+
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+class TestO3FSWithFSPathsAndOMRatis extends AbstractOzoneFileSystemTest {
+  TestO3FSWithFSPathsAndOMRatis() {
+    super(true, true, BucketLayout.LEGACY);
+  }
+}
diff --git 
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestO3FSWithOMRatis.java
 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestO3FSWithOMRatis.java
new file mode 100644
index 0000000000..a02f3812e0
--- /dev/null
+++ 
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/fs/ozone/TestO3FSWithOMRatis.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.fs.ozone;
+
+import org.apache.hadoop.ozone.om.helpers.BucketLayout;
+import org.junit.jupiter.api.TestInstance;
+
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+class TestO3FSWithOMRatis extends AbstractOzoneFileSystemTest {
+  TestO3FSWithOMRatis() {
+    super(false, true, BucketLayout.LEGACY);
+  }
+}


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

Reply via email to