Mon, 25 Feb 2013 18:13:23 +0530
8008789: Enable java access and nashorn runtime tests for jtreg
Reviewed-by: lagergren, jlaskey, hannesw
1.1 --- a/make/build.xml Mon Feb 25 16:58:31 2013 +0530 1.2 +++ b/make/build.xml Mon Feb 25 18:13:23 2013 +0530 1.3 @@ -275,7 +275,7 @@ 1.4 </condition> 1.5 <fail unless="representation-ok">Representation test failed - output differs!</fail> 1.6 <fileset id="test.classes" dir="${build.test.classes.dir}"> 1.7 - <include name="**/access/*Test.class"/> 1.8 + <include name="**/api/javaaccess/*Test.class"/> 1.9 <include name="**/api/scripting/*Test.class"/> 1.10 <include name="**/codegen/*Test.class"/> 1.11 <include name="**/parser/*Test.class"/>
2.1 --- a/test/TEST.ROOT Mon Feb 25 16:58:31 2013 +0530 2.2 +++ b/test/TEST.ROOT Mon Feb 25 18:13:23 2013 +0530 2.3 @@ -4,4 +4,3 @@ 2.4 2.5 # The list of keywords supported in the entire test suite 2.6 keys=2d dnd i18n 2.7 -
3.1 --- a/test/src/jdk/nashorn/api/javaaccess/BooleanAccessTest.java Mon Feb 25 16:58:31 2013 +0530 3.2 +++ b/test/src/jdk/nashorn/api/javaaccess/BooleanAccessTest.java Mon Feb 25 18:13:23 2013 +0530 3.3 @@ -36,6 +36,11 @@ 3.4 import org.testng.annotations.BeforeClass; 3.5 import org.testng.annotations.Test; 3.6 3.7 +/** 3.8 + * @test 3.9 + * @build jdk.nashorn.api.javaaccess.SharedObject jdk.nashorn.api.javaaccess.Person jdk.nashorn.api.javaaccess.BooleanAccessTest 3.10 + * @run testng jdk.nashorn.api.javaaccess.BooleanAccessTest 3.11 + */ 3.12 public class BooleanAccessTest { 3.13 3.14 private static ScriptEngine e = null; 3.15 @@ -50,7 +55,7 @@ 3.16 final ScriptEngineManager m = new ScriptEngineManager(); 3.17 e = m.getEngineByName("nashorn"); 3.18 e.put("o", o); 3.19 - e.eval("var SharedObject = Packages.jdk.nashorn.internal.access.SharedObject;"); 3.20 + e.eval("var SharedObject = Packages.jdk.nashorn.api.javaaccess.SharedObject;"); 3.21 } 3.22 3.23 @Test
4.1 --- a/test/src/jdk/nashorn/api/javaaccess/MethodAccessTest.java Mon Feb 25 16:58:31 2013 +0530 4.2 +++ b/test/src/jdk/nashorn/api/javaaccess/MethodAccessTest.java Mon Feb 25 18:13:23 2013 +0530 4.3 @@ -39,6 +39,11 @@ 4.4 import org.testng.annotations.BeforeClass; 4.5 import org.testng.annotations.Test; 4.6 4.7 +/** 4.8 + * @test 4.9 + * @build jdk.nashorn.api.javaaccess.SharedObject jdk.nashorn.api.javaaccess.Person jdk.nashorn.api.javaaccess.MethodAccessTest 4.10 + * @run testng jdk.nashorn.api.javaaccess.MethodAccessTest 4.11 + */ 4.12 public class MethodAccessTest { 4.13 4.14 private static ScriptEngine e = null; 4.15 @@ -54,8 +59,8 @@ 4.16 e = m.getEngineByName("nashorn"); 4.17 o.setEngine(e); 4.18 e.put("o", o); 4.19 - e.eval("var SharedObject = Packages.jdk.nashorn.internal.access.SharedObject;"); 4.20 - e.eval("var Person = Packages.jdk.nashorn.internal.access.Person;"); 4.21 + e.eval("var SharedObject = Packages.jdk.nashorn.api.javaaccess.SharedObject;"); 4.22 + e.eval("var Person = Packages.jdk.nashorn.api.javaaccess.Person;"); 4.23 } 4.24 4.25 @Test 4.26 @@ -325,13 +330,13 @@ 4.27 4.28 @Test 4.29 public void accessDefaultConstructor() throws ScriptException { 4.30 - e.eval("var dc = new Packages.jdk.nashorn.internal.access.Person()"); 4.31 + e.eval("var dc = new Packages.jdk.nashorn.api.javaaccess.Person()"); 4.32 assertEquals(new Person(), e.get("dc")); 4.33 } 4.34 4.35 @Test 4.36 public void accessCustomConstructor() throws ScriptException { 4.37 - e.eval("var cc = new Packages.jdk.nashorn.internal.access.Person(17)"); 4.38 + e.eval("var cc = new Packages.jdk.nashorn.api.javaaccess.Person(17)"); 4.39 assertEquals(new Person(17), e.get("cc")); 4.40 } 4.41
5.1 --- a/test/src/jdk/nashorn/api/javaaccess/NumberAccessTest.java Mon Feb 25 16:58:31 2013 +0530 5.2 +++ b/test/src/jdk/nashorn/api/javaaccess/NumberAccessTest.java Mon Feb 25 18:13:23 2013 +0530 5.3 @@ -36,6 +36,11 @@ 5.4 import org.testng.annotations.BeforeClass; 5.5 import org.testng.annotations.Test; 5.6 5.7 +/** 5.8 + * @test 5.9 + * @build jdk.nashorn.api.javaaccess.SharedObject jdk.nashorn.api.javaaccess.Person jdk.nashorn.api.javaaccess.NumberAccessTest 5.10 + * @run testng jdk.nashorn.api.javaaccess.NumberAccessTest 5.11 + */ 5.12 public class NumberAccessTest { 5.13 5.14 private static ScriptEngine e = null; 5.15 @@ -50,7 +55,7 @@ 5.16 final ScriptEngineManager m = new ScriptEngineManager(); 5.17 e = m.getEngineByName("nashorn"); 5.18 e.put("o", o); 5.19 - e.eval("var SharedObject = Packages.jdk.nashorn.internal.access.SharedObject;"); 5.20 + e.eval("var SharedObject = Packages.jdk.nashorn.api.javaaccess.SharedObject;"); 5.21 } 5.22 5.23 // --------------------------------long
6.1 --- a/test/src/jdk/nashorn/api/javaaccess/NumberBoxingTest.java Mon Feb 25 16:58:31 2013 +0530 6.2 +++ b/test/src/jdk/nashorn/api/javaaccess/NumberBoxingTest.java Mon Feb 25 18:13:23 2013 +0530 6.3 @@ -35,6 +35,11 @@ 6.4 import org.testng.annotations.BeforeClass; 6.5 import org.testng.annotations.Test; 6.6 6.7 +/** 6.8 + * @test 6.9 + * @build jdk.nashorn.api.javaaccess.SharedObject jdk.nashorn.api.javaaccess.Person jdk.nashorn.api.javaaccess.NumberBoxingTest 6.10 + * @run testng jdk.nashorn.api.javaaccess.NumberBoxingTest 6.11 + */ 6.12 public class NumberBoxingTest { 6.13 6.14 private static ScriptEngine e = null; 6.15 @@ -49,7 +54,7 @@ 6.16 final ScriptEngineManager m = new ScriptEngineManager(); 6.17 e = m.getEngineByName("nashorn"); 6.18 e.put("o", o); 6.19 - e.eval("var SharedObject = Packages.jdk.nashorn.internal.access.SharedObject;"); 6.20 + e.eval("var SharedObject = Packages.jdk.nashorn.api.javaaccess.SharedObject;"); 6.21 } 6.22 6.23 // --------------------------------long
7.1 --- a/test/src/jdk/nashorn/api/javaaccess/ObjectAccessTest.java Mon Feb 25 16:58:31 2013 +0530 7.2 +++ b/test/src/jdk/nashorn/api/javaaccess/ObjectAccessTest.java Mon Feb 25 18:13:23 2013 +0530 7.3 @@ -35,6 +35,11 @@ 7.4 import org.testng.annotations.BeforeClass; 7.5 import org.testng.annotations.Test; 7.6 7.7 +/** 7.8 + * @test 7.9 + * @build jdk.nashorn.api.javaaccess.SharedObject jdk.nashorn.api.javaaccess.Person jdk.nashorn.api.javaaccess.ObjectAccessTest 7.10 + * @run testng jdk.nashorn.api.javaaccess.ObjectAccessTest 7.11 + */ 7.12 public class ObjectAccessTest { 7.13 7.14 private static ScriptEngine e = null; 7.15 @@ -49,8 +54,8 @@ 7.16 final ScriptEngineManager m = new ScriptEngineManager(); 7.17 e = m.getEngineByName("nashorn"); 7.18 e.put("o", o); 7.19 - e.eval("var SharedObject = Packages.jdk.nashorn.internal.access.SharedObject;"); 7.20 - e.eval("var Person = Packages.jdk.nashorn.internal.access.Person;"); 7.21 + e.eval("var SharedObject = Packages.jdk.nashorn.api.javaaccess.SharedObject;"); 7.22 + e.eval("var Person = Packages.jdk.nashorn.api.javaaccess.Person;"); 7.23 } 7.24 7.25 @Test
8.1 --- a/test/src/jdk/nashorn/api/javaaccess/StringAccessTest.java Mon Feb 25 16:58:31 2013 +0530 8.2 +++ b/test/src/jdk/nashorn/api/javaaccess/StringAccessTest.java Mon Feb 25 18:13:23 2013 +0530 8.3 @@ -35,6 +35,11 @@ 8.4 import org.testng.annotations.BeforeClass; 8.5 import org.testng.annotations.Test; 8.6 8.7 +/** 8.8 + * @test 8.9 + * @build jdk.nashorn.api.javaaccess.SharedObject jdk.nashorn.api.javaaccess.Person jdk.nashorn.api.javaaccess.StringAccessTest 8.10 + * @run testng jdk.nashorn.api.javaaccess.StringAccessTest 8.11 + */ 8.12 public class StringAccessTest { 8.13 8.14 private static ScriptEngine e = null; 8.15 @@ -49,7 +54,7 @@ 8.16 final ScriptEngineManager m = new ScriptEngineManager(); 8.17 e = m.getEngineByName("nashorn"); 8.18 e.put("o", o); 8.19 - e.eval("var SharedObject = Packages.jdk.nashorn.internal.access.SharedObject;"); 8.20 + e.eval("var SharedObject = Packages.jdk.nashorn.api.javaaccess.SharedObject;"); 8.21 } 8.22 8.23 @Test
9.1 --- a/test/src/jdk/nashorn/internal/runtime/ContextTest.java Mon Feb 25 16:58:31 2013 +0530 9.2 +++ b/test/src/jdk/nashorn/internal/runtime/ContextTest.java Mon Feb 25 18:13:23 2013 +0530 9.3 @@ -27,19 +27,16 @@ 9.4 9.5 import static org.testng.Assert.assertEquals; 9.6 import static org.testng.Assert.assertTrue; 9.7 -import static org.testng.Assert.fail; 9.8 9.9 import java.util.Map; 9.10 -import javax.script.ScriptEngine; 9.11 -import javax.script.ScriptEngineFactory; 9.12 -import javax.script.ScriptEngineManager; 9.13 -import javax.script.ScriptException; 9.14 -import jdk.nashorn.api.scripting.NashornScriptEngineFactory; 9.15 import jdk.nashorn.internal.runtime.options.Options; 9.16 import org.testng.annotations.Test; 9.17 9.18 /** 9.19 * Basic Context API tests. 9.20 + * 9.21 + * @test 9.22 + * @run testng jdk.nashorn.internal.runtime.ContextTest 9.23 */ 9.24 public class ContextTest { 9.25 // basic context eval test 9.26 @@ -113,83 +110,4 @@ 9.27 final ScriptFunction func = cx.compileScript(source, global); 9.28 return func != null ? ScriptRuntime.apply(func, global) : null; 9.29 } 9.30 - 9.31 - // Tests for trusted client usage of nashorn script engine factory extension API 9.32 - 9.33 - private static class MyClassLoader extends ClassLoader { 9.34 - // to check if script engine uses the specified class loader 9.35 - private final boolean[] reached = new boolean[1]; 9.36 - 9.37 - @Override 9.38 - protected Class findClass(final String name) throws ClassNotFoundException { 9.39 - // flag that it reached here 9.40 - reached[0] = true; 9.41 - return super.findClass(name); 9.42 - } 9.43 - 9.44 - public boolean reached() { 9.45 - return reached[0]; 9.46 - } 9.47 - }; 9.48 - 9.49 - // These are for "private" extension API of NashornScriptEngineFactory that 9.50 - // accepts a ClassLoader and/or command line options. 9.51 - 9.52 - @Test 9.53 - public void factoryClassLoaderTest() { 9.54 - final ScriptEngineManager sm = new ScriptEngineManager(); 9.55 - for (ScriptEngineFactory fac : sm.getEngineFactories()) { 9.56 - if (fac instanceof NashornScriptEngineFactory) { 9.57 - final NashornScriptEngineFactory nfac = (NashornScriptEngineFactory)fac; 9.58 - final MyClassLoader loader = new MyClassLoader(); 9.59 - // set the classloader as app class loader 9.60 - final ScriptEngine e = nfac.getScriptEngine(loader); 9.61 - try { 9.62 - e.eval("Packages.foo"); 9.63 - // check that the class loader was attempted 9.64 - assertTrue(loader.reached(), "did not reach class loader!"); 9.65 - } catch (final ScriptException se) { 9.66 - se.printStackTrace(); 9.67 - fail(se.getMessage()); 9.68 - } 9.69 - return; 9.70 - } 9.71 - } 9.72 - 9.73 - fail("Cannot find nashorn factory!"); 9.74 - } 9.75 - 9.76 - @Test 9.77 - public void factoryClassLoaderAndOptionsTest() { 9.78 - final ScriptEngineManager sm = new ScriptEngineManager(); 9.79 - for (ScriptEngineFactory fac : sm.getEngineFactories()) { 9.80 - if (fac instanceof NashornScriptEngineFactory) { 9.81 - final NashornScriptEngineFactory nfac = (NashornScriptEngineFactory)fac; 9.82 - final String[] options = new String[] { "-strict" }; 9.83 - final MyClassLoader loader = new MyClassLoader(); 9.84 - // set the classloader as app class loader 9.85 - final ScriptEngine e = nfac.getScriptEngine(options, loader); 9.86 - try { 9.87 - e.eval("Packages.foo"); 9.88 - // check that the class loader was attempted 9.89 - assertTrue(loader.reached(), "did not reach class loader!"); 9.90 - } catch (final ScriptException se) { 9.91 - se.printStackTrace(); 9.92 - fail(se.getMessage()); 9.93 - } 9.94 - 9.95 - try { 9.96 - // strict mode - delete of a var should throw SyntaxError 9.97 - e.eval("var d = 2; delete d;"); 9.98 - } catch (final ScriptException se) { 9.99 - // check that the error message contains "SyntaxError" 9.100 - assertTrue(se.getMessage().contains("SyntaxError")); 9.101 - } 9.102 - 9.103 - return; 9.104 - } 9.105 - } 9.106 - 9.107 - fail("Cannot find nashorn factory!"); 9.108 - } 9.109 }
10.1 --- a/test/src/jdk/nashorn/internal/runtime/JSTypeTest.java Mon Feb 25 16:58:31 2013 +0530 10.2 +++ b/test/src/jdk/nashorn/internal/runtime/JSTypeTest.java Mon Feb 25 18:13:23 2013 +0530 10.3 @@ -33,6 +33,9 @@ 10.4 10.5 /** 10.6 * Tests for JSType methods. 10.7 + * 10.8 + * @test 10.9 + * @run testng jdk.nashorn.internal.runtime.JSTypeTest 10.10 */ 10.11 public class JSTypeTest { 10.12 /**
11.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 11.2 +++ b/test/src/jdk/nashorn/internal/runtime/TrustedScriptEngineTest.java Mon Feb 25 18:13:23 2013 +0530 11.3 @@ -0,0 +1,119 @@ 11.4 +/* 11.5 + * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. 11.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 11.7 + * 11.8 + * This code is free software; you can redistribute it and/or modify it 11.9 + * under the terms of the GNU General Public License version 2 only, as 11.10 + * published by the Free Software Foundation. Oracle designates this 11.11 + * particular file as subject to the "Classpath" exception as provided 11.12 + * by Oracle in the LICENSE file that accompanied this code. 11.13 + * 11.14 + * This code is distributed in the hope that it will be useful, but WITHOUT 11.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11.16 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 11.17 + * version 2 for more details (a copy is included in the LICENSE file that 11.18 + * accompanied this code). 11.19 + * 11.20 + * You should have received a copy of the GNU General Public License version 11.21 + * 2 along with this work; if not, write to the Free Software Foundation, 11.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 11.23 + * 11.24 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 11.25 + * or visit www.oracle.com if you need additional information or have any 11.26 + * questions. 11.27 + */ 11.28 + 11.29 +package jdk.nashorn.internal.runtime; 11.30 + 11.31 + 11.32 +import static org.testng.Assert.assertTrue; 11.33 +import static org.testng.Assert.fail; 11.34 + 11.35 +import javax.script.ScriptEngine; 11.36 +import javax.script.ScriptEngineFactory; 11.37 +import javax.script.ScriptEngineManager; 11.38 +import javax.script.ScriptException; 11.39 +import jdk.nashorn.api.scripting.NashornScriptEngineFactory; 11.40 +import org.testng.annotations.Test; 11.41 + 11.42 +/** 11.43 + * Tests for trusted client usage of nashorn script engine factory extension API 11.44 + */ 11.45 +public class TrustedScriptEngineTest { 11.46 + private static class MyClassLoader extends ClassLoader { 11.47 + // to check if script engine uses the specified class loader 11.48 + private final boolean[] reached = new boolean[1]; 11.49 + 11.50 + @Override 11.51 + protected Class findClass(final String name) throws ClassNotFoundException { 11.52 + // flag that it reached here 11.53 + reached[0] = true; 11.54 + return super.findClass(name); 11.55 + } 11.56 + 11.57 + public boolean reached() { 11.58 + return reached[0]; 11.59 + } 11.60 + }; 11.61 + 11.62 + // These are for "private" extension API of NashornScriptEngineFactory that 11.63 + // accepts a ClassLoader and/or command line options. 11.64 + 11.65 + @Test 11.66 + public void factoryClassLoaderTest() { 11.67 + final ScriptEngineManager sm = new ScriptEngineManager(); 11.68 + for (ScriptEngineFactory fac : sm.getEngineFactories()) { 11.69 + if (fac instanceof NashornScriptEngineFactory) { 11.70 + final NashornScriptEngineFactory nfac = (NashornScriptEngineFactory)fac; 11.71 + final MyClassLoader loader = new MyClassLoader(); 11.72 + // set the classloader as app class loader 11.73 + final ScriptEngine e = nfac.getScriptEngine(loader); 11.74 + try { 11.75 + e.eval("Packages.foo"); 11.76 + // check that the class loader was attempted 11.77 + assertTrue(loader.reached(), "did not reach class loader!"); 11.78 + } catch (final ScriptException se) { 11.79 + se.printStackTrace(); 11.80 + fail(se.getMessage()); 11.81 + } 11.82 + return; 11.83 + } 11.84 + } 11.85 + 11.86 + fail("Cannot find nashorn factory!"); 11.87 + } 11.88 + 11.89 + @Test 11.90 + public void factoryClassLoaderAndOptionsTest() { 11.91 + final ScriptEngineManager sm = new ScriptEngineManager(); 11.92 + for (ScriptEngineFactory fac : sm.getEngineFactories()) { 11.93 + if (fac instanceof NashornScriptEngineFactory) { 11.94 + final NashornScriptEngineFactory nfac = (NashornScriptEngineFactory)fac; 11.95 + final String[] options = new String[] { "-strict" }; 11.96 + final MyClassLoader loader = new MyClassLoader(); 11.97 + // set the classloader as app class loader 11.98 + final ScriptEngine e = nfac.getScriptEngine(options, loader); 11.99 + try { 11.100 + e.eval("Packages.foo"); 11.101 + // check that the class loader was attempted 11.102 + assertTrue(loader.reached(), "did not reach class loader!"); 11.103 + } catch (final ScriptException se) { 11.104 + se.printStackTrace(); 11.105 + fail(se.getMessage()); 11.106 + } 11.107 + 11.108 + try { 11.109 + // strict mode - delete of a var should throw SyntaxError 11.110 + e.eval("var d = 2; delete d;"); 11.111 + } catch (final ScriptException se) { 11.112 + // check that the error message contains "SyntaxError" 11.113 + assertTrue(se.getMessage().contains("SyntaxError")); 11.114 + } 11.115 + 11.116 + return; 11.117 + } 11.118 + } 11.119 + 11.120 + fail("Cannot find nashorn factory!"); 11.121 + } 11.122 +}