|
|
@@ -406,4 +406,69 @@ public class TemporaryBufferTest { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testHeapToByteArrayWithLimit() throws IOException { |
|
|
|
int sz = 2 * Block.SZ; |
|
|
|
try (TemporaryBuffer b = new TemporaryBuffer.Heap(sz / 2, sz)) { |
|
|
|
for (int i = 0; i < sz; i++) { |
|
|
|
b.write('a' + i % 26); |
|
|
|
} |
|
|
|
byte[] prefix = b.toByteArray(5); |
|
|
|
assertEquals(5, prefix.length); |
|
|
|
for (int i = 0; i < prefix.length; i++) { |
|
|
|
assertEquals('a' + i % 26, prefix[i]); |
|
|
|
} |
|
|
|
prefix = b.toByteArray(Block.SZ + 37); |
|
|
|
assertEquals(Block.SZ + 37, prefix.length); |
|
|
|
for (int i = 0; i < prefix.length; i++) { |
|
|
|
assertEquals('a' + i % 26, prefix[i]); |
|
|
|
} |
|
|
|
prefix = b.toByteArray(sz); |
|
|
|
assertEquals(sz, prefix.length); |
|
|
|
for (int i = 0; i < prefix.length; i++) { |
|
|
|
assertEquals('a' + i % 26, prefix[i]); |
|
|
|
} |
|
|
|
prefix = b.toByteArray(sz + 37); |
|
|
|
assertEquals(sz, prefix.length); |
|
|
|
for (int i = 0; i < prefix.length; i++) { |
|
|
|
assertEquals('a' + i % 26, prefix[i]); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testFileToByteArrayWithLimit() throws IOException { |
|
|
|
@SuppressWarnings("resource") // Buffer is explicitly destroyed in finally block |
|
|
|
TemporaryBuffer b = new TemporaryBuffer.LocalFile(null, 2 * Block.SZ); |
|
|
|
int sz = 3 * Block.SZ; |
|
|
|
try { |
|
|
|
for (int i = 0; i < sz; i++) { |
|
|
|
b.write('a' + i % 26); |
|
|
|
} |
|
|
|
b.close(); |
|
|
|
byte[] prefix = b.toByteArray(5); |
|
|
|
assertEquals(5, prefix.length); |
|
|
|
for (int i = 0; i < prefix.length; i++) { |
|
|
|
assertEquals('a' + i % 26, prefix[i]); |
|
|
|
} |
|
|
|
prefix = b.toByteArray(Block.SZ + 37); |
|
|
|
assertEquals(Block.SZ + 37, prefix.length); |
|
|
|
for (int i = 0; i < prefix.length; i++) { |
|
|
|
assertEquals('a' + i % 26, prefix[i]); |
|
|
|
} |
|
|
|
prefix = b.toByteArray(sz); |
|
|
|
assertEquals(sz, prefix.length); |
|
|
|
for (int i = 0; i < prefix.length; i++) { |
|
|
|
assertEquals('a' + i % 26, prefix[i]); |
|
|
|
} |
|
|
|
prefix = b.toByteArray(sz + 37); |
|
|
|
assertEquals(sz, prefix.length); |
|
|
|
for (int i = 0; i < prefix.length; i++) { |
|
|
|
assertEquals('a' + i % 26, prefix[i]); |
|
|
|
} |
|
|
|
} finally { |
|
|
|
b.destroy(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |