8008789: Enable java access and nashorn runtime tests for jtreg
Reviewed-by: lagergren, jlaskey, hannesw
--- a/nashorn/make/build.xml Mon Feb 25 16:58:31 2013 +0530
+++ b/nashorn/make/build.xml Mon Feb 25 18:13:23 2013 +0530
@@ -275,7 +275,7 @@
</condition>
<fail unless="representation-ok">Representation test failed - output differs!</fail>
<fileset id="test.classes" dir="${build.test.classes.dir}">
- <include name="**/access/*Test.class"/>
+ <include name="**/api/javaaccess/*Test.class"/>
<include name="**/api/scripting/*Test.class"/>
<include name="**/codegen/*Test.class"/>
<include name="**/parser/*Test.class"/>
--- a/nashorn/test/TEST.ROOT Mon Feb 25 16:58:31 2013 +0530
+++ b/nashorn/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
-
--- a/nashorn/test/src/jdk/nashorn/api/javaaccess/BooleanAccessTest.java Mon Feb 25 16:58:31 2013 +0530
+++ b/nashorn/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
--- a/nashorn/test/src/jdk/nashorn/api/javaaccess/MethodAccessTest.java Mon Feb 25 16:58:31 2013 +0530
+++ b/nashorn/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"));
}
--- a/nashorn/test/src/jdk/nashorn/api/javaaccess/NumberAccessTest.java Mon Feb 25 16:58:31 2013 +0530
+++ b/nashorn/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
--- a/nashorn/test/src/jdk/nashorn/api/javaaccess/NumberBoxingTest.java Mon Feb 25 16:58:31 2013 +0530
+++ b/nashorn/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
--- a/nashorn/test/src/jdk/nashorn/api/javaaccess/ObjectAccessTest.java Mon Feb 25 16:58:31 2013 +0530
+++ b/nashorn/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
--- a/nashorn/test/src/jdk/nashorn/api/javaaccess/StringAccessTest.java Mon Feb 25 16:58:31 2013 +0530
+++ b/nashorn/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
--- a/nashorn/test/src/jdk/nashorn/internal/runtime/ContextTest.java Mon Feb 25 16:58:31 2013 +0530
+++ b/nashorn/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!");
- }
}
--- a/nashorn/test/src/jdk/nashorn/internal/runtime/JSTypeTest.java Mon Feb 25 16:58:31 2013 +0530
+++ b/nashorn/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 {
/**
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/nashorn/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!");
+ }
+}