@Test public void testBufferSequence() { try { final Random rnd = new Random(); final long seed = rnd.nextLong(); final int numBuffers = 325; final int numberOfChannels = 671; rnd.setSeed(seed); for (int i = 0; i < numBuffers; i++) { writeBuffer(fileChannel, rnd.nextInt(pageSize) + 1, rnd.nextInt(numberOfChannels)); } fileChannel.position(0L); rnd.setSeed(seed); SpilledBufferOrEventSequence seq = new SpilledBufferOrEventSequence(tempFile, fileChannel, buffer, pageSize); seq.open(); for (int i = 0; i < numBuffers; i++) { validateBuffer(seq.getNext(), rnd.nextInt(pageSize) + 1, rnd.nextInt(numberOfChannels)); } // should have no more data assertNull(seq.getNext()); } catch (Exception e) { e.printStackTrace(); fail(e.getMessage()); } }
@Test public void testIncompleteHeaderOnFirstElement() { try { ByteBuffer buf = ByteBuffer.allocate(7); buf.order(ByteOrder.LITTLE_ENDIAN); FileUtils.writeCompletely(fileChannel, buf); fileChannel.position(0); SpilledBufferOrEventSequence seq = new SpilledBufferOrEventSequence(tempFile, fileChannel, buffer, pageSize); seq.open(); try { seq.getNext(); fail("should fail with an exception"); } catch (IOException e) { // expected } } catch (Exception e) { e.printStackTrace(); fail(e.getMessage()); } }
next = currentBuffered.getNext(); if (next == null) { completeBufferedSequence();
BufferOrEvent next = seq1.getNext(); if (next.isEvent()) { BufferOrEvent expected = events1.get(numEvent++); assertNull(seq1.getNext()); assertEquals(events1.size(), numEvent); BufferOrEvent next = seq2.getNext(); if (next.isEvent()) { BufferOrEvent expected = events2.get(numEvent++); assertNull(seq2.getNext()); assertEquals(events2.size(), numEvent);
@Test public void testEventSequence() { try { final Random rnd = new Random(); final int numEvents = 3000; final int numberOfChannels = 1656; final ArrayList<BufferOrEvent> events = new ArrayList<BufferOrEvent>(numEvents); for (int i = 0; i < numEvents; i++) { events.add(generateAndWriteEvent(fileChannel, rnd, numberOfChannels)); } fileChannel.position(0L); SpilledBufferOrEventSequence seq = new SpilledBufferOrEventSequence(tempFile, fileChannel, buffer, pageSize); seq.open(); int i = 0; BufferOrEvent boe; while ((boe = seq.getNext()) != null) { BufferOrEvent expected = events.get(i); assertTrue(boe.isEvent()); assertEquals(expected.getEvent(), boe.getEvent()); assertEquals(expected.getChannelIndex(), boe.getChannelIndex()); i++; } assertEquals(numEvents, i); } catch (Exception e) { e.printStackTrace(); fail(e.getMessage()); } }
@Test public void testEmptyChannel() { try { SpilledBufferOrEventSequence seq = new SpilledBufferOrEventSequence(tempFile, fileChannel, buffer, pageSize); seq.open(); assertNull(seq.getNext()); } catch (Exception e) { e.printStackTrace(); fail(e.getMessage()); } }