You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by br...@apache.org on 2010/03/27 00:30:35 UTC
svn commit: r928100 - in /incubator/thrift/trunk/lib/java: ./
test/org/apache/thrift/test/transport/ test/org/apache/thrift/transport/
Author: bryanduxbury
Date: Fri Mar 26 23:30:35 2010
New Revision: 928100
URL: http://svn.apache.org/viewvc?rev=928100&view=rev
Log:
java: convert Framed Transport test to JUnit, remove old version of test
Added:
incubator/thrift/trunk/lib/java/test/org/apache/thrift/transport/
incubator/thrift/trunk/lib/java/test/org/apache/thrift/transport/ReadCountingTransport.java
incubator/thrift/trunk/lib/java/test/org/apache/thrift/transport/TestTFramedTransport.java
incubator/thrift/trunk/lib/java/test/org/apache/thrift/transport/WriteCountingTransport.java
Removed:
incubator/thrift/trunk/lib/java/test/org/apache/thrift/test/transport/
Modified:
incubator/thrift/trunk/lib/java/build.xml
Modified: incubator/thrift/trunk/lib/java/build.xml
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/java/build.xml?rev=928100&r1=928099&r2=928100&view=diff
==============================================================================
--- incubator/thrift/trunk/lib/java/build.xml (original)
+++ incubator/thrift/trunk/lib/java/build.xml Fri Mar 26 23:30:35 2010
@@ -209,8 +209,6 @@
classpathref="test.classpath" failonerror="true" />
<java classname="org.apache.thrift.test.PartialDeserializeTest"
classpathref="test.classpath" failonerror="true" />
- <java classname="org.apache.thrift.test.transport.TFramedTransportTest"
- classpathref="test.classpath" failonerror="true" />
</target>
<target name="test" description="Run the full test suite" depends="junit-test,deprecated-test"/>
Added: incubator/thrift/trunk/lib/java/test/org/apache/thrift/transport/ReadCountingTransport.java
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/java/test/org/apache/thrift/transport/ReadCountingTransport.java?rev=928100&view=auto
==============================================================================
--- incubator/thrift/trunk/lib/java/test/org/apache/thrift/transport/ReadCountingTransport.java (added)
+++ incubator/thrift/trunk/lib/java/test/org/apache/thrift/transport/ReadCountingTransport.java Fri Mar 26 23:30:35 2010
@@ -0,0 +1,34 @@
+/**
+ *
+ */
+package org.apache.thrift.transport;
+
+import org.apache.thrift.transport.TTransport;
+import org.apache.thrift.transport.TTransportException;
+
+public class ReadCountingTransport extends TTransport {
+ public int readCount = 0;
+ private TTransport trans;
+
+ public ReadCountingTransport(TTransport underlying) {
+ trans = underlying;
+ }
+
+ @Override
+ public void close() {}
+
+ @Override
+ public boolean isOpen() {return true;}
+
+ @Override
+ public void open() throws TTransportException {}
+
+ @Override
+ public int read(byte[] buf, int off, int len) throws TTransportException {
+ readCount++;
+ return trans.read(buf, off, len);
+ }
+
+ @Override
+ public void write(byte[] buf, int off, int len) throws TTransportException {}
+}
\ No newline at end of file
Added: incubator/thrift/trunk/lib/java/test/org/apache/thrift/transport/TestTFramedTransport.java
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/java/test/org/apache/thrift/transport/TestTFramedTransport.java?rev=928100&view=auto
==============================================================================
--- incubator/thrift/trunk/lib/java/test/org/apache/thrift/transport/TestTFramedTransport.java (added)
+++ incubator/thrift/trunk/lib/java/test/org/apache/thrift/transport/TestTFramedTransport.java Fri Mar 26 23:30:35 2010
@@ -0,0 +1,93 @@
+package org.apache.thrift.transport;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.util.Arrays;
+
+import junit.framework.TestCase;
+
+public class TestTFramedTransport extends TestCase {
+
+ private static byte[] byteSequence(int start, int end) {
+ byte[] result = new byte[end-start+1];
+ for (int i = 0; i <= (end-start); i++) {
+ result[i] = (byte)(start+i);
+ }
+ return result;
+ }
+
+ public void testRead() throws IOException, TTransportException {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ DataOutputStream dos = new DataOutputStream(baos);
+ dos.writeInt(50);
+ dos.write(byteSequence(0, 49));
+
+ TMemoryBuffer membuf = new TMemoryBuffer(0);
+ membuf.write(baos.toByteArray());
+
+ ReadCountingTransport countTrans = new ReadCountingTransport(membuf);
+ TFramedTransport trans = new TFramedTransport(countTrans);
+
+ byte[] readBuf = new byte[10];
+ trans.read(readBuf, 0, 10);
+ assertTrue(Arrays.equals(readBuf, byteSequence(0,9)));
+
+ trans.read(readBuf, 0, 10);
+ assertTrue(Arrays.equals(readBuf, byteSequence(10,19)));
+
+ assertEquals(2, countTrans.readCount);
+ }
+
+ public void testWrite() throws TTransportException, IOException {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ WriteCountingTransport countingTrans = new WriteCountingTransport(new TIOStreamTransport(baos));
+ TTransport trans = new TFramedTransport(countingTrans);
+
+ trans.write(byteSequence(0,100));
+ assertEquals(0, countingTrans.writeCount);
+ trans.write(byteSequence(101,200));
+ trans.write(byteSequence(201,255));
+ assertEquals(0, countingTrans.writeCount);
+
+ trans.flush();
+ assertEquals(2, countingTrans.writeCount);
+
+ DataInputStream din = new DataInputStream(new ByteArrayInputStream(baos.toByteArray()));
+ assertEquals(256, din.readInt());
+
+ byte[] buf = new byte[256];
+ din.read(buf, 0, 256);
+ assertTrue(Arrays.equals(byteSequence(0,255), buf));
+ }
+
+ public void testDirectRead() throws IOException, TTransportException {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ DataOutputStream dos = new DataOutputStream(baos);
+ dos.writeInt(50);
+ dos.write(byteSequence(0, 49));
+
+ TMemoryBuffer membuf = new TMemoryBuffer(0);
+ membuf.write(baos.toByteArray());
+
+ ReadCountingTransport countTrans = new ReadCountingTransport(membuf);
+ TFramedTransport trans = new TFramedTransport(countTrans);
+
+ assertEquals(0, trans.getBytesRemainingInBuffer());
+
+ byte[] readBuf = new byte[10];
+ trans.read(readBuf, 0, 10);
+ assertTrue(Arrays.equals(readBuf, byteSequence(0,9)));
+
+ assertEquals(40, trans.getBytesRemainingInBuffer());
+ assertEquals(10, trans.getBufferPosition());
+
+ trans.consumeBuffer(5);
+ assertEquals(35, trans.getBytesRemainingInBuffer());
+ assertEquals(15, trans.getBufferPosition());
+
+ assertEquals(2, countTrans.readCount);
+ }
+}
Added: incubator/thrift/trunk/lib/java/test/org/apache/thrift/transport/WriteCountingTransport.java
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/java/test/org/apache/thrift/transport/WriteCountingTransport.java?rev=928100&view=auto
==============================================================================
--- incubator/thrift/trunk/lib/java/test/org/apache/thrift/transport/WriteCountingTransport.java (added)
+++ incubator/thrift/trunk/lib/java/test/org/apache/thrift/transport/WriteCountingTransport.java Fri Mar 26 23:30:35 2010
@@ -0,0 +1,34 @@
+
+package org.apache.thrift.transport;
+
+import org.apache.thrift.transport.TTransport;
+import org.apache.thrift.transport.TTransportException;
+
+public class WriteCountingTransport extends TTransport {
+ public int writeCount = 0;
+ private final TTransport trans;
+
+ public WriteCountingTransport(TTransport underlying) {
+ trans = underlying;
+ }
+
+ @Override
+ public void close() {}
+
+ @Override
+ public boolean isOpen() {return true;}
+
+ @Override
+ public void open() throws TTransportException {}
+
+ @Override
+ public int read(byte[] buf, int off, int len) throws TTransportException {
+ return 0;
+ }
+
+ @Override
+ public void write(byte[] buf, int off, int len) throws TTransportException {
+ writeCount ++;
+ trans.write(buf, off, len);
+ }
+}
\ No newline at end of file