### Question:
FSDirectory implements Closeable { public INode getINode(String src) throws UnresolvedLinkException { return getLastINodeInPath(src).getINode(0); } FSDirectory(FSNamesystem ns, Configuration conf); int getReadHoldCount(); int getWriteHoldCount(); INodeDirectory getRoot(); @Override void close(); INode getINode(String src); INodesInPath getLastINodeInPath(String src); INodesInPath getINodesInPath4Write(String src
      ); INode getINode4Write(String src); @VisibleForTesting long getYieldCount(); INodeMap getINodeMap(); final void addToInodeMap(INode inode); final void removeFromInodeMap(List<? extends INode> inodes); INode getInode(long id); static byte[][] getPathComponents(INode inode); static boolean isReservedName(INode inode); static boolean isReservedName(String src); final static String DOT_RESERVED_STRING; final static String DOT_RESERVED_PATH_PREFIX; final static byte[] DOT_RESERVED; final static String DOT_INODES_STRING; final static byte[] DOT_INODES; @VisibleForTesting
  final EncryptionZoneManager ezManager; }### Answer:
@Test public void testDumpTree() throws Exception { final INode root = fsdir.getINode("/"); LOG.info("Original tree"); final StringBuffer b1 = root.dumpTreeRecursively(); System.out.println("b1=" + b1); final BufferedReader in = new BufferedReader(new StringReader(b1.toString())); String line = in.readLine(); checkClassName(line); for(; (line = in.readLine()) != null; ) { line = line.trim(); if (!line.isEmpty() && !line.contains("snapshot")) { assertTrue("line=" + line, line.startsWith(INodeDirectory.DUMPTREE_LAST_ITEM) || line.startsWith(INodeDirectory.DUMPTREE_EXCEPT_LAST_ITEM) ); checkClassName(line); } } }