@Test
public void testCompactFirstFileReclaimed() throws Exception {
setup(2, 60 * 1024, false);
final byte recordType = (byte) 0;
journal = new JournalImpl(fileSize, minFiles, minFiles, 0, 0, fileFactory, filePrefix, fileExtension, maxAIO);
journal.start();
journal.loadInternalOnly();
journal.appendAddRecord(1, recordType, "test".getBytes(), true);
journal.forceMoveNextFile();
journal.appendUpdateRecord(1, recordType, "update".getBytes(), true);
journal.appendDeleteRecord(1, true);
journal.appendAddRecord(2, recordType, "finalRecord".getBytes(), true);
for (int i = 10; i < 100; i++) {
journal.appendAddRecord(i, recordType, ("tst" + i).getBytes(), true);
journal.forceMoveNextFile();
journal.appendUpdateRecord(i, recordType, ("uptst" + i).getBytes(), true);
journal.appendDeleteRecord(i, true);
}
journal.testCompact();
journal.stop();
List<RecordInfo> records1 = new ArrayList<>();
List<PreparedTransactionInfo> preparedRecords = new ArrayList<>();
journal.start();
journal.load(records1, preparedRecords, null);
assertEquals(1, records1.size());
}