@Test
public void testRemovalStaleFsimageCkpt() throws IOException {

  MiniDFSCluster cluster = null;
  SecondaryNameNode secondary = null;
  Configuration conf = new HdfsConfiguration();
  try {
    cluster = new MiniDFSCluster.Builder(conf).
        numDataNodes(1).format(true).build();
    conf.set(DFSConfigKeys.DFS_NAMENODE_SECONDARY_HTTP_ADDRESS_KEY,
        "0.0.0.0:0");
    secondary = new SecondaryNameNode(conf);
    // Do checkpointing
    secondary.doCheckpoint();
    NNStorage storage = secondary.getFSImage().storage;
    File currentDir = FSImageTestUtil.
        getCurrentDirs(storage, NameNodeDirType.IMAGE).get(0);
    // Create a stale fsimage.ckpt file
    File staleCkptFile = new File(currentDir.getPath() +
        "/fsimage.ckpt_0000000000000000002");
    staleCkptFile.createNewFile();
    assertTrue(staleCkptFile.exists());
    // After checkpoint stale fsimage.ckpt file should be deleted
    secondary.doCheckpoint();
    assertFalse(staleCkptFile.exists());
  } finally {
    if (secondary != null) {
      secondary.shutdown();
      secondary = null;
    }
    if (cluster != null) {
      cluster.shutdown();
      cluster = null;
    }
  }
}