Author: jbellis
Date: Thu Jun 24 15:12:34 2010
New Revision: 957578
URL: http://svn.apache.org/viewvc?rev=957578&view=rev
Log:
add test for BRAF EOFException. patch by mdennis; reviewed by jbellis for
CASSANDRA-1200
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=957578&r1=957577&r2=957578&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 Jun 24 15:12:34 2010
@@ -21,13 +21,16 @@ package org.apache.cassandra.io.util;
*/
-import static org.junit.Assert.*;
-
+import java.io.EOFException;
import java.io.File;
+import java.io.FileOutputStream;
import java.io.IOException;
+import java.util.Arrays;
import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+
public class BufferedRandomAccessFileTest
{
@@ -66,4 +69,45 @@ public class BufferedRandomAccessFileTes
r.close();
}
+ protected void expectException(int size, int offset, int len,
BufferedRandomAccessFile braf)
+ {
+ boolean threw = false;
+ try
+ {
+ braf.readFully(new byte[size], offset, len);
+ }
+ catch(Throwable t)
+ {
+ assert t.getClass().equals(EOFException.class) :
t.getClass().getName() + " is not " + EOFException.class.getName();
+ threw = true;
+ }
+ assert threw : EOFException.class.getName() + " not received";
+ }
+
+ @Test
+ public void testEOF() throws Exception
+ {
+ for (String mode : Arrays.asList("r", "rw")) // read, read+write
+ {
+ for (int buf : Arrays.asList(8, 16, 32, 0)) // smaller, equal,
bigger, zero
+ {
+ for (int off : Arrays.asList(0, 8))
+ {
+ expectException(32, off, 17, new
BufferedRandomAccessFile(writeTemporaryFile(new byte[16]), mode, buf));
+ }
+ }
+ }
+ }
+
+ protected File writeTemporaryFile(byte[] data) throws Exception
+ {
+ File f = File.createTempFile("BRAFTestFile", null);
+ f.deleteOnExit();
+ FileOutputStream fout = new FileOutputStream(f);
+ fout.write(data);
+ fout.getFD().sync();
+ fout.close();
+ return f;
+ }
+
}