You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2022/08/28 13:22:27 UTC

[groovy] branch danielsun/fix-clone-array-based-on-groovy10730pr updated: Fix illegal access issues in `StreamingTemplateEngineTest`

This is an automated email from the ASF dual-hosted git repository.

sunlan pushed a commit to branch danielsun/fix-clone-array-based-on-groovy10730pr
in repository https://gitbox.apache.org/repos/asf/groovy.git


The following commit(s) were added to refs/heads/danielsun/fix-clone-array-based-on-groovy10730pr by this push:
     new 7e3812d1c3 Fix illegal access issues in `StreamingTemplateEngineTest`
7e3812d1c3 is described below

commit 7e3812d1c39df0207df9c20e230afa797530c8cf
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sun Aug 28 21:21:39 2022 +0800

    Fix illegal access issues in `StreamingTemplateEngineTest`
---
 .../groovy/text/StreamingTemplateEngineTest.groovy | 80 ++++++++++++----------
 1 file changed, 43 insertions(+), 37 deletions(-)

diff --git a/subprojects/groovy-templates/src/test/groovy/groovy/text/StreamingTemplateEngineTest.groovy b/subprojects/groovy-templates/src/test/groovy/groovy/text/StreamingTemplateEngineTest.groovy
index 78b0ed0b47..94e1273ac4 100644
--- a/subprojects/groovy-templates/src/test/groovy/groovy/text/StreamingTemplateEngineTest.groovy
+++ b/subprojects/groovy-templates/src/test/groovy/groovy/text/StreamingTemplateEngineTest.groovy
@@ -23,6 +23,8 @@ import org.junit.Test
 
 import java.util.concurrent.ConcurrentHashMap
 
+import static groovy.test.GroovyAssert.assertScript
+
 class StreamingTemplateEngineTest {
   TemplateEngine engine
   Map binding
@@ -463,48 +465,52 @@ class StreamingTemplateEngineTest {
 
   @Test
   void reuseClassLoader1() {
-    final reuseOption = 'groovy.StreamingTemplateEngine.reuseClassLoader'
-    System.setProperty(reuseOption, 'true')
+    assertScript '''
+        final reuseOption = 'groovy.StreamingTemplateEngine.reuseClassLoader'
+        System.setProperty(reuseOption, 'true')
 
-    try {
-      // reload class to initialize static field from the beginning
-      def steClass = reloadClass('groovy.text.StreamingTemplateEngine')
-
-      GroovyClassLoader gcl = new GroovyClassLoader()
-      def engine = steClass.newInstance(gcl)
-      assert 'Hello, Daniel' == engine.createTemplate('Hello, ${name}').make([name: 'Daniel']).toString()
-      assert gcl.loadedClasses.length > 0
-      def cloned = gcl.loadedClasses.clone()
-      assert 'Hello, Paul' == engine.createTemplate('Hello, ${name}').make([name: 'Paul']).toString()
-      assert cloned == gcl.loadedClasses
-    } finally {
-      System.clearProperty(reuseOption)
-    }
+        try {
+          // reload class to initialize static field from the beginning
+          def steClass = groovy.text.StreamingTemplateEngineTest.reloadClass('groovy.text.StreamingTemplateEngine')
+
+          GroovyClassLoader gcl = new GroovyClassLoader()
+          def engine = steClass.newInstance(gcl)
+          assert 'Hello, Daniel' == engine.createTemplate('Hello, ${name}').make([name: 'Daniel']).toString()
+          assert gcl.loadedClasses.length > 0
+          def cloned = gcl.loadedClasses.clone()
+          assert 'Hello, Paul' == engine.createTemplate('Hello, ${name}').make([name: 'Paul']).toString()
+          assert cloned == gcl.loadedClasses
+        } finally {
+          System.clearProperty(reuseOption)
+        }
+    '''
   }
 
   @Test
   void reuseClassLoader2() {
-    final reuseOption = 'groovy.StreamingTemplateEngine.reuseClassLoader'
-    System.setProperty(reuseOption, 'true')
-
-    try {
-      // reload class to initialize static field from the beginning
-      def steClass = reloadClass('groovy.text.StreamingTemplateEngine')
-
-      GroovyClassLoader gcl = new GroovyClassLoader()
-      def engine = steClass.newInstance(gcl)
-      assert 'Hello, Daniel' == engine.createTemplate('Hello, ${name}').make([name: 'Daniel']).toString()
-      assert gcl.loadedClasses.length > 0
-      def cloned = gcl.loadedClasses.clone()
-      engine = steClass.newInstance(gcl)
-      assert 'Hello, Paul' == engine.createTemplate('Hello, ${name}').make([name: 'Paul']).toString()
-      assert cloned == gcl.loadedClasses
-    } finally {
-      System.clearProperty(reuseOption)
-    }
-  }
-
-  private static Class reloadClass(String className) {
+    assertScript '''
+        final reuseOption = 'groovy.StreamingTemplateEngine.reuseClassLoader'
+        System.setProperty(reuseOption, 'true')
+
+        try {
+          // reload class to initialize static field from the beginning
+          def steClass = groovy.text.StreamingTemplateEngineTest.reloadClass('groovy.text.StreamingTemplateEngine')
+
+          GroovyClassLoader gcl = new GroovyClassLoader()
+          def engine = steClass.newInstance(gcl)
+          assert 'Hello, Daniel' == engine.createTemplate('Hello, ${name}').make([name: 'Daniel']).toString()
+          assert gcl.loadedClasses.length > 0
+          def cloned = gcl.loadedClasses.clone()
+          engine = steClass.newInstance(gcl)
+          assert 'Hello, Paul' == engine.createTemplate('Hello, ${name}').make([name: 'Paul']).toString()
+          assert cloned == gcl.loadedClasses
+        } finally {
+          System.clearProperty(reuseOption)
+        }
+    '''
+  }
+
+  static Class reloadClass(String className) {
     def clazz =
             new GroovyClassLoader() {
               private final Map<String, Class> loadedClasses = new ConcurrentHashMap<String, Class>()