changeset 16263:0679aaa72927

8008789: Enable java access and nashorn runtime tests for jtreg Reviewed-by: lagergren, jlaskey, hannesw
author sundar
date Mon, 25 Feb 2013 18:13:23 +0530
parents 75513555e603
children e0c3c97cd93e
files nashorn/make/build.xml nashorn/test/TEST.ROOT nashorn/test/src/jdk/nashorn/api/javaaccess/BooleanAccessTest.java nashorn/test/src/jdk/nashorn/api/javaaccess/MethodAccessTest.java nashorn/test/src/jdk/nashorn/api/javaaccess/NumberAccessTest.java nashorn/test/src/jdk/nashorn/api/javaaccess/NumberBoxingTest.java nashorn/test/src/jdk/nashorn/api/javaaccess/ObjectAccessTest.java nashorn/test/src/jdk/nashorn/api/javaaccess/StringAccessTest.java nashorn/test/src/jdk/nashorn/internal/runtime/ContextTest.java nashorn/test/src/jdk/nashorn/internal/runtime/JSTypeTest.java nashorn/test/src/jdk/nashorn/internal/runtime/TrustedScriptEngineTest.java
diffstat 11 files changed, 166 insertions(+), 97 deletions(-) [+]
line wrap: on
line diff
--- 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!");
+    }
+}