Fix JRE tests to pass under JDK11 semantics Change-Id: Id8f5a6cd97d9eff67b593d193c431ec4ef8f134a Review-Link: https://gwt-review.googlesource.com/#/c/21960/
diff --git a/user/test/com/google/gwt/emultest/java/lang/StringTest.java b/user/test/com/google/gwt/emultest/java/lang/StringTest.java index 05c1d00..556626e 100644 --- a/user/test/com/google/gwt/emultest/java/lang/StringTest.java +++ b/user/test/com/google/gwt/emultest/java/lang/StringTest.java
@@ -690,7 +690,9 @@ try { test.regionMatches(true, -1, null, -1, -1); - fail(); + if (TestUtils.getJdkVersion() < 11) { + fail(); + } } catch (NullPointerException expected) { // NPE must be thrown before any range checks }
diff --git a/user/test/com/google/gwt/emultest/java/util/ArrayDequeTest.java b/user/test/com/google/gwt/emultest/java/util/ArrayDequeTest.java index 13e5a09..988523f 100644 --- a/user/test/com/google/gwt/emultest/java/util/ArrayDequeTest.java +++ b/user/test/com/google/gwt/emultest/java/util/ArrayDequeTest.java
@@ -19,6 +19,8 @@ import com.google.gwt.core.client.JavaScriptException; +import com.google.gwt.testing.TestUtils; + import org.apache.commons.collections.TestCollection; import java.util.ArrayDeque; @@ -236,7 +238,9 @@ deque.removeLast(); try { it.next(); - fail(); + if (TestUtils.getJdkVersion() < 11) { + fail(); + } } catch (ConcurrentModificationException expected) { } deque = new ArrayDeque<>(asList(getFullNonNullElements())); @@ -260,7 +264,9 @@ deque.addLast(new Object()); try { it.next(); - fail(); + if (TestUtils.getJdkVersion() < 11) { + fail(); + } } catch (ConcurrentModificationException expected) { } deque = new ArrayDeque<>(asList(getFullNonNullElements())); @@ -282,7 +288,9 @@ deque.removeFirst(); try { it.remove(); - fail(); + if (TestUtils.getJdkVersion() < 11) { + fail(); + } } catch (ConcurrentModificationException expected) { } } @@ -299,7 +307,9 @@ deque.removeFirst(); try { it.next(); - fail(); + if (TestUtils.getJdkVersion() < 11) { + fail(); + } } catch (ConcurrentModificationException expected) { } deque = new ArrayDeque<>(asList(getFullNonNullElements())); @@ -318,7 +328,9 @@ try { it.next(); } catch (ConcurrentModificationException e) { - fail(); + if (TestUtils.getJdkVersion() < 11) { + fail(); + } } deque.addFirst(new Object()); try { @@ -345,7 +357,9 @@ deque.removeLast(); try { it.remove(); - fail(); + if (TestUtils.getJdkVersion() < 11) { + fail(); + } } catch (ConcurrentModificationException expected) { } }
diff --git a/user/test/com/google/gwt/emultest/java8/util/stream/StreamTest.java b/user/test/com/google/gwt/emultest/java8/util/stream/StreamTest.java index bfb828a..08c4c89 100644 --- a/user/test/com/google/gwt/emultest/java8/util/stream/StreamTest.java +++ b/user/test/com/google/gwt/emultest/java8/util/stream/StreamTest.java
@@ -20,6 +20,8 @@ import com.google.gwt.emultest.java.util.EmulTestBase; +import com.google.gwt.testing.TestUtils; + import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -474,6 +476,15 @@ // not called again on subsequent closes assertEquals(1, calledCount[0]); + if (TestUtils.getJdkVersion() >= 11) { + try { + s = s.onClose(() -> calledCount[0]++); + fail(); + } catch (IllegalStateException expected) { + } + return; + } + // Add a handler after close, and re-close, the handler will only go off after the _second_ // close calledCount[0] = 0;
diff --git a/user/test/com/google/gwt/testing/TestUtils.java b/user/test/com/google/gwt/testing/TestUtils.java index b1ee1ff..14af34c 100644 --- a/user/test/com/google/gwt/testing/TestUtils.java +++ b/user/test/com/google/gwt/testing/TestUtils.java
@@ -25,7 +25,6 @@ if (versionString.equals("none")) { return -1; } - return getMajorVersion(versionString); } @@ -36,6 +35,8 @@ private static int getMajorVersion(String versionString) { String[] split = versionString.split("\\."); assert split.length >= 1; - return Integer.parseInt(split[1]); + return versionString.startsWith("1.") + ? /* Java <9 format, e.g. 1.7.0 */ Integer.parseInt(split[1]) + : /* Java 9+ format, e.g. 9.1.0 */ Integer.parseInt(split[0]); } }