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

Reply via email to