Github user mfenes commented on a diff in the pull request: https://github.com/apache/zookeeper/pull/450#discussion_r164605998 --- Diff: src/java/test/org/apache/zookeeper/server/persistence/FileTxnSnapLogTest.java --- @@ -159,4 +159,222 @@ public void onTxnLoaded(TxnHeader hdr, Record rec) { } } } + + @Test + public void testDirCheckWithCorrectFiles() throws IOException { + File tmpDir = ClientBase.createEmptyTestDir(); + File logDir = new File(tmpDir, "logdir"); + File snapDir = new File(tmpDir, "snapdir"); + File logVersionDir = new File(logDir, FileTxnSnapLog.version + FileTxnSnapLog.VERSION); + File snapVersionDir = new File(snapDir, FileTxnSnapLog.version + FileTxnSnapLog.VERSION); + + if (!logVersionDir.exists()) { + logVersionDir.mkdirs(); + } + if (!snapVersionDir.exists()) { + snapVersionDir.mkdirs(); + } + + Assert.assertTrue(logVersionDir.exists()); + Assert.assertTrue(snapVersionDir.exists()); + + // transaction log files in log dir - correct + File logFile1 = new File(logVersionDir.getPath() +File.separator + Util.makeLogName(1L)); + logFile1.createNewFile(); + File logFile2 = new File(logVersionDir.getPath() +File.separator + Util.makeLogName(2L)); + logFile2.createNewFile(); + + // snapshot files in snap dir - correct + File snapFile1 = new File(snapVersionDir.getPath() +File.separator + Util.makeSnapshotName(1L)); + snapFile1.createNewFile(); + File snapFile2 = new File(snapVersionDir.getPath() +File.separator + Util.makeSnapshotName(2L)); + snapFile2.createNewFile(); + + Assert.assertTrue(logFile1.exists()); + Assert.assertTrue(logFile2.exists()); + Assert.assertTrue(snapFile1.exists()); + Assert.assertTrue(snapFile2.exists()); + + String priorAutocreateDirValue = System.getProperty(FileTxnSnapLog.ZOOKEEPER_DATADIR_AUTOCREATE); + System.setProperty(FileTxnSnapLog.ZOOKEEPER_DATADIR_AUTOCREATE, "false"); + FileTxnSnapLog fileTxnSnapLog; + try { + fileTxnSnapLog = new FileTxnSnapLog(logDir, snapDir); + } catch (FileTxnSnapLog.LogdirContentCheckException e) { + Assert.fail("Should not throw LogdirContentCheckException."); + } catch (FileTxnSnapLog.SnapdirContentCheckException e) { --- End diff -- Done.
---