harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kevin Zhou <zhoukevi...@gmail.com>
Subject Re: svn commit: r799505 - /harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/net/SocketTest.java
Date Sun, 02 Aug 2009 03:40:48 GMT
Hi Nathan,

OK. I make a new patch according to your requirements. Please help to review
and check it. It passes on z/OS.

Index:
src/test/api/common/org/apache/harmony/luni/tests/java/net/SocketTest.java
===================================================================
---
src/test/api/common/org/apache/harmony/luni/tests/java/net/SocketTest.java
(revision 799973)
+++
src/test/api/common/org/apache/harmony/luni/tests/java/net/SocketTest.java
(working copy)
@@ -35,6 +35,7 @@
 import java.net.SocketTimeoutException;
 import java.net.UnknownHostException;
 import java.security.Permission;
+import java.util.Arrays;
 import java.util.Locale;

 import org.apache.harmony.luni.net.PlainSocketImpl;
@@ -1506,13 +1507,13 @@
         OutputStream theOutput = worker.getOutputStream();

         // Send the regular data
-        String sendString = new String("Test");
-        theOutput.write(sendString.getBytes());
+        byte[] sendBytes = new String("Test").getBytes();
+        theOutput.write(sendBytes);
         theOutput.flush();

         // Send the urgent data byte which should not be received
         worker.sendUrgentData("UrgentData".getBytes()[0]);
-        theOutput.write(sendString.getBytes());
+        theOutput.write(sendBytes);
         worker.shutdownOutput();
         worker.close();

@@ -1532,10 +1533,17 @@
         client.close();
         server.close();

-        String receivedString = new String(myBytes, 0, totalBytesRead);
-        assertEquals("Urgent data was received", sendString + sendString,
-                receivedString);
+        byte[] expectBytes = new byte[2 * sendBytes.length];
+        System.arraycopy(sendBytes, 0, expectBytes, 0, sendBytes.length);
+        System.arraycopy(sendBytes, 0, expectBytes, sendBytes.length,
+                sendBytes.length);

+        byte[] resultBytes = new byte[totalBytesRead];
+        System.arraycopy(myBytes, 0, resultBytes, 0, totalBytesRead);
+
+        assertTrue("Urgent data was received", Arrays.equals(expectBytes,
+                resultBytes));
+
         /*
          * Test 2: Now validate that urgent data is received as expected.
Expect
          * that it should be between the two writes.
@@ -1552,8 +1560,8 @@
         theOutput = worker.getOutputStream();

         // Send the regular data
-        sendString = new String("Test - Urgent Data");
-        theOutput.write(sendString.getBytes());
+        sendBytes = new String("Test - Urgent Data").getBytes();
+        theOutput.write(sendBytes);

         // Send the urgent data (one byte) which should be received
         client.setOOBInline(true);
@@ -1561,7 +1569,7 @@
         worker.sendUrgentData(urgentByte);

         // Send more data, the urgent byte must stay in position
-        theOutput.write(sendString.getBytes());
+        theOutput.write(sendBytes);
         worker.shutdownOutput();
         worker.close();

@@ -1581,12 +1589,18 @@
         client.close();
         server.close();

-        receivedString = new String(myBytes, 0, totalBytesRead);
-        assertEquals(
-                "Urgent data was not received with one urgent byte",
-                sendString + new String(new byte[] { urgentByte }) +
sendString,
-                receivedString);
+        expectBytes = new byte[2 * sendBytes.length + 1];
+        System.arraycopy(sendBytes, 0, expectBytes, 0, sendBytes.length);
+        expectBytes[sendBytes.length] = urgentByte;
+        System.arraycopy(sendBytes, 0, expectBytes, sendBytes.length + 1,
+                sendBytes.length);

+        resultBytes = new byte[totalBytesRead];
+        System.arraycopy(myBytes, 0, resultBytes, 0, totalBytesRead);
+
+        assertTrue("Urgent data was not received with one urgent byte",
Arrays
+                .equals(expectBytes, resultBytes));
+
         /*
          * Test 3: Now validate that urgent data is received as expected.
Expect
          * that it should be between the two writes.
@@ -1603,8 +1617,8 @@
         theOutput = worker.getOutputStream();

         // Send the regular data
-        sendString = new String("Test - Urgent Data");
-        theOutput.write(sendString.getBytes());
+        sendBytes = new String("Test - Urgent Data").getBytes();
+        theOutput.write(sendBytes);

         // Send the urgent data (one byte) which should be received
         client.setOOBInline(true);
@@ -1614,7 +1628,7 @@
         worker.sendUrgentData(urgentByte2);

         // Send more data, the urgent byte must stay in position
-        theOutput.write(sendString.getBytes());
+        theOutput.write(sendBytes);
         worker.shutdownOutput();
         worker.close();

@@ -1634,12 +1648,19 @@
         client.close();
         server.close();

-        receivedString = new String(myBytes, 0, totalBytesRead);
-        assertEquals("Urgent data was not received with two urgent bytes",
-                sendString
-                        + new String(new byte[] { urgentByte1, urgentByte2
})
-                        + sendString, receivedString);
+        expectBytes = new byte[2 * sendBytes.length + 2];
+        System.arraycopy(sendBytes, 0, expectBytes, 0, sendBytes.length);
+        expectBytes[sendBytes.length] = urgentByte1;
+        expectBytes[sendBytes.length + 1] = urgentByte2;
+        System.arraycopy(sendBytes, 0, expectBytes, sendBytes.length + 2,
+                sendBytes.length);

+        resultBytes = new byte[totalBytesRead];
+        System.arraycopy(myBytes, 0, resultBytes, 0, totalBytesRead);
+
+        assertTrue("Urgent data was not received with two urgent bytes",
Arrays
+                .equals(expectBytes, resultBytes));
+
         /*
          * Test 4: Now test the case where there is only urgent data.
          */

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message