public static void deleteDir(@NotNull File dir) { try { IOTools.deleteDirWithFiles(dir, 20); } catch (Throwable e) { e.printStackTrace(); } }
@After public void after() { try { IOTools.deleteDirWithFiles(path, 2); } catch (Exception ignored) { } }
@Test public void shouldDetermineQueueDirectoryFromQueueFile() { final Path path = Paths.get(OS.USER_DIR, TEST_QUEUE_FILE); try (final ChronicleQueue queue = ChronicleQueue.singleBuilder(path) .testBlockSize() .build()) { assertThat(queue.createTailer().readingDocument().isPresent(), is(false)); } finally { IOTools.deleteDirWithFiles(path.toFile(), 20); } }
@Test(timeout = 5000L) public void testRollWithoutEOFDoesntBlowup() throws Exception { final File path = DirectoryUtils.tempDir(getClass().getName()); try { path.mkdirs(); final SetTimeProvider timeProvider = new SetTimeProvider(); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH, -1); timeProvider.currentTimeMillis(cal.getTimeInMillis()); createQueueAndWriteData(timeProvider, path); assertEquals(1, getNumberOfQueueFiles(path)); // adjust time timeProvider.currentTimeMillis(System.currentTimeMillis()); createQueueAndWriteData(timeProvider, path); assertEquals(2, getNumberOfQueueFiles(path)); Optional<Path> firstQueueFile = Files.list(path.toPath()).filter(p -> p.toString().endsWith(SUFFIX)).sorted().findFirst(); assertTrue(firstQueueFile.isPresent()); // remove EOF from first file removeEOF(firstQueueFile.get()); List<String> l = new LinkedList<>(); new ChronicleReader().withMessageSink(l::add).withBasePath(path.toPath()).execute(); // 2 entries per message assertEquals(4, l.size()); } finally { IOTools.deleteDirWithFiles(path, 20); } }
@Test(timeout = 5000L) public void testRollWithoutEOF() throws Exception { final File path = DirectoryUtils.tempDir(getClass().getName()); try { path.mkdirs(); final SetTimeProvider timeProvider = new SetTimeProvider(); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH, -3); timeProvider.currentTimeMillis(cal.getTimeInMillis()); createQueueAndWriteData(timeProvider, path); assertEquals(1, getNumberOfQueueFiles(path)); // adjust time timeProvider.currentTimeMillis(System.currentTimeMillis()); createQueueAndWriteData(timeProvider, path); assertEquals(2, getNumberOfQueueFiles(path)); Optional<Path> firstQueueFile = Files.list(path.toPath()).filter(p -> p.toString().endsWith(SUFFIX)).sorted().findFirst(); assertTrue(firstQueueFile.isPresent()); // remove EOF from first file removeEOF(firstQueueFile.get()); List<String> l = new LinkedList<>(); new ChronicleReader().withMessageSink(l::add).withBasePath(path.toPath()).withReadOnly(false).execute(); // 2 entries per message assertEquals(4, l.size()); } finally { IOTools.deleteDirWithFiles(path, 20); } }
@Test(timeout = 5000L) public void testRollWritesEOF() throws Exception { final File path = DirectoryUtils.tempDir(getClass().getName()); try { path.mkdirs(); final SetTimeProvider timeProvider = new SetTimeProvider(); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH, -1); timeProvider.currentTimeMillis(cal.getTimeInMillis()); createQueueAndWriteData(timeProvider, path); assertEquals(1, getNumberOfQueueFiles(path)); // adjust time timeProvider.currentTimeMillis(System.currentTimeMillis()); createQueueAndWriteData(timeProvider, path); assertEquals(2, getNumberOfQueueFiles(path)); List<String> l = new LinkedList<>(); new ChronicleReader().withMessageSink(l::add).withBasePath(path.toPath()).execute(); // 2 entries per message assertEquals(4, l.size()); } finally { IOTools.deleteDirWithFiles(path, 20); } }
} finally { try { IOTools.deleteDirWithFiles(new File(input), 2); IOTools.deleteDirWithFiles(new File(output), 2); } catch (IORuntimeException e) { e.printStackTrace();
} finally { try { IOTools.deleteDirWithFiles(path1, 2); IOTools.deleteDirWithFiles(path2, 2); } catch (Exception e) { e.printStackTrace();
@Override public void init(JLBH jlbh) { IOTools.deleteDirWithFiles("replica", 10); sourceQueue = single("replica").build(); sinkQueue = single("replica").build(); appender = sourceQueue.acquireAppender(); tailer = sinkQueue.createTailer(); new Thread(() -> { Datum datum2 = new Datum(); while (true) { try (DocumentContext dc = tailer.readingDocument()) { if (dc.wire() == null) continue; datum2.readMarshallable(dc.wire().bytes()); jlbh.sample(System.nanoTime() - datum2.ts); } } }).start(); }
@Test public void testWriteBytes() { File dir = DirectoryUtils.tempDir("WriteBytesTest"); try (ChronicleQueue queue = binary(dir) .testBlockSize() .build()) { ExcerptAppender appender = queue.acquireAppender(); ExcerptTailer tailer = queue.createTailer(); outgoingMsgBytes[0] = 'A'; outgoingBytes.write(outgoingMsgBytes); postOneMessage(appender); fetchOneMessage(tailer, incomingMsgBytes); System.out.println(new String(incomingMsgBytes)); outgoingBytes.clear(); outgoingMsgBytes[0] = 'A'; outgoingMsgBytes[1] = 'B'; outgoingBytes.write(outgoingMsgBytes); postOneMessage(appender); fetchOneMessage(tailer, incomingMsgBytes); System.out.println(new String(incomingMsgBytes)); } finally { try { IOTools.deleteDirWithFiles(dir, 2); } catch (IORuntimeException e) { // ignored } } }
@Test public void testLastIndexAppendedAcrossRestarts() { String path = OS.TARGET + "/" + getClass().getSimpleName() + "-" + System.nanoTime(); for (int i = 0; i < 5; i++) { try (ChronicleQueue queue = single(path) .testBlockSize() .rollCycle(TEST_DAILY) .build()) { ExcerptAppender appender = queue.acquireAppender(); try (DocumentContext documentContext = appender.writingDocument()) { int index = (int) documentContext.index(); assertEquals(i, index); documentContext.wire().write().text("hello world"); } assertEquals(i, (int) appender.lastIndexAppended()); } } try { IOTools.deleteDirWithFiles(path, 2); } catch (Exception index) { } }
IOTools.deleteDirWithFiles(base, 2);
} finally { try { IOTools.deleteDirWithFiles(dir, 2); } catch (IORuntimeException e) {
@Test public void testWriteText() { File dir = DirectoryUtils.tempDir("testWriteText"); try (ChronicleQueue queue = binary(dir) .testBlockSize() .build()) { ExcerptAppender appender = queue.acquireAppender(); ExcerptTailer tailer = queue.createTailer(); ExcerptTailer tailer2 = queue.createTailer(); int runs = 1000; for (int i = 0; i < runs; i++) appender.writeText("" + i); for (int i = 0; i < runs; i++) assertEquals("" + i, tailer.readText()); StringBuilder sb = new StringBuilder(); for (int i = 0; i < runs; i++) { assertTrue(tailer2.readText(sb)); assertEquals("" + i, sb.toString()); } } finally { try { IOTools.deleteDirWithFiles(dir, 2); } catch (IORuntimeException e) { // ignored } } }
@Override public void init(JLBH jlbh) { IOTools.deleteDirWithFiles("replica", 10); Byteable byteable = (Byteable) datum; long capacity = byteable.maxSize(); byteable.bytesStore(NativeBytesStore.nativeStore(capacity), 0, capacity); datumBytes = ((Byteable) datum).bytesStore(); datumWrite = datumBytes.bytesForWrite(); sourceQueue = single("replica").build(); sinkQueue = single("replica").build(); appender = sourceQueue.acquireAppender(); tailer = sinkQueue.createTailer(); this.jlbh = jlbh; }
System.out.println("Read latencies " + readHdr.toMicrosFormat()); IOTools.deleteDirWithFiles(file, 3);
IOTools.deleteDirWithFiles(tempDir.toFile(), 2);
IOTools.deleteDirWithFiles(tmpDir, 20);
IOTools.deleteDirWithFiles(tmpDir, 20);
@Test public void testSkipSafeLengthOverBlock() { File tmpDir = DirectoryUtils.tempDir("testSkipSafeLengthOverBlock"); try { // 3rd time will do it for (int i = 0; i < 8; i++) { try (final ChronicleQueue queue = binary(tmpDir).testBlockSize().rollCycle(RollCycles.TEST_DAILY).timeoutMS(1).build()) { ExcerptAppender appender = queue.acquireAppender(); // start a message which won't be completed. DocumentContext dc = appender.writingDocument(); // 2nd and subsequent times we call this will invoke recovery dc.wire().write("some").text("data"); // don't call dc.close(); } } try (final ChronicleQueue queue = binary(tmpDir).testBlockSize().build()) { ExcerptTailer tailer = queue.createTailer(); try (DocumentContext dc = tailer.readingDocument()) { assertFalse(dc.isPresent()); } } } finally { IOTools.deleteDirWithFiles(tmpDir, 20); } }