mirror of
https://github.com/openjdk/jdk.git
synced 2026-03-05 13:40:18 +00:00
8013533: Increase code coverage report for types and logging
Reviewed-by: hannesw, sundar
This commit is contained in:
parent
5c0631d52b
commit
a2c222ef34
@ -92,12 +92,6 @@ public final class BooleanType extends Type {
|
||||
return BOOLEAN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Type loadEmpty(final MethodVisitor method) {
|
||||
assert false : "unsupported operation";
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void _return(final MethodVisitor method) {
|
||||
method.visitInsn(IRETURN);
|
||||
|
||||
@ -240,12 +240,6 @@ class IntType extends BitwiseType {
|
||||
return INT;
|
||||
}
|
||||
|
||||
@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";
|
||||
|
||||
@ -216,12 +216,6 @@ class LongType extends BitwiseType {
|
||||
return LONG;
|
||||
}
|
||||
|
||||
@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);
|
||||
|
||||
@ -88,12 +88,6 @@ class NumberType extends NumericType {
|
||||
return NUMBER;
|
||||
}
|
||||
|
||||
@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;
|
||||
|
||||
@ -616,6 +616,12 @@ public abstract class Type implements Comparable<Type>, BytecodeOps {
|
||||
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 @@ public abstract class Type implements Comparable<Type>, BytecodeOps {
|
||||
method.visitInsn(SWAP);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -840,12 +845,6 @@ public abstract class Type implements Comparable<Type>, BytecodeOps {
|
||||
return null;
|
||||
}
|
||||
|
||||
@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";
|
||||
|
||||
@ -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() {
|
||||
^
|
||||
|
||||
@ -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() {
|
||||
^
|
||||
|
||||
108
nashorn/test/script/trusted/logcoverage.js
Normal file
108
nashorn/test/script/trusted/logcoverage.js
Normal file
@ -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!");
|
||||
4
nashorn/test/script/trusted/logcoverage.js.EXPECTED
Normal file
4
nashorn/test/script/trusted/logcoverage.js.EXPECTED
Normal file
@ -0,0 +1,4 @@
|
||||
check ok!
|
||||
check ok!
|
||||
check ok!
|
||||
hello, world!
|
||||
Loading…
x
Reference in New Issue
Block a user