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