Repository: cassandra Updated Branches: refs/heads/trunk 5a249362e -> 9484783a8
close files/resources in tests Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9484783a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9484783a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9484783a Branch: refs/heads/trunk Commit: 9484783a868279439e8d5a658b27a7c63a0482b7 Parents: 5a24936 Author: Dave Brosius <dbros...@mebigfatguy.com> Authored: Tue Aug 23 23:47:24 2016 -0400 Committer: Dave Brosius <dbros...@mebigfatguy.com> Committed: Tue Aug 23 23:47:24 2016 -0400 ---------------------------------------------------------------------- .../org/apache/cassandra/db/VerifyTest.java | 25 +++-- .../io/util/BufferedRandomAccessFileTest.java | 89 ++++++++-------- .../io/util/FileSegmentInputStreamTest.java | 40 +++++--- .../apache/cassandra/io/util/FileUtilsTest.java | 3 +- .../service/ProtocolBetaVersionTest.java | 3 +- .../apache/cassandra/utils/KeyGenerator.java | 101 +++++++++++++------ 6 files changed, 156 insertions(+), 105 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9484783a/test/unit/org/apache/cassandra/db/VerifyTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/db/VerifyTest.java b/test/unit/org/apache/cassandra/db/VerifyTest.java index 53bf655..4e55a60 100644 --- a/test/unit/org/apache/cassandra/db/VerifyTest.java +++ b/test/unit/org/apache/cassandra/db/VerifyTest.java @@ -275,11 +275,12 @@ public class VerifyTest SSTableReader sstable = cfs.getLiveSSTables().iterator().next(); - RandomAccessFile file = new RandomAccessFile(sstable.descriptor.filenameFor(sstable.descriptor.digestComponent), "rw"); - Long correctChecksum = Long.parseLong(file.readLine()); - file.close(); - - writeChecksum(++correctChecksum, sstable.descriptor.filenameFor(sstable.descriptor.digestComponent)); + try (RandomAccessFile file = new RandomAccessFile(sstable.descriptor.filenameFor(sstable.descriptor.digestComponent), "rw")) + { + Long correctChecksum = Long.valueOf(file.readLine()); + + writeChecksum(++correctChecksum, sstable.descriptor.filenameFor(sstable.descriptor.digestComponent)); + } try (Verifier verifier = new Verifier(cfs, sstable, false)) { @@ -373,13 +374,15 @@ public class VerifyTest protected long simpleFullChecksum(String filename) throws IOException { - FileInputStream inputStream = new FileInputStream(filename); - CRC32 checksum = new CRC32(); - CheckedInputStream cinStream = new CheckedInputStream(inputStream, checksum); - byte[] b = new byte[128]; - while (cinStream.read(b) >= 0) { + try (FileInputStream inputStream = new FileInputStream(filename)) + { + CRC32 checksum = new CRC32(); + CheckedInputStream cinStream = new CheckedInputStream(inputStream, checksum); + byte[] b = new byte[128]; + while (cinStream.read(b) >= 0) { + } + return cinStream.getChecksum().getValue(); } - return cinStream.getChecksum().getValue(); } protected void writeChecksum(long checksum, String filePath) http://git-wip-us.apache.org/repos/asf/cassandra/blob/9484783a/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java b/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java index 44be53d..2386160 100644 --- a/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java +++ b/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java @@ -144,25 +144,26 @@ public class BufferedRandomAccessFileTest public void testReadAndWriteOnCapacity() throws IOException { File tmpFile = File.createTempFile("readtest", "bin"); - SequentialWriter w = new SequentialWriter(tmpFile); - - // Fully write the file and sync.. - byte[] in = generateByteArray(RandomAccessReader.DEFAULT_BUFFER_SIZE); - w.write(in); - - try (FileHandle.Builder builder = new FileHandle.Builder(w.getPath()); - FileHandle fh = builder.complete(); - RandomAccessReader r = fh.createReader()) + try (SequentialWriter w = new SequentialWriter(tmpFile)) { - // Read it into a same size array. - byte[] out = new byte[RandomAccessReader.DEFAULT_BUFFER_SIZE]; - r.read(out); - - // Cannot read any more. - int negone = r.read(); - assert negone == -1 : "We read past the end of the file, should have gotten EOF -1. Instead, " + negone; - - w.finish(); + // Fully write the file and sync.. + byte[] in = generateByteArray(RandomAccessReader.DEFAULT_BUFFER_SIZE); + w.write(in); + + try (FileHandle.Builder builder = new FileHandle.Builder(w.getPath()); + FileHandle fh = builder.complete(); + RandomAccessReader r = fh.createReader()) + { + // Read it into a same size array. + byte[] out = new byte[RandomAccessReader.DEFAULT_BUFFER_SIZE]; + r.read(out); + + // Cannot read any more. + int negone = r.read(); + assert negone == -1 : "We read past the end of the file, should have gotten EOF -1. Instead, " + negone; + + w.finish(); + } } } @@ -170,32 +171,34 @@ public class BufferedRandomAccessFileTest public void testLength() throws IOException { File tmpFile = File.createTempFile("lengthtest", "bin"); - SequentialWriter w = new SequentialWriter(tmpFile); - assertEquals(0, w.length()); - - // write a chunk smaller then our buffer, so will not be flushed - // to disk - byte[] lessThenBuffer = generateByteArray(RandomAccessReader.DEFAULT_BUFFER_SIZE / 2); - w.write(lessThenBuffer); - assertEquals(lessThenBuffer.length, w.length()); - - // sync the data and check length - w.sync(); - assertEquals(lessThenBuffer.length, w.length()); - - // write more then the buffer can hold and check length - byte[] biggerThenBuffer = generateByteArray(RandomAccessReader.DEFAULT_BUFFER_SIZE * 2); - w.write(biggerThenBuffer); - assertEquals(biggerThenBuffer.length + lessThenBuffer.length, w.length()); - - w.finish(); - - // will use cachedlength - try (FileHandle.Builder builder = new FileHandle.Builder(tmpFile.getPath()); - FileHandle fh = builder.complete(); - RandomAccessReader r = fh.createReader()) + try (SequentialWriter w = new SequentialWriter(tmpFile)) { - assertEquals(lessThenBuffer.length + biggerThenBuffer.length, r.length()); + assertEquals(0, w.length()); + + // write a chunk smaller then our buffer, so will not be flushed + // to disk + byte[] lessThenBuffer = generateByteArray(RandomAccessReader.DEFAULT_BUFFER_SIZE / 2); + w.write(lessThenBuffer); + assertEquals(lessThenBuffer.length, w.length()); + + // sync the data and check length + w.sync(); + assertEquals(lessThenBuffer.length, w.length()); + + // write more then the buffer can hold and check length + byte[] biggerThenBuffer = generateByteArray(RandomAccessReader.DEFAULT_BUFFER_SIZE * 2); + w.write(biggerThenBuffer); + assertEquals(biggerThenBuffer.length + lessThenBuffer.length, w.length()); + + w.finish(); + + // will use cachedlength + try (FileHandle.Builder builder = new FileHandle.Builder(tmpFile.getPath()); + FileHandle fh = builder.complete(); + RandomAccessReader r = fh.createReader()) + { + assertEquals(lessThenBuffer.length + biggerThenBuffer.length, r.length()); + } } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/9484783a/test/unit/org/apache/cassandra/io/util/FileSegmentInputStreamTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/io/util/FileSegmentInputStreamTest.java b/test/unit/org/apache/cassandra/io/util/FileSegmentInputStreamTest.java index fcee9b7..b040d27 100644 --- a/test/unit/org/apache/cassandra/io/util/FileSegmentInputStreamTest.java +++ b/test/unit/org/apache/cassandra/io/util/FileSegmentInputStreamTest.java @@ -88,44 +88,56 @@ public class FileSegmentInputStreamTest @Test(expected = UnsupportedOperationException.class) public void testMarkNotSupported() throws Exception { - FileSegmentInputStream reader = new FileSegmentInputStream(allocateBuffer(1024), "", 0); - assertFalse(reader.markSupported()); - assertEquals(0, reader.bytesPastMark(null)); - reader.mark(); + try (FileSegmentInputStream reader = new FileSegmentInputStream(allocateBuffer(1024), "", 0)) + { + assertFalse(reader.markSupported()); + assertEquals(0, reader.bytesPastMark(null)); + reader.mark(); + } } @Test(expected = UnsupportedOperationException.class) public void testResetNotSupported() throws Exception { - FileSegmentInputStream reader = new FileSegmentInputStream(allocateBuffer(1024), "", 0); - reader.reset(null); + try (FileSegmentInputStream reader = new FileSegmentInputStream(allocateBuffer(1024), "", 0)) + { + reader.reset(null); + } } @Test(expected = IllegalArgumentException.class) public void testSeekNegative() throws Exception { - FileSegmentInputStream reader = new FileSegmentInputStream(allocateBuffer(1024), "", 0); - reader.seek(-1); + try (FileSegmentInputStream reader = new FileSegmentInputStream(allocateBuffer(1024), "", 0)) + { + reader.seek(-1); + } } @Test(expected = IllegalArgumentException.class) public void testSeekBeforeOffset() throws Exception { - FileSegmentInputStream reader = new FileSegmentInputStream(allocateBuffer(1024), "", 1024); - reader.seek(1023); + try (FileSegmentInputStream reader = new FileSegmentInputStream(allocateBuffer(1024), "", 1024)) + { + reader.seek(1023); + } } @Test(expected = IllegalArgumentException.class) public void testSeekPastLength() throws Exception { - FileSegmentInputStream reader = new FileSegmentInputStream(allocateBuffer(1024), "", 1024); - reader.seek(2049); + try (FileSegmentInputStream reader = new FileSegmentInputStream(allocateBuffer(1024), "", 1024)) + { + reader.seek(2049); + } } @Test(expected = EOFException.class) public void testReadBytesTooMany() throws Exception { - FileSegmentInputStream reader = new FileSegmentInputStream(allocateBuffer(1024), "", 1024); - ByteBufferUtil.read(reader, 2049); + try (FileSegmentInputStream reader = new FileSegmentInputStream(allocateBuffer(1024), "", 1024)) + { + ByteBufferUtil.read(reader, 2049); + } } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/9484783a/test/unit/org/apache/cassandra/io/util/FileUtilsTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/io/util/FileUtilsTest.java b/test/unit/org/apache/cassandra/io/util/FileUtilsTest.java index 09612c8..0e7d8c8 100644 --- a/test/unit/org/apache/cassandra/io/util/FileUtilsTest.java +++ b/test/unit/org/apache/cassandra/io/util/FileUtilsTest.java @@ -97,9 +97,8 @@ public class FileUtilsTest private File createFile(File file, long size) { - try + try (RandomAccessFile f = new RandomAccessFile(file, "rw")) { - RandomAccessFile f = new RandomAccessFile(file, "rw"); f.setLength(size); } catch (Exception e) http://git-wip-us.apache.org/repos/asf/cassandra/blob/9484783a/test/unit/org/apache/cassandra/service/ProtocolBetaVersionTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/service/ProtocolBetaVersionTest.java b/test/unit/org/apache/cassandra/service/ProtocolBetaVersionTest.java index 7eae7bb..238c2f9 100644 --- a/test/unit/org/apache/cassandra/service/ProtocolBetaVersionTest.java +++ b/test/unit/org/apache/cassandra/service/ProtocolBetaVersionTest.java @@ -69,9 +69,8 @@ public class ProtocolBetaVersionTest extends CQLTester @Test public void unforcedProtocolVersionTest() throws Exception { - try + try (SimpleClient client = new SimpleClient(nativeAddr.getHostAddress(), nativePort, Server.BETA_VERSION, false, new EncryptionOptions.ClientEncryptionOptions())) { - SimpleClient client = new SimpleClient(nativeAddr.getHostAddress(), nativePort, Server.BETA_VERSION, false, new EncryptionOptions.ClientEncryptionOptions()); client.connect(false); fail("Exception should have been thrown"); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/9484783a/test/unit/org/apache/cassandra/utils/KeyGenerator.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/utils/KeyGenerator.java b/test/unit/org/apache/cassandra/utils/KeyGenerator.java index 8a9d8b8..df95867 100644 --- a/test/unit/org/apache/cassandra/utils/KeyGenerator.java +++ b/test/unit/org/apache/cassandra/utils/KeyGenerator.java @@ -24,7 +24,8 @@ import java.util.Random; public class KeyGenerator { - private static ByteBuffer randomKey(Random r) { + private static ByteBuffer randomKey(Random r) + { byte[] bytes = new byte[48]; r.nextBytes(bytes); return ByteBuffer.wrap(bytes); @@ -35,31 +36,37 @@ public class KeyGenerator int i, n, seed; Random random; - RandomStringGenerator(int seed, int n) { + RandomStringGenerator(int seed, int n) + { i = 0; this.seed = seed; this.n = n; reset(); } - public int size() { + public int size() + { return n; } - public void reset() { + public void reset() + { random = new Random(seed); } - public boolean hasNext() { + public boolean hasNext() + { return i < n; } - public ByteBuffer next() { + public ByteBuffer next() + { i++; return randomKey(random); } - public void remove() { + public void remove() + { throw new UnsupportedOperationException(); } } @@ -68,33 +75,40 @@ public class KeyGenerator { private int i, start, n; - IntGenerator(int n) { + IntGenerator(int n) + { this(0, n); } - IntGenerator(int start, int n) { + IntGenerator(int start, int n) + { this.start = start; this.n = n; reset(); } - public int size() { + public int size() + { return n - start; } - public void reset() { + public void reset() + { i = start; } - public boolean hasNext() { + public boolean hasNext() + { return i < n; } - public ByteBuffer next() { + public ByteBuffer next() + { return ByteBufferUtil.bytes(Integer.toString(i++)); } - public void remove() { + public void remove() + { throw new UnsupportedOperationException(); } } @@ -103,14 +117,18 @@ public class KeyGenerator { static int WORDS; - static { - try { - BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("/usr/share/dict/words"))); - while (br.ready()) { + static + { + try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("/usr/share/dict/words")))) + { + while (br.ready()) + { br.readLine(); WORDS++; } - } catch (IOException e) { + } + catch (IOException e) + { WORDS = 0; } } @@ -120,50 +138,67 @@ public class KeyGenerator private int skip; byte[] next; - WordGenerator(int skip, int modulo) { + WordGenerator(int skip, int modulo) + { this.skip = skip; this.modulo = modulo; reset(); } - public int size() { + public int size() + { return (1 + WORDS - skip) / modulo; } - public void reset() { - try { + public void reset() + { + try + { reader = new BufferedReader(new InputStreamReader(new FileInputStream("/usr/share/dict/words"))); - } catch (FileNotFoundException e) { + } + catch (FileNotFoundException e) + { throw new RuntimeException(e); } - for (int i = 0; i < skip; i++) { - try { + for (int i = 0; i < skip; i++) + { + try + { reader.readLine(); - } catch (IOException e) { + } + catch (IOException e) + { throw new RuntimeException(e); } } next(); } - public boolean hasNext() { + public boolean hasNext() + { return next != null; } - public ByteBuffer next() { - try { + public ByteBuffer next() + { + try + { byte[] s = next; - for (int i = 0; i < modulo; i++) { + for (int i = 0; i < modulo; i++) + { String line = reader.readLine(); next = line == null ? null : line.getBytes(); } return s == null ? null : ByteBuffer.wrap(s); - } catch (IOException e) { + } + catch (IOException e) + { throw new RuntimeException(e); } } - public void remove() { + public void remove() + { throw new UnsupportedOperationException(); } }