8008789: Enable java access and nashorn runtime tests for jtreg

Mon, 25 Feb 2013 18:13:23 +0530

author
sundar
date
Mon, 25 Feb 2013 18:13:23 +0530
changeset 119
5610ac25d8ff
parent 118
927fba6785b0
child 120
1654918e0612

8008789: Enable java access and nashorn runtime tests for jtreg
Reviewed-by: lagergren, jlaskey, hannesw

make/build.xml file | annotate | diff | comparison | revisions
test/TEST.ROOT file | annotate | diff | comparison | revisions
test/src/jdk/nashorn/api/javaaccess/BooleanAccessTest.java file | annotate | diff | comparison | revisions
test/src/jdk/nashorn/api/javaaccess/MethodAccessTest.java file | annotate | diff | comparison | revisions
test/src/jdk/nashorn/api/javaaccess/NumberAccessTest.java file | annotate | diff | comparison | revisions
test/src/jdk/nashorn/api/javaaccess/NumberBoxingTest.java file | annotate | diff | comparison | revisions
test/src/jdk/nashorn/api/javaaccess/ObjectAccessTest.java file | annotate | diff | comparison | revisions
test/src/jdk/nashorn/api/javaaccess/StringAccessTest.java file | annotate | diff | comparison | revisions
test/src/jdk/nashorn/internal/runtime/ContextTest.java file | annotate | diff | comparison | revisions
test/src/jdk/nashorn/internal/runtime/JSTypeTest.java file | annotate | diff | comparison | revisions
test/src/jdk/nashorn/internal/runtime/TrustedScriptEngineTest.java file | annotate | diff | comparison | revisions
     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 +}

mercurial