void verifyIgnoringFiles(Cache cache0, Cache cache1, Set<String> files) { verifyIgnoringFiles(cache0, files); verifyIgnoringFiles(cache1, files); }
@Test @Override public void testIndexWritingAndFinding() throws IOException, InterruptedException { verifyIgnoringFiles(cache0, cache1, Util.asSet("pending_segments_1")); IndexOutput indexOutput = dirA.createOutput(filename, IOContext.DEFAULT); indexOutput.writeString("no need to write, nobody ever will read this"); indexOutput.close(); assertFileExistsHavingRLCount(filename, 0, true); IndexInput firstOpenOnB = dirB.openInput(filename, IOContext.DEFAULT); assertFileExistsHavingRLCount(filename, 0, true); dirA.deleteFile(filename); assertFileExistsHavingRLCount(filename, 0, false); assertFileExistsHavingRLCount(filename, 0, false); cloneOfFirstOpenOnB.close(); assertFileExistsHavingRLCount(filename, 0, false); IndexInput firstOpenOnA = dirA.openInput(filename, IOContext.DEFAULT); assertFileExistsHavingRLCount(filename, 0, false); IndexInput secondOpenOnA = dirA.openInput(filename, IOContext.DEFAULT); assertFileExistsHavingRLCount(filename, 0, false); firstOpenOnA.close(); assertFileExistsHavingRLCount(filename, 0, false); secondOpenOnA.close(); assertFileExistsHavingRLCount(filename, 0, false); firstOpenOnB.close(); assertFileAfterDeletion(cache0); assertFileAfterDeletion(cache1); verifyIgnoringFiles(cache0, left_behind); verifyIgnoringFiles(cache1, left_behind);