# HG changeset patch # User sundar # Date 1361796203 -19800 # Node ID 5610ac25d8ff8cb670e14a735d4b676ba4e07e9b # Parent 927fba6785b0c48c77bc14662ca923eac1939c83 8008789: Enable java access and nashorn runtime tests for jtreg Reviewed-by: lagergren, jlaskey, hannesw diff -r 927fba6785b0 -r 5610ac25d8ff make/build.xml --- a/make/build.xml Mon Feb 25 16:58:31 2013 +0530 +++ b/make/build.xml Mon Feb 25 18:13:23 2013 +0530 @@ -275,7 +275,7 @@ Representation test failed - output differs! - + diff -r 927fba6785b0 -r 5610ac25d8ff test/TEST.ROOT --- a/test/TEST.ROOT Mon Feb 25 16:58:31 2013 +0530 +++ b/test/TEST.ROOT Mon Feb 25 18:13:23 2013 +0530 @@ -4,4 +4,3 @@ # The list of keywords supported in the entire test suite keys=2d dnd i18n - diff -r 927fba6785b0 -r 5610ac25d8ff test/src/jdk/nashorn/api/javaaccess/BooleanAccessTest.java --- a/test/src/jdk/nashorn/api/javaaccess/BooleanAccessTest.java Mon Feb 25 16:58:31 2013 +0530 +++ b/test/src/jdk/nashorn/api/javaaccess/BooleanAccessTest.java Mon Feb 25 18:13:23 2013 +0530 @@ -36,6 +36,11 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +/** + * @test + * @build jdk.nashorn.api.javaaccess.SharedObject jdk.nashorn.api.javaaccess.Person jdk.nashorn.api.javaaccess.BooleanAccessTest + * @run testng jdk.nashorn.api.javaaccess.BooleanAccessTest + */ public class BooleanAccessTest { private static ScriptEngine e = null; @@ -50,7 +55,7 @@ final ScriptEngineManager m = new ScriptEngineManager(); e = m.getEngineByName("nashorn"); e.put("o", o); - e.eval("var SharedObject = Packages.jdk.nashorn.internal.access.SharedObject;"); + e.eval("var SharedObject = Packages.jdk.nashorn.api.javaaccess.SharedObject;"); } @Test diff -r 927fba6785b0 -r 5610ac25d8ff test/src/jdk/nashorn/api/javaaccess/MethodAccessTest.java --- a/test/src/jdk/nashorn/api/javaaccess/MethodAccessTest.java Mon Feb 25 16:58:31 2013 +0530 +++ b/test/src/jdk/nashorn/api/javaaccess/MethodAccessTest.java Mon Feb 25 18:13:23 2013 +0530 @@ -39,6 +39,11 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +/** + * @test + * @build jdk.nashorn.api.javaaccess.SharedObject jdk.nashorn.api.javaaccess.Person jdk.nashorn.api.javaaccess.MethodAccessTest + * @run testng jdk.nashorn.api.javaaccess.MethodAccessTest + */ public class MethodAccessTest { private static ScriptEngine e = null; @@ -54,8 +59,8 @@ e = m.getEngineByName("nashorn"); o.setEngine(e); e.put("o", o); - e.eval("var SharedObject = Packages.jdk.nashorn.internal.access.SharedObject;"); - e.eval("var Person = Packages.jdk.nashorn.internal.access.Person;"); + e.eval("var SharedObject = Packages.jdk.nashorn.api.javaaccess.SharedObject;"); + e.eval("var Person = Packages.jdk.nashorn.api.javaaccess.Person;"); } @Test @@ -325,13 +330,13 @@ @Test public void accessDefaultConstructor() throws ScriptException { - e.eval("var dc = new Packages.jdk.nashorn.internal.access.Person()"); + e.eval("var dc = new Packages.jdk.nashorn.api.javaaccess.Person()"); assertEquals(new Person(), e.get("dc")); } @Test public void accessCustomConstructor() throws ScriptException { - e.eval("var cc = new Packages.jdk.nashorn.internal.access.Person(17)"); + e.eval("var cc = new Packages.jdk.nashorn.api.javaaccess.Person(17)"); assertEquals(new Person(17), e.get("cc")); } diff -r 927fba6785b0 -r 5610ac25d8ff test/src/jdk/nashorn/api/javaaccess/NumberAccessTest.java --- a/test/src/jdk/nashorn/api/javaaccess/NumberAccessTest.java Mon Feb 25 16:58:31 2013 +0530 +++ b/test/src/jdk/nashorn/api/javaaccess/NumberAccessTest.java Mon Feb 25 18:13:23 2013 +0530 @@ -36,6 +36,11 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +/** + * @test + * @build jdk.nashorn.api.javaaccess.SharedObject jdk.nashorn.api.javaaccess.Person jdk.nashorn.api.javaaccess.NumberAccessTest + * @run testng jdk.nashorn.api.javaaccess.NumberAccessTest + */ public class NumberAccessTest { private static ScriptEngine e = null; @@ -50,7 +55,7 @@ final ScriptEngineManager m = new ScriptEngineManager(); e = m.getEngineByName("nashorn"); e.put("o", o); - e.eval("var SharedObject = Packages.jdk.nashorn.internal.access.SharedObject;"); + e.eval("var SharedObject = Packages.jdk.nashorn.api.javaaccess.SharedObject;"); } // --------------------------------long diff -r 927fba6785b0 -r 5610ac25d8ff test/src/jdk/nashorn/api/javaaccess/NumberBoxingTest.java --- a/test/src/jdk/nashorn/api/javaaccess/NumberBoxingTest.java Mon Feb 25 16:58:31 2013 +0530 +++ b/test/src/jdk/nashorn/api/javaaccess/NumberBoxingTest.java Mon Feb 25 18:13:23 2013 +0530 @@ -35,6 +35,11 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +/** + * @test + * @build jdk.nashorn.api.javaaccess.SharedObject jdk.nashorn.api.javaaccess.Person jdk.nashorn.api.javaaccess.NumberBoxingTest + * @run testng jdk.nashorn.api.javaaccess.NumberBoxingTest + */ public class NumberBoxingTest { private static ScriptEngine e = null; @@ -49,7 +54,7 @@ final ScriptEngineManager m = new ScriptEngineManager(); e = m.getEngineByName("nashorn"); e.put("o", o); - e.eval("var SharedObject = Packages.jdk.nashorn.internal.access.SharedObject;"); + e.eval("var SharedObject = Packages.jdk.nashorn.api.javaaccess.SharedObject;"); } // --------------------------------long diff -r 927fba6785b0 -r 5610ac25d8ff test/src/jdk/nashorn/api/javaaccess/ObjectAccessTest.java --- a/test/src/jdk/nashorn/api/javaaccess/ObjectAccessTest.java Mon Feb 25 16:58:31 2013 +0530 +++ b/test/src/jdk/nashorn/api/javaaccess/ObjectAccessTest.java Mon Feb 25 18:13:23 2013 +0530 @@ -35,6 +35,11 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +/** + * @test + * @build jdk.nashorn.api.javaaccess.SharedObject jdk.nashorn.api.javaaccess.Person jdk.nashorn.api.javaaccess.ObjectAccessTest + * @run testng jdk.nashorn.api.javaaccess.ObjectAccessTest + */ public class ObjectAccessTest { private static ScriptEngine e = null; @@ -49,8 +54,8 @@ final ScriptEngineManager m = new ScriptEngineManager(); e = m.getEngineByName("nashorn"); e.put("o", o); - e.eval("var SharedObject = Packages.jdk.nashorn.internal.access.SharedObject;"); - e.eval("var Person = Packages.jdk.nashorn.internal.access.Person;"); + e.eval("var SharedObject = Packages.jdk.nashorn.api.javaaccess.SharedObject;"); + e.eval("var Person = Packages.jdk.nashorn.api.javaaccess.Person;"); } @Test diff -r 927fba6785b0 -r 5610ac25d8ff test/src/jdk/nashorn/api/javaaccess/StringAccessTest.java --- a/test/src/jdk/nashorn/api/javaaccess/StringAccessTest.java Mon Feb 25 16:58:31 2013 +0530 +++ b/test/src/jdk/nashorn/api/javaaccess/StringAccessTest.java Mon Feb 25 18:13:23 2013 +0530 @@ -35,6 +35,11 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +/** + * @test + * @build jdk.nashorn.api.javaaccess.SharedObject jdk.nashorn.api.javaaccess.Person jdk.nashorn.api.javaaccess.StringAccessTest + * @run testng jdk.nashorn.api.javaaccess.StringAccessTest + */ public class StringAccessTest { private static ScriptEngine e = null; @@ -49,7 +54,7 @@ final ScriptEngineManager m = new ScriptEngineManager(); e = m.getEngineByName("nashorn"); e.put("o", o); - e.eval("var SharedObject = Packages.jdk.nashorn.internal.access.SharedObject;"); + e.eval("var SharedObject = Packages.jdk.nashorn.api.javaaccess.SharedObject;"); } @Test diff -r 927fba6785b0 -r 5610ac25d8ff test/src/jdk/nashorn/internal/runtime/ContextTest.java --- a/test/src/jdk/nashorn/internal/runtime/ContextTest.java Mon Feb 25 16:58:31 2013 +0530 +++ b/test/src/jdk/nashorn/internal/runtime/ContextTest.java Mon Feb 25 18:13:23 2013 +0530 @@ -27,19 +27,16 @@ import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; -import static org.testng.Assert.fail; import java.util.Map; -import javax.script.ScriptEngine; -import javax.script.ScriptEngineFactory; -import javax.script.ScriptEngineManager; -import javax.script.ScriptException; -import jdk.nashorn.api.scripting.NashornScriptEngineFactory; import jdk.nashorn.internal.runtime.options.Options; import org.testng.annotations.Test; /** * Basic Context API tests. + * + * @test + * @run testng jdk.nashorn.internal.runtime.ContextTest */ public class ContextTest { // basic context eval test @@ -113,83 +110,4 @@ final ScriptFunction func = cx.compileScript(source, global); return func != null ? ScriptRuntime.apply(func, global) : null; } - - // Tests for trusted client usage of nashorn script engine factory extension API - - private static class MyClassLoader extends ClassLoader { - // to check if script engine uses the specified class loader - private final boolean[] reached = new boolean[1]; - - @Override - protected Class findClass(final String name) throws ClassNotFoundException { - // flag that it reached here - reached[0] = true; - return super.findClass(name); - } - - public boolean reached() { - return reached[0]; - } - }; - - // These are for "private" extension API of NashornScriptEngineFactory that - // accepts a ClassLoader and/or command line options. - - @Test - public void factoryClassLoaderTest() { - final ScriptEngineManager sm = new ScriptEngineManager(); - for (ScriptEngineFactory fac : sm.getEngineFactories()) { - if (fac instanceof NashornScriptEngineFactory) { - final NashornScriptEngineFactory nfac = (NashornScriptEngineFactory)fac; - final MyClassLoader loader = new MyClassLoader(); - // set the classloader as app class loader - final ScriptEngine e = nfac.getScriptEngine(loader); - try { - e.eval("Packages.foo"); - // check that the class loader was attempted - assertTrue(loader.reached(), "did not reach class loader!"); - } catch (final ScriptException se) { - se.printStackTrace(); - fail(se.getMessage()); - } - return; - } - } - - fail("Cannot find nashorn factory!"); - } - - @Test - public void factoryClassLoaderAndOptionsTest() { - final ScriptEngineManager sm = new ScriptEngineManager(); - for (ScriptEngineFactory fac : sm.getEngineFactories()) { - if (fac instanceof NashornScriptEngineFactory) { - final NashornScriptEngineFactory nfac = (NashornScriptEngineFactory)fac; - final String[] options = new String[] { "-strict" }; - final MyClassLoader loader = new MyClassLoader(); - // set the classloader as app class loader - final ScriptEngine e = nfac.getScriptEngine(options, loader); - try { - e.eval("Packages.foo"); - // check that the class loader was attempted - assertTrue(loader.reached(), "did not reach class loader!"); - } catch (final ScriptException se) { - se.printStackTrace(); - fail(se.getMessage()); - } - - try { - // strict mode - delete of a var should throw SyntaxError - e.eval("var d = 2; delete d;"); - } catch (final ScriptException se) { - // check that the error message contains "SyntaxError" - assertTrue(se.getMessage().contains("SyntaxError")); - } - - return; - } - } - - fail("Cannot find nashorn factory!"); - } } diff -r 927fba6785b0 -r 5610ac25d8ff test/src/jdk/nashorn/internal/runtime/JSTypeTest.java --- a/test/src/jdk/nashorn/internal/runtime/JSTypeTest.java Mon Feb 25 16:58:31 2013 +0530 +++ b/test/src/jdk/nashorn/internal/runtime/JSTypeTest.java Mon Feb 25 18:13:23 2013 +0530 @@ -33,6 +33,9 @@ /** * Tests for JSType methods. + * + * @test + * @run testng jdk.nashorn.internal.runtime.JSTypeTest */ public class JSTypeTest { /** diff -r 927fba6785b0 -r 5610ac25d8ff test/src/jdk/nashorn/internal/runtime/TrustedScriptEngineTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/src/jdk/nashorn/internal/runtime/TrustedScriptEngineTest.java Mon Feb 25 18:13:23 2013 +0530 @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package jdk.nashorn.internal.runtime; + + +import static org.testng.Assert.assertTrue; +import static org.testng.Assert.fail; + +import javax.script.ScriptEngine; +import javax.script.ScriptEngineFactory; +import javax.script.ScriptEngineManager; +import javax.script.ScriptException; +import jdk.nashorn.api.scripting.NashornScriptEngineFactory; +import org.testng.annotations.Test; + +/** + * Tests for trusted client usage of nashorn script engine factory extension API + */ +public class TrustedScriptEngineTest { + private static class MyClassLoader extends ClassLoader { + // to check if script engine uses the specified class loader + private final boolean[] reached = new boolean[1]; + + @Override + protected Class findClass(final String name) throws ClassNotFoundException { + // flag that it reached here + reached[0] = true; + return super.findClass(name); + } + + public boolean reached() { + return reached[0]; + } + }; + + // These are for "private" extension API of NashornScriptEngineFactory that + // accepts a ClassLoader and/or command line options. + + @Test + public void factoryClassLoaderTest() { + final ScriptEngineManager sm = new ScriptEngineManager(); + for (ScriptEngineFactory fac : sm.getEngineFactories()) { + if (fac instanceof NashornScriptEngineFactory) { + final NashornScriptEngineFactory nfac = (NashornScriptEngineFactory)fac; + final MyClassLoader loader = new MyClassLoader(); + // set the classloader as app class loader + final ScriptEngine e = nfac.getScriptEngine(loader); + try { + e.eval("Packages.foo"); + // check that the class loader was attempted + assertTrue(loader.reached(), "did not reach class loader!"); + } catch (final ScriptException se) { + se.printStackTrace(); + fail(se.getMessage()); + } + return; + } + } + + fail("Cannot find nashorn factory!"); + } + + @Test + public void factoryClassLoaderAndOptionsTest() { + final ScriptEngineManager sm = new ScriptEngineManager(); + for (ScriptEngineFactory fac : sm.getEngineFactories()) { + if (fac instanceof NashornScriptEngineFactory) { + final NashornScriptEngineFactory nfac = (NashornScriptEngineFactory)fac; + final String[] options = new String[] { "-strict" }; + final MyClassLoader loader = new MyClassLoader(); + // set the classloader as app class loader + final ScriptEngine e = nfac.getScriptEngine(options, loader); + try { + e.eval("Packages.foo"); + // check that the class loader was attempted + assertTrue(loader.reached(), "did not reach class loader!"); + } catch (final ScriptException se) { + se.printStackTrace(); + fail(se.getMessage()); + } + + try { + // strict mode - delete of a var should throw SyntaxError + e.eval("var d = 2; delete d;"); + } catch (final ScriptException se) { + // check that the error message contains "SyntaxError" + assertTrue(se.getMessage().contains("SyntaxError")); + } + + return; + } + } + + fail("Cannot find nashorn factory!"); + } +}