Author: jbellis Date: Thu Aug 5 23:31:00 2010 New Revision: 982829 URL: http://svn.apache.org/viewvc?rev=982829&view=rev Log: improve BufferedRandomAccessFileTest coverage to 100% of lines. patch by Jon Hermes; reviewed by jbellis for CASSANDRA-1269
Modified: cassandra/trunk/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java Modified: cassandra/trunk/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java?rev=982829&r1=982828&r2=982829&view=diff ============================================================================== --- cassandra/trunk/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java (original) +++ cassandra/trunk/test/unit/org/apache/cassandra/io/util/BufferedRandomAccessFileTest.java Thu Aug 5 23:31:00 2010 @@ -70,7 +70,7 @@ public class BufferedRandomAccessFileTes } @Test - public void testReadsOnCapacity() throws IOException + public void testReadsAndWriteOnCapacity() throws IOException { File tmpFile = File.createTempFile("readtest", "bin"); BufferedRandomAccessFile rw = new BufferedRandomAccessFile(tmpFile, "rw"); @@ -78,7 +78,6 @@ public class BufferedRandomAccessFileTes // Fully write the file and sync.. byte[] in = new byte[BufferedRandomAccessFile.BuffSz_]; rw.write(in); - rw.sync(); // Read it into a same size array. byte[] out = new byte[BufferedRandomAccessFile.BuffSz_]; @@ -86,11 +85,17 @@ public class BufferedRandomAccessFileTes // We're really at the end. long rem = rw.bytesRemaining(); + assert rw.isEOF(); assert rem == 0 : "BytesRemaining should be 0 but it's " + rem; // Cannot read any more. int negone = rw.read(); assert negone == -1 : "We read past the end of the file, should have gotten EOF -1. Instead, " + negone; + + // Writing will succeed + rw.write(new byte[BufferedRandomAccessFile.BuffSz_]); + // Forcing a rebuffer here + rw.write(42); } protected void expectException(int size, int offset, int len, BufferedRandomAccessFile braf) @@ -140,11 +145,22 @@ public class BufferedRandomAccessFileTes { File tmpFile = File.createTempFile("overflowtest", "bin"); tmpFile.deleteOnExit(); - BufferedRandomAccessFile rw = new BufferedRandomAccessFile(tmpFile, "rw"); + + // Create the BRAF by filename instead of by file. + BufferedRandomAccessFile rw = new BufferedRandomAccessFile(tmpFile.getPath(), "rw"); + assert tmpFile.getPath().equals(rw.getPath()); + + // Create a mark and move the rw there. FileMark mark = rw.mark(); - rw.seek(4L*1024L*1024L*1024L*1024L); //seek 4gb + rw.reset(mark); - //Expect this call to fail, because the distance from mark to current file pointer > 2gb. + // Expect this call to succeed. int bpm = rw.bytesPastMark(mark); + + // Seek 4gb + rw.seek(4L*1024L*1024L*1024L*1024L); + + // Expect this call to fail -- the distance from mark to current file pointer > 2gb. + bpm = rw.bytesPastMark(mark); } }