8013533: Increase code coverage report for types and logging
Reviewed-by: hannesw, sundar
--- a/nashorn/src/jdk/nashorn/internal/codegen/types/BooleanType.java Mon Apr 29 21:38:08 2013 -0300
+++ b/nashorn/src/jdk/nashorn/internal/codegen/types/BooleanType.java Tue Apr 30 09:42:13 2013 +0200
@@ -93,12 +93,6 @@
}
@Override
- public Type loadEmpty(final MethodVisitor method) {
- assert false : "unsupported operation";
- return null;
- }
-
- @Override
public void _return(final MethodVisitor method) {
method.visitInsn(IRETURN);
}
--- a/nashorn/src/jdk/nashorn/internal/codegen/types/IntType.java Mon Apr 29 21:38:08 2013 -0300
+++ b/nashorn/src/jdk/nashorn/internal/codegen/types/IntType.java Tue Apr 30 09:42:13 2013 +0200
@@ -241,12 +241,6 @@
}
@Override
- public Type loadEmpty(final MethodVisitor method) {
- assert false : "unsupported operation";
- return null;
- }
-
- @Override
public Type cmp(final MethodVisitor method, final boolean isCmpG) {
assert false : "unsupported operation";
return null;
--- a/nashorn/src/jdk/nashorn/internal/codegen/types/LongType.java Mon Apr 29 21:38:08 2013 -0300
+++ b/nashorn/src/jdk/nashorn/internal/codegen/types/LongType.java Tue Apr 30 09:42:13 2013 +0200
@@ -217,12 +217,6 @@
}
@Override
- public Type loadEmpty(final MethodVisitor method) {
- assert false : "unsupported operation";
- return null;
- }
-
- @Override
public Type cmp(final MethodVisitor method, final boolean isCmpG) {
return cmp(method);
}
--- a/nashorn/src/jdk/nashorn/internal/codegen/types/NumberType.java Mon Apr 29 21:38:08 2013 -0300
+++ b/nashorn/src/jdk/nashorn/internal/codegen/types/NumberType.java Tue Apr 30 09:42:13 2013 +0200
@@ -89,12 +89,6 @@
}
@Override
- public Type loadEmpty(final MethodVisitor method) {
- assert false : "unsupported operation";
- return null;
- }
-
- @Override
public Type ldc(final MethodVisitor method, final Object c) {
assert c instanceof Double;
--- a/nashorn/src/jdk/nashorn/internal/codegen/types/Type.java Mon Apr 29 21:38:08 2013 -0300
+++ b/nashorn/src/jdk/nashorn/internal/codegen/types/Type.java Tue Apr 30 09:42:13 2013 +0200
@@ -616,6 +616,12 @@
return this;
}
+ @Override
+ public Type loadEmpty(final MethodVisitor method) {
+ assert false : "unsupported operation";
+ return null;
+ }
+
/**
* Superclass logic for pop for all types
*
@@ -663,7 +669,6 @@
method.visitInsn(SWAP);
}
}
-
}
/**
@@ -841,12 +846,6 @@
}
@Override
- public Type loadEmpty(final MethodVisitor method) {
- assert false : "unsupported operation";
- return null;
- }
-
- @Override
public Type convert(final MethodVisitor method, final Type to) {
assert false : "unsupported operation";
return null;
--- a/nashorn/test/script/error/JDK-8008814-1.js.EXPECTED Mon Apr 29 21:38:08 2013 -0300
+++ b/nashorn/test/script/error/JDK-8008814-1.js.EXPECTED Tue Apr 30 09:42:13 2013 +0200
@@ -1,3 +1,3 @@
-test/script/error/NASHORN-8008814-1.js:32:2 Function declarations can only occur at program or function body level. You should use a function expression here instead.
+test/script/error/JDK-8008814-1.js:32:2 Function declarations can only occur at program or function body level. You should use a function expression here instead.
function g() {
^
--- a/nashorn/test/script/error/JDK-8008814-2.js.EXPECTED Mon Apr 29 21:38:08 2013 -0300
+++ b/nashorn/test/script/error/JDK-8008814-2.js.EXPECTED Tue Apr 30 09:42:13 2013 +0200
@@ -1,3 +1,3 @@
-test/script/error/NASHORN-8008814-2.js:32:2 In strict mode, function declarations can only occur at program or function body level. You should use a function expression here instead.
+test/script/error/JDK-8008814-2.js:32:2 In strict mode, function declarations can only occur at program or function body level. You should use a function expression here instead.
function g() {
^
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/nashorn/test/script/trusted/logcoverage.js Tue Apr 30 09:42:13 2013 +0200
@@ -0,0 +1,108 @@
+/*
+ * 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.
+ *
+ * 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.
+ */
+
+/**
+ * mh_coverage.js
+ * Screen scrape various logs to ensure that we cover enough functionality,
+ * e.g. method handle instrumentation
+ *
+ * @test
+ * @run
+ */
+
+/*
+ * creates new script engine initialized with given options and
+ * runs given code on it. Returns standard output captured.
+ */
+
+function runScriptEngine(opts, name) {
+ var imports = new JavaImporter(
+ Packages.jdk.nashorn.api.scripting,
+ java.io, java.lang, java.util);
+
+ with(imports) {
+ var fac = new NashornScriptEngineFactory();
+ // get current System.err
+ var oldErr = System.err;
+ var oldOut = System.out;
+ var baosErr = new ByteArrayOutputStream();
+ var newErr = new PrintStream(baosErr);
+ var baosOut = new ByteArrayOutputStream();
+ var newOut = new PrintStream(baosOut);
+ try {
+ // set new standard err
+ System.setErr(newErr);
+ System.setOut(newOut);
+ var strType = Java.type("java.lang.String");
+ var engine = fac.getScriptEngine(Java.toJavaArray(opts, strType));
+ var reader = new java.io.FileReader(name);
+ engine.eval(reader);
+ newErr.flush();
+ newOut.flush();
+ return new java.lang.String(baosErr.toByteArray());
+ } finally {
+ // restore System.err to old value
+ System.setErr(oldErr);
+ System.setOut(oldOut);
+ }
+ }
+}
+
+var str;
+
+var methodsCalled = [
+ 'asCollector',
+ 'asType',
+ 'bindTo',
+ 'dropArguments',
+ 'explicitCastArguments',
+ 'filterArguments',
+ 'filterReturnValue',
+ 'findStatic',
+ 'findVirtual',
+ 'foldArguments',
+ 'getter',
+ 'guardWithTest',
+ 'insertArguments',
+ 'methodType',
+ 'setter'
+];
+
+function check(str, strs) {
+ for each (s in strs) {
+ if (s.indexOf(str) !== -1) {
+ continue;
+ }
+ print(method + "not found");
+ return;
+ }
+ print("check ok!");
+}
+
+str = runScriptEngine([ "--log=codegen,compiler=finest,methodhandles=finest,fields=finest" ], __DIR__ + "../basic/NASHORN-19.js");
+
+check(str, methodsCalled);
+check(str, ['return', 'get', 'set', '[fields]']);
+check(str, ['codegen']);
+
+print("hello, world!");
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/nashorn/test/script/trusted/logcoverage.js.EXPECTED Tue Apr 30 09:42:13 2013 +0200
@@ -0,0 +1,4 @@
+check ok!
+check ok!
+check ok!
+hello, world!