You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kk...@apache.org on 2014/11/21 12:26:07 UTC
svn commit: r1640898 - in /tomcat/tc7.0.x/trunk: ./
test/org/apache/tomcat/util/buf/TestUtf8.java
Author: kkolinko
Date: Fri Nov 21 11:26:07 2014
New Revision: 1640898
URL: http://svn.apache.org/r1640898
Log:
Backport TestUtf8 fixes from Tomcat 8,
to enable Apache Gump to run Tomcat 7 tests with Java 8. I tested this with Java 6 and 7 as well.
Merged r1593421 from tomcat/tc8.0.x/trunk:
Testing with Java 9 early access.
UTF-8 issues resolved.
Merged r1636525 from tomcat/tc8.0.x/trunk:
Update UTF-8 test to take account of recent(ish) Java 8 fixes for UTF-8.
Modified:
tomcat/tc7.0.x/trunk/ (props changed)
tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/buf/TestUtf8.java
Propchange: tomcat/tc7.0.x/trunk/
------------------------------------------------------------------------------
Merged /tomcat/trunk:r1593421,1636524
Merged /tomcat/tc8.0.x/trunk:r1636525
Modified: tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/buf/TestUtf8.java
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/buf/TestUtf8.java?rev=1640898&r1=1640897&r2=1640898&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/buf/TestUtf8.java (original)
+++ tomcat/tc7.0.x/trunk/test/org/apache/tomcat/util/buf/TestUtf8.java Fri Nov 21 11:26:07 2014
@@ -60,8 +60,8 @@ public class TestUtf8 {
private static int workAroundCount = 0;
static {
- // Future proof test and assume some UTF-8 bugs won't get fixed until
- // Java 9 or later
+ // All known issues have been fixed in Java 8
+ // https://bugs.openjdk.java.net/browse/JDK-8039751
// Base assumption in Java 7
int javaVersion = 7;
try {
@@ -70,6 +70,7 @@ public class TestUtf8 {
} catch (Exception e) {
// Ignore
}
+
Utf8TestCase testCase = null;
TEST_CASES.add(new Utf8TestCase(
@@ -97,12 +98,17 @@ public class TestUtf8 {
new int[] {0xF0, 0x90, 0x90, 0x80},
-1,
"\uD801\uDC00"));
- // JVM decoder does not report error until all 4 bytes are available
- TEST_CASES.add(new Utf8TestCase(
+ // Java 7 JVM decoder does not report error until all 4 bytes are
+ // available
+ testCase = new Utf8TestCase(
"Invalid code point - out of range",
new int[] {0x41, 0xF4, 0x90, 0x80, 0x80, 0x41},
2,
- "A\uFFFD\uFFFD\uFFFD\uFFFDA").addForJvm(ERROR_POS_PLUS2));
+ "A\uFFFD\uFFFD\uFFFD\uFFFDA");
+ if (javaVersion < 8) {
+ testCase.addForJvm(ERROR_POS_PLUS2);
+ }
+ TEST_CASES.add(testCase);
// Java 7 JVM decoder does not report error until all 2 bytes are available
testCase = new Utf8TestCase(
@@ -126,12 +132,18 @@ public class TestUtf8 {
}
TEST_CASES.add(testCase);
- // JVM decoder does not report error until all 4 bytes are available
- TEST_CASES.add(new Utf8TestCase(
+ // Java 7 JVM decoder does not report error until all 4 bytes are
+ // available
+ testCase = new Utf8TestCase(
"Valid sequence padded from one byte to four",
new int[] {0x41, 0xF0, 0x80, 0x80, 0xC1, 0x41},
2,
- "A\uFFFD\uFFFD\uFFFD\uFFFDA").addForJvm(ERROR_POS_PLUS2));
+ "A\uFFFD\uFFFD\uFFFD\uFFFDA");
+ if (javaVersion < 8) {
+ testCase.addForJvm(ERROR_POS_PLUS2);
+ }
+ TEST_CASES.add(testCase);
+
TEST_CASES.add(new Utf8TestCase(
"Invalid one byte 1111 1111",
new int[] {0x41, 0xFF, 0x41},
@@ -334,26 +346,46 @@ public class TestUtf8 {
new int[] {0x61, 0xE1, 0x80, 0xC0, 0x61},
3,
"a\uFFFD\uFFFDa"));
- TEST_CASES.add(new Utf8TestCase(
+ testCase = new Utf8TestCase(
"Four bytes, U+0000 zero-padded",
new int[] {0x61, 0xF0, 0x80, 0x80, 0x80, 0x61},
2,
- "a\uFFFD\uFFFD\uFFFD\uFFFDa").addForJvm(ERROR_POS_PLUS2));
- TEST_CASES.add(new Utf8TestCase(
+ "a\uFFFD\uFFFD\uFFFD\uFFFDa");
+ if (javaVersion < 8) {
+ testCase.addForJvm(ERROR_POS_PLUS2);
+ }
+ TEST_CASES.add(testCase);
+
+ testCase = new Utf8TestCase(
"Four bytes, U+007F zero-padded",
new int[] {0x61, 0xF0, 0x80, 0x81, 0xBF, 0x61},
2,
- "a\uFFFD\uFFFD\uFFFD\uFFFDa").addForJvm(ERROR_POS_PLUS2));
- TEST_CASES.add(new Utf8TestCase(
+ "a\uFFFD\uFFFD\uFFFD\uFFFDa");
+ if (javaVersion < 8) {
+ testCase.addForJvm(ERROR_POS_PLUS2);
+ }
+ TEST_CASES.add(testCase);
+
+ testCase = new Utf8TestCase(
"Four bytes, U+07FF zero-padded",
new int[] {0x61, 0xF0, 0x80, 0x9F, 0xBF, 0x61},
2,
- "a\uFFFD\uFFFD\uFFFD\uFFFDa").addForJvm(ERROR_POS_PLUS2));
- TEST_CASES.add(new Utf8TestCase(
+ "a\uFFFD\uFFFD\uFFFD\uFFFDa");
+ if (javaVersion < 8) {
+ testCase.addForJvm(ERROR_POS_PLUS2);
+ }
+ TEST_CASES.add(testCase);
+
+ testCase = new Utf8TestCase(
"Four bytes, U+FFFF zero-padded",
new int[] {0x61, 0xF0, 0x8F, 0xBF, 0xBF, 0x61},
2,
- "a\uFFFD\uFFFD\uFFFD\uFFFDa").addForJvm(ERROR_POS_PLUS2));
+ "a\uFFFD\uFFFD\uFFFD\uFFFDa");
+ if (javaVersion < 8) {
+ testCase.addForJvm(ERROR_POS_PLUS2);
+ }
+ TEST_CASES.add(testCase);
+
TEST_CASES.add(new Utf8TestCase(
"Four bytes, all 1's",
new int[] {0x61, 0xFF, 0xFF, 0xFF, 0xFF, 0x61},
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org