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);
}
}