Author: markt
Date: Mon Mar  4 20:54:42 2013
New Revision: 1452512

URL: http://svn.apache.org/r1452512
Log:
Port the 2-byte UTF-8 unit tests to new framework

Modified:
    tomcat/trunk/test/org/apache/tomcat/util/buf/TestUtf8.java
    tomcat/trunk/test/org/apache/tomcat/util/buf/TestUtf8Extended.java

Modified: tomcat/trunk/test/org/apache/tomcat/util/buf/TestUtf8.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/buf/TestUtf8.java?rev=1452512&r1=1452511&r2=1452512&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/buf/TestUtf8.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/util/buf/TestUtf8.java Mon Mar  4 
20:54:42 2013
@@ -41,15 +41,6 @@ public class TestUtf8 {
 
     // Various invalid UTF-8 sequences
     private static final byte[][] MALFORMED = {
-            // Two-byte sequences:
-            {(byte)0xC0, (byte)0x80}, // U+0000 zero-padded
-            {(byte)0xC1, (byte)0xBF}, // U+007F zero-padded
-            {(byte)0xFF, (byte)0xFF}, // all ones
-            {(byte)0xE0, (byte)0x80}, // 111x first byte first nibble
-            {(byte)0xA0, (byte)0x80}, // 101x first byte first nibble
-            {(byte)0xC2, (byte)0x00}, // invalid second byte
-            {(byte)0xC2, (byte)0xC0}, // invalid second byte
-
             // Three-byte sequences
             {(byte)0xE0, (byte)0x80, (byte)0x80 }, // U+0000 zero-padded
             {(byte)0xE0, (byte)0x81, (byte)0xBF }, // U+007F zero-padded
@@ -86,10 +77,6 @@ public class TestUtf8 {
 
     // Expected result after UTF-8 decoding with replacement
     private static final String[] MALFORMED_REPLACE_UTF8 = {
-        // two byte sequences
-        "\uFFFD\uFFFD", "\uFFFD\uFFFD", "\uFFFD\uFFFD", "\uFFFD\uFFFD",
-        "\uFFFD\uFFFD", "\uFFFD\u0000", "\uFFFD\uFFFD",
-
         // three byte sequences
         "\uFFFD\uFFFD\uFFFD", "\uFFFD\uFFFD\uFFFD", "\uFFFD\uFFFD\uFFFD",
         "\uFFFD\uFFFD\uFFFD", "\uFFFD\uFFFD\uFFFD", "\uFFFD\uFFFD\uFFFD",
@@ -204,7 +191,7 @@ public class TestUtf8 {
             // Known failures
             // JVM UTF-8 decoder spots invalid sequences but not if they occur
             // at the end of the input and endOfInput is not true
-            if (i == 3 || i == 11 | i == 19) {
+            if (i == 4 | i == 12) {
                 doJvmDecoder(MALFORMED[i], false, false, -1);
             } else {
                 doJvmDecoder(MALFORMED[i], false, true, -1);
@@ -258,8 +245,8 @@ public class TestUtf8 {
             // In all other cases first invalid byte is replaced and processing
             // continues as if the next byte is the start of a new sequence
             // This does not happen for these tests
-            if (i == 3 | i == 11 | i == 19 | i == 23 | i == 24 | i == 25 |
-                    i == 26 | i == 27 | i == 28 | i == 29 | i == 30) {
+            if (i == 4 | i == 12 | i == 16 | i == 17 | i == 18 | i == 19 |
+                    i == 20 | i == 21 | i == 22 | i == 23) {
                 expected = "\uFFFD";
             } else {
                 expected = MALFORMED_REPLACE_UTF8[i];

Modified: tomcat/trunk/test/org/apache/tomcat/util/buf/TestUtf8Extended.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/buf/TestUtf8Extended.java?rev=1452512&r1=1452511&r2=1452512&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/buf/TestUtf8Extended.java 
(original)
+++ tomcat/trunk/test/org/apache/tomcat/util/buf/TestUtf8Extended.java Mon Mar  
4 20:54:42 2013
@@ -161,6 +161,41 @@ public class TestUtf8Extended {
                 new int[] {0x61, 0xF0, 0x61},
                 2,
                 "a\uFFFDa").addForJvm(REPLACE_SWALLOWS_TRAILER));
+        TEST_CASES.add(new Utf8TestCase(
+                "U+0000 zero-padded to two bytes",
+                new int[] {0x61, 0xC0, 0x80, 0x61},
+                1,
+                "a\uFFFD\uFFFDa").addForJvm(ERROR_POS_PLUS1));
+        TEST_CASES.add(new Utf8TestCase(
+                "U+007F zero-padded to two bytes",
+                new int[] {0x61, 0xC1, 0xBF, 0x61},
+                2,
+                "a\uFFFD\uFFFDa"));
+        TEST_CASES.add(new Utf8TestCase(
+                "Two bytes, all 1's",
+                new int[] {0x61, 0xFF, 0xFF, 0x61},
+                1,
+                "a\uFFFD\uFFFDa"));
+        TEST_CASES.add(new Utf8TestCase(
+                "Two bytes, 1110 first byte first nibble",
+                new int[] {0x61, 0xE0, 0x80, 0x61},
+                2,
+                "a\uFFFD\uFFFDa").addForJvm(ERROR_POS_PLUS1));
+        TEST_CASES.add(new Utf8TestCase(
+                "Two bytes, 101x first byte first nibble",
+                new int[] {0x61, 0xA0, 0x80, 0x61},
+                1,
+                "a\uFFFD\uFFFDa"));
+        TEST_CASES.add(new Utf8TestCase(
+                "Two bytes, invalid second byte",
+                new int[] {0x61, 0xC2, 0x00, 0x61},
+                2,
+                "a\uFFFD\u0000a"));
+        TEST_CASES.add(new Utf8TestCase(
+                "Two bytes, invalid second byte",
+                new int[] {0x61, 0xC2, 0xC0, 0x61},
+                2,
+                "a\uFFFD\uFFFDa"));
     }
 
     @Test



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to