test/script/currently-failing/logcoverage.js

Tue, 21 Mar 2017 13:41:57 -0700

author
asaha
date
Tue, 21 Mar 2017 13:41:57 -0700
changeset 2160
1df40fe54cd6
parent 962
ac62e33a99b0
child 1205
4112748288bb
permissions
-rw-r--r--

Merge

lagergren@237 1 /*
lagergren@237 2 * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
lagergren@237 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
attila@962 4 *
lagergren@237 5 * This code is free software; you can redistribute it and/or modify it
lagergren@237 6 * under the terms of the GNU General Public License version 2 only, as
lagergren@237 7 * published by the Free Software Foundation.
attila@962 8 *
lagergren@237 9 * This code is distributed in the hope that it will be useful, but WITHOUT
lagergren@237 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
lagergren@237 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
lagergren@237 12 * version 2 for more details (a copy is included in the LICENSE file that
lagergren@237 13 * accompanied this code).
attila@962 14 *
lagergren@237 15 * You should have received a copy of the GNU General Public License version
lagergren@237 16 * 2 along with this work; if not, write to the Free Software Foundation,
lagergren@237 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
attila@962 18 *
lagergren@237 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
lagergren@237 20 * or visit www.oracle.com if you need additional information or have any
lagergren@237 21 * questions.
lagergren@237 22 */
lagergren@237 23
lagergren@237 24 /**
lagergren@237 25 * mh_coverage.js
attila@962 26 * Screen scrape various logs to ensure that we cover enough functionality,
lagergren@237 27 * e.g. method handle instrumentation
lagergren@237 28 *
lagergren@237 29 * @test
lagergren@237 30 * @run
lagergren@237 31 */
lagergren@237 32
lagergren@237 33 /*
lagergren@237 34 * creates new script engine initialized with given options and
lagergren@237 35 * runs given code on it. Returns standard output captured.
lagergren@237 36 */
lagergren@237 37
lagergren@237 38 function runScriptEngine(opts, name) {
lagergren@237 39 var imports = new JavaImporter(
lagergren@237 40 Packages.jdk.nashorn.api.scripting,
lagergren@237 41 java.io, java.lang, java.util);
lagergren@237 42
lagergren@237 43 with(imports) {
lagergren@237 44 var fac = new NashornScriptEngineFactory();
lagergren@237 45 // get current System.err
lagergren@237 46 var oldErr = System.err;
attila@962 47 var oldOut = System.out;
lagergren@237 48 var baosErr = new ByteArrayOutputStream();
lagergren@237 49 var newErr = new PrintStream(baosErr);
lagergren@237 50 var baosOut = new ByteArrayOutputStream();
attila@962 51 var newOut = new PrintStream(baosOut);
lagergren@237 52 try {
lagergren@237 53 // set new standard err
lagergren@237 54 System.setErr(newErr);
lagergren@237 55 System.setOut(newOut);
attila@279 56 var engine = fac.getScriptEngine(Java.to(opts, "java.lang.String[]"));
attila@962 57 var reader = new java.io.FileReader(name);
lagergren@237 58 engine.eval(reader);
lagergren@237 59 newErr.flush();
attila@962 60 newOut.flush();
lagergren@237 61 return new java.lang.String(baosErr.toByteArray());
lagergren@237 62 } finally {
lagergren@237 63 // restore System.err to old value
lagergren@237 64 System.setErr(oldErr);
attila@962 65 System.setOut(oldOut);
lagergren@237 66 }
lagergren@237 67 }
lagergren@237 68 }
lagergren@237 69
lagergren@237 70 var str;
lagergren@237 71
lagergren@237 72 var methodsCalled = [
attila@962 73 'asCollector',
attila@962 74 'asType',
attila@962 75 'bindTo',
attila@962 76 'dropArguments',
attila@962 77 'explicitCastArguments',
attila@962 78 'filterArguments',
attila@962 79 'filterReturnValue',
attila@962 80 'findStatic',
attila@962 81 'findVirtual',
attila@962 82 'foldArguments',
attila@962 83 'getter',
attila@962 84 'guardWithTest',
attila@962 85 'insertArguments',
attila@962 86 'methodType',
lagergren@237 87 'setter'
lagergren@237 88 ];
lagergren@237 89
lagergren@237 90 function check(str, strs) {
lagergren@237 91 for each (s in strs) {
lagergren@247 92 if (str.indexOf(s) !== -1) {
attila@962 93 continue;
lagergren@237 94 }
lagergren@247 95 print(s + " not found");
lagergren@237 96 return;
lagergren@237 97 }
lagergren@237 98 print("check ok!");
lagergren@237 99 }
lagergren@237 100
lagergren@237 101 str = runScriptEngine([ "--log=codegen,compiler=finest,methodhandles=finest,fields=finest" ], __DIR__ + "../basic/NASHORN-19.js");
lagergren@247 102 str += runScriptEngine([ "--log=codegen,compiler=finest,methodhandles=finest,fields=finest" ], __DIR__ + "../basic/varargs.js");
lagergren@237 103
lagergren@237 104 check(str, methodsCalled);
lagergren@237 105 check(str, ['return', 'get', 'set', '[fields]']);
lagergren@237 106 check(str, ['codegen']);
lagergren@237 107
lagergren@237 108 print("hello, world!");

mercurial