This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 7096ed4f67b09b5bfce3bfeffd56ca71a82a54f8 Author: Mark Thomas <ma...@apache.org> AuthorDate: Fri Jan 17 18:35:15 2025 +0000 Improve EL Identifier tests Test valid and non-valid characters. Tests can only run on versions of Java that have the same definition of identifier as Java 11 (only Java 11). --- test/org/apache/el/parser/TestAstIdentifier.java | 33 +++++++++++++++++++++- .../el/parser/TesterGenerateIdentifierRanges.java | 3 ++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/test/org/apache/el/parser/TestAstIdentifier.java b/test/org/apache/el/parser/TestAstIdentifier.java index 28f37cabb0..4439815e35 100644 --- a/test/org/apache/el/parser/TestAstIdentifier.java +++ b/test/org/apache/el/parser/TestAstIdentifier.java @@ -17,11 +17,13 @@ package org.apache.el.parser; import jakarta.el.ELContext; +import jakarta.el.ELException; import jakarta.el.ELProcessor; import jakarta.el.ExpressionFactory; import jakarta.el.ValueExpression; import org.junit.Assert; +import org.junit.Assume; import org.junit.Test; import org.apache.jasper.el.ELContextImpl; @@ -52,9 +54,24 @@ public class TestAstIdentifier { @Test public void testIdentifierStart() { + /* + * This test only works on Java 11. + * + * Java 11 is the minimum Java version for Tomcat 10. + * + * In Java 12, the definition of Java Letter and/or Java Digit has changed. + */ + Assume.assumeTrue(Integer.valueOf(11).equals(Runtime.version().version().get(0))); for (int i = 0; i < 0xFFFF; i++) { if (Character.isJavaIdentifierStart(i)) { testIdentifier((char) i, 'b'); + } else { + try { + testIdentifier((char) i, 'b'); + } catch (ELException e) { + continue; + } + Assert.fail("Expected EL exception for [" + i + "], [" + (char) i + "]"); } } } @@ -62,9 +79,24 @@ public class TestAstIdentifier { @Test public void testIdentifierPart() { + /* + * This test only works on Java 11. + * + * Java 11 is the minimum Java version for Tomcat 10. + * + * In Java 12, the definition of Java Letter and/or Java Digit has changed. + */ + Assume.assumeTrue(Integer.valueOf(11).equals(Runtime.version().version().get(0))); for (int i = 0; i < 0xFFFF; i++) { if (Character.isJavaIdentifierPart(i)) { testIdentifier('b', (char) i); + } else { + try { + testIdentifier((char) i, 'b'); + } catch (ELException e) { + continue; + } + Assert.fail("Expected EL exception for [" + i + "], [" + (char) i + "]"); } } } @@ -84,7 +116,6 @@ public class TestAstIdentifier { try { ve = factory.createValueExpression(context, "${" + identifier + "}", String.class); } catch (Exception e) { - System.out.println("" + (int) one + " " + (int) two); throw e; } diff --git a/test/org/apache/el/parser/TesterGenerateIdentifierRanges.java b/test/org/apache/el/parser/TesterGenerateIdentifierRanges.java index f692344e3f..92c3c85472 100644 --- a/test/org/apache/el/parser/TesterGenerateIdentifierRanges.java +++ b/test/org/apache/el/parser/TesterGenerateIdentifierRanges.java @@ -21,6 +21,9 @@ import org.junit.Test; /* * The purpose of this class is to generate the ranges used in the JavaCC grammar for EL parsing. * + * The ranges for Tomcat 10 were generated with Java 11. + * + * The generated ranges change in Java 12. */ public class TesterGenerateIdentifierRanges { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org