Path: blob/master/test/hotspot/jtreg/vmTestbase/nsk/jvmti/GenerateEvents/genevents001.java
40948 views
/*1* Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223package nsk.jvmti.GenerateEvents;2425import java.io.PrintStream;2627import nsk.share.*;28import nsk.share.jvmti.*;2930public class genevents001 extends DebugeeClass {3132/** Load native library if required. */33static {34loadLibrary("genevents001");35}3637/** Run test from command line. */38public static void main(String argv[]) {39argv = nsk.share.jvmti.JVMTITest.commonInit(argv);4041// JCK-compatible exit42System.exit(run(argv, System.out) + Consts.JCK_STATUS_BASE);43}4445/** Run test from JCK-compatible environment. */46public static int run(String argv[], PrintStream out) {47return new genevents001().runIt(argv, out);48}4950/* =================================================================== */5152// scaffold objects53ArgumentHandler argHandler = null;54Log log = null;55long timeout = 0;56int status = Consts.TEST_PASSED;5758/* Run debuggee code. */59public int runIt(String argv[], PrintStream out) {60argHandler = new ArgumentHandler(argv);61log = new Log(out, argHandler);62timeout = argHandler.getWaitTime() * 60 * 1000; // milliseconds6364log.display("Intensively call tested method to provoke compilation");65try {66genevents001Thread thread = new genevents001Thread();67thread.start();68thread.join();69} catch (InterruptedException e) {70throw new Failure("Interruption while running tested thread: \n\t" + e);71}7273log.display("Testing sync: method forced to compile");74status = checkStatus(status);7576return status;77}78}7980/* =================================================================== */8182/** Thread with method to be compiled. */83class genevents001Thread extends Thread {84public void run() {85// invoke tested method in a loop to provoke compilation86for (int i = 0; i < 100; i++) {87testedMethod(i);88}89}9091public int testedMethod(int i) {92int k = 0;93for (int j = 0; j < i; j++) {94k += (i - j);95}96return k;97}98}99100101