You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by od...@apache.org on 2008/01/31 15:43:52 UTC

svn commit: r617144 - /harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/String2Test.java

Author: odeakin
Date: Thu Jan 31 06:43:46 2008
New Revision: 617144

URL: http://svn.apache.org/viewvc?rev=617144&view=rev
Log:
Update test to handle getBytes() return values on EBCDIC platforms.

Modified:
    harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/String2Test.java

Modified: harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/String2Test.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/String2Test.java?rev=617144&r1=617143&r2=617144&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/String2Test.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/test/api/common/org/apache/harmony/luni/tests/java/lang/String2Test.java Thu Jan 31 06:43:46 2008
@@ -19,6 +19,7 @@
 
 import java.io.UnsupportedEncodingException;
 import java.util.Locale;
+import java.nio.charset.Charset;
 
 public class String2Test extends junit.framework.TestCase {
 
@@ -340,9 +341,20 @@
     public void test_getBytes() {
         // Test for method byte [] java.lang.String.getBytes()
         byte[] sbytes = hw1.getBytes();
-        for (int i = 0; i < hw1.length(); i++)
-            assertTrue("Returned incorrect bytes", sbytes[i] == (byte) hw1
-                    .charAt(i));
+
+        boolean isEbcdic = Charset.defaultCharset().equals(Charset.forName("IBM1047"));
+        if (!isEbcdic) {
+            for (int i = 0; i < hw1.length(); i++)
+                assertTrue("Returned incorrect bytes", sbytes[i] == (byte) hw1
+                        .charAt(i));
+        } else {
+            // On EBCDIC platforms, getBytes() returns different values
+            // Reference values taken from J9 5.0
+            byte[] expectedValues = {-56, -123, -109, -109, -106, -26, -106,
+                -103, -109, -124};
+            for (int i = 0; i < hw1.length(); i++)
+                assertEquals(expectedValues[i], sbytes[i]);
+        }
 
         char[] chars = new char[1];
         for (int i = 0; i < 65536; i++) {
@@ -418,7 +430,17 @@
         // int)
         byte[] buf = new byte[5];
         "Hello World".getBytes(6, 11, buf, 0);
-        assertEquals("Returned incorrect bytes", "World", new String(buf));
+
+        boolean isEbcdic = Charset.defaultCharset().equals(Charset.forName("IBM1047"));
+        if (!isEbcdic) {
+            assertEquals("Returned incorrect bytes", "World", new String(buf));
+        } else {
+            // On EBCDIC platforms, getBytes() returns different values
+            // Reference values taken from J9 5.0
+            byte[] expectedValues = {87, 111, 114, 108, 100};
+            for (int i = 0; i < 5; i++)
+                assertEquals(expectedValues[i], buf[i]);
+        }
 
         try {
             "Hello World".getBytes(-1, 1, null, 0);