--- old/make/test/JtregNativeHotspot.gmk 2018-03-29 15:54:34.813539816 -0700 +++ new/make/test/JtregNativeHotspot.gmk 2018-03-29 15:54:34.633539812 -0700 @@ -60,6 +60,7 @@ BUILD_HOTSPOT_JTREG_EXECUTABLES_LIBS_exestack-gap := -ljvm -lpthread BUILD_TEST_exeinvoke_exeinvoke.c_OPTIMIZATION := NONE BUILD_HOTSPOT_JTREG_EXECUTABLES_LIBS_exeFPRegs := -ldl + BUILD_HOTSPOT_JTREG_EXECUTABLES_LIBS_exesigtest := -ljvm else BUILD_HOTSPOT_JTREG_EXCLUDE += libtest-rw.c libtest-rwx.c libTestJNI.c \ exeinvoke.c exestack-gap.c @@ -67,6 +68,7 @@ ifeq ($(OPENJDK_TARGET_OS), windows) BUILD_HOTSPOT_JTREG_EXECUTABLES_CFLAGS_exeFPRegs := -MT + BUILD_HOTSPOT_JTREG_EXCLUDE += exesigtest.c endif $(eval $(call SetupTestFilesCompilation, BUILD_HOTSPOT_JTREG_LIBRARIES, \ --- old/test/hotspot/jtreg/TEST.groups 2018-03-29 15:54:35.289539828 -0700 +++ new/test/hotspot/jtreg/TEST.groups 2018-03-29 15:54:35.113539824 -0700 @@ -220,7 +220,8 @@ -runtime/containers/ \ sanity/ \ testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java \ - -:tier1_runtime_appcds_exclude + -:tier1_runtime_appcds_exclude \ + -runtime/signal hotspot_cds = \ runtime/SharedArchiveFile/ \ @@ -263,7 +264,8 @@ -runtime/containers/ \ -:tier1_runtime \ -:tier1_serviceability \ - -:hotspot_tier2_runtime_platform_agnostic + -:hotspot_tier2_runtime_platform_agnostic \ + -runtime/signal hotspot_tier2_runtime_platform_agnostic = \ runtime/SelectionResolution \ --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/README 2018-03-29 15:54:35.593539836 -0700 @@ -0,0 +1,59 @@ +Copyright (c) 2008, 2018, 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. + + +Briefly, the tests cover the following scenarios: +1. prepre + set signal handlers -> create JVM -> send signals -> destroy JVM -> check signal handlers were called + +2. prepost + set signal handlers -> create JVM -> destroy JVM -> send signals -> check signal handlers were called + +3. postpre + create JVM ->set signal handlers -> send signals -> destroy JVM -> check signal handlers were called + +4. postpost + create JVM -> set signal handlers -> destroy JVM -> send signals -> check signal handlers were called + +There is one more scenario called 'nojvm'. +In this case no jvm is created, so pure signal testing is done. + +Signal handlers don't do anything, so the only fact that signal handler was called is checked. +Also 2 different ways of setting signal handlers are tested: sigaction, sigset. + +For 'postpre' and 'postpro' libjsig.so is used to chain signal handlers behind VM installed ones. + +=> Current tests cover the following cases (don't count 'nojvm' scenario): +1. Support for pre-installed signal handlers when the HotSpot VM is created. +2. Support for signal handler installation after the HotSpot VM is created inside JNI code + + +Notes: + +SIGQUIT, SIGTERM, SIGINT, and SIGHUP signals cannot be chained. +If the application needs to handle these signals, the -Xrs option needs +to be specified. So, test these signals only with -Xrs flag. + +On Linux and Mac OS X, SIGUSR2 is used to implement suspend and resume. So, +don't test SIGUSR2 on Linux and Mac OS X. + +SIGJVM1 and SIGJVM2 exist only on Solaris and are reserved for exclusive use +by the JVM. So don't test SIGJVM1 and SIGJVM2. --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/SigTestDriver.java 2018-03-29 15:54:35.949539845 -0700 @@ -0,0 +1,178 @@ +/* + * Copyright (c) 2007, 2018, 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. + */ + +import jdk.test.lib.Platform; +import jdk.test.lib.Utils; +import jdk.test.lib.process.OutputAnalyzer; +import jdk.test.lib.process.ProcessTools; + +import java.io.File; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class SigTestDriver { + public static void main(String[] args) { + // No signal tests on Windows yet; so setting to no-op + if (Platform.isWindows()) { + System.out.println("SKIPPED: no signal tests on Windows, ignore."); + return; + } + + // At least one argument should be specified + if ( (args == null) || (args.length < 1) ) { + throw new IllegalArgumentException("At lease one argument should be specified, the signal name"); + } + + String signame = args[0]; + switch (signame) { + case "SIGWAITING": + case "SIGKILL": + case "SIGSTOP": { + System.out.println("SKIPPED: signals SIGWAITING, SIGKILL and SIGSTOP can't be tested, ignore."); + return; + } + case "SIGUSR2": { + if (Platform.isLinux()) { + System.out.println("SKIPPED: SIGUSR2 can't be tested on Linux, ignore."); + return; + } else if (Platform.isOSX()) { + System.out.println("SKIPPED: SIGUSR2 can't be tested on OS X, ignore."); + return; + } + } + } + + Path test = Paths.get(System.getProperty("test.nativepath")) + .resolve("sigtest") + .toAbsolutePath(); + String envVar = Platform.isWindows() ? "PATH" : + (Platform.isOSX() ? "DYLD_LIBRARY_PATH" : "LD_LIBRARY_PATH"); + + List cmd = new ArrayList<>(); + Collections.addAll(cmd, + test.toString(), + "-sig", + signame, + "-mode", + null, // modeIdx + "-scenario", + null // scenarioIdx + ); + int modeIdx = 4; + int scenarioIdx = 6; + + // add external flags + cmd.addAll(vmargs()); + + // add test specific arguments w/o signame + cmd.addAll(Arrays.asList(args) + .subList(1, args.length)); + + boolean passed = true; + + for (String mode : new String[]{"sigset", "sigaction"}) { + for (String scenario : new String[] {"nojvm", "prepre", "prepost", "postpre", "postpost"}) { + cmd.set(modeIdx, mode); + cmd.set(scenarioIdx, scenario); + System.out.printf("START TESTING: SIGNAL = %s, MODE = %s, SCENARIO=%s%n",signame, mode, scenario); + System.out.printf("Do execute: %s%n", cmd.toString()); + + ProcessBuilder pb = new ProcessBuilder(cmd); + pb.environment().merge(envVar, jvmLibDir().toString(), + (x, y) -> y + File.pathSeparator + x); + pb.environment().put("CLASSPATH", Utils.TEST_CLASS_PATH); + + switch (scenario) { + case "postpre": + case "postpost": { + pb.environment().merge("LD_PRELOAD", libjsig().toString(), + (x, y) -> y + File.pathSeparator + x); + } + } + + try { + OutputAnalyzer oa = ProcessTools.executeProcess(pb); + oa.reportDiagnosticSummary(); + int exitCode = oa.getExitValue(); + if (exitCode == 0) { + System.out.println("PASSED with exit code 0"); + } else { + System.out.println("FAILED with exit code " + exitCode); + passed = false; + } + } catch (Exception e) { + throw new Error("execution failed", e); + } + } + } + + if (!passed) { + throw new Error("test failed"); + } + } + + private static List vmargs() { + return Stream.concat(Arrays.stream(Utils.VM_OPTIONS.split(" ")), + Arrays.stream(Utils.JAVA_OPTIONS.split(" "))) + .filter(s -> !s.isEmpty()) + .filter(s -> s.startsWith("-X")) + .flatMap(arg -> Stream.of("-vmopt", arg)) + .collect(Collectors.toList()); + } + + private static Path libjsig() { + return jvmLibDir().resolve((Platform.isWindows() ? "" : "lib") + + "jsig." + Platform.sharedLibraryExt()); + } + + private static Path jvmLibDir() { + Path dir = Paths.get(Utils.TEST_JDK); + if (Platform.isWindows()) { + return dir.resolve("bin") + .resolve(variant()) + .toAbsolutePath(); + } else { + return dir.resolve("lib") + .resolve(variant()) + .toAbsolutePath(); + } + } + + private static String variant() { + if (Platform.isServer()) { + return "server"; + } else if (Platform.isClient()) { + return "client"; + } else if (Platform.isMinimal()) { + return "minimal"; + } else { + throw new Error("TESTBUG: unsupported vm variant"); + } + } +} --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigalrm.java 2018-03-29 15:54:36.309539854 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigalrm01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGALRM + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigbus.java 2018-03-29 15:54:36.669539863 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigbus01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGBUS + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigcld.java 2018-03-29 15:54:37.025539872 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigcld01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGCLD + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigcont.java 2018-03-29 15:54:37.385539881 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigcont01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGCONT + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigemt.java 2018-03-29 15:54:37.741539890 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigemt01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGEMT + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigfpe.java 2018-03-29 15:54:38.101539899 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigfpe01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGFPE + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigfreeze.java 2018-03-29 15:54:38.457539908 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigfreeze01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGFREEZE + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSighup.java 2018-03-29 15:54:38.817539917 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sighup01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGHUP -vmopt -XX:+PrintCommandLineFlags -vmopt -Xrs + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigill.java 2018-03-29 15:54:39.177539926 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigill01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGILL + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigint.java 2018-03-29 15:54:39.537539935 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigint01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGINT -vmopt -XX:+PrintCommandLineFlags -vmopt -Xrs + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigiot.java 2018-03-29 15:54:39.897539944 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigiot01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGIOT + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSiglost.java 2018-03-29 15:54:40.253539953 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/siglost01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGLOST + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSiglwp.java 2018-03-29 15:54:40.613539962 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/siglwp01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGLWP + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigpipe.java 2018-03-29 15:54:40.969539971 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigpipe01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGPIPE + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigpoll.java 2018-03-29 15:54:41.329539980 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigpoll01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGPOLL + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigprof.java 2018-03-29 15:54:41.689539989 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigprof01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGPROF + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigpwr.java 2018-03-29 15:54:42.049539998 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigpwr01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGPWR + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigquit.java 2018-03-29 15:54:42.409540008 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigquit01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGQUIT -vmopt -XX:+PrintCommandLineFlags -vmopt -Xrs + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigsegv.java 2018-03-29 15:54:42.769540017 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigsegv01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGSEGV + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigstop.java 2018-03-29 15:54:43.129540026 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigstop01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGSTOP + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigsys.java 2018-03-29 15:54:43.489540035 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigsys01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGSYS + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigterm.java 2018-03-29 15:54:43.849540044 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigterm01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGTERM -vmopt -XX:+PrintCommandLineFlags -vmopt -Xrs + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigthaw.java 2018-03-29 15:54:44.213540053 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigthaw01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGTHAW + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigtrap.java 2018-03-29 15:54:44.569540062 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigtrap01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGTRAP + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigtstp.java 2018-03-29 15:54:44.925540071 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigtstp01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGTSTP + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigttin.java 2018-03-29 15:54:45.285540080 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigttin01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGTTIN + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigttou.java 2018-03-29 15:54:45.641540089 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigttou01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGTTOU + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigurg.java 2018-03-29 15:54:46.001540098 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigurg01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGURG + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigusr1.java 2018-03-29 15:54:46.357540107 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigusr101. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGUSR1 + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigusr2.java 2018-03-29 15:54:46.721540116 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigusr201. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGUSR2 + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigvtalrm.java 2018-03-29 15:54:47.081540125 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigvtalrm01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGVTALRM + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigwinch.java 2018-03-29 15:54:47.441540134 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigwinch01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGWINCH + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigxcpu.java 2018-03-29 15:54:47.809540143 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigxcpu01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGXCPU + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigxfsz.java 2018-03-29 15:54:48.169540153 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigxfsz01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGXFSZ + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/TestSigxres.java 2018-03-29 15:54:48.525540162 -0700 @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2017, 2018, 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. + */ + + +/* + * @test + * @requires os.family != "windows" + * + * @summary converted from VM testbase runtime/signal/sigxres01. + * VM testbase keywords: [signal, runtime, linux, solaris, macosx] + * + * @library /test/lib + * @run main/native SigTestDriver SIGXRES + */ + --- /dev/null 2018-03-29 10:41:12.201066302 -0700 +++ new/test/hotspot/jtreg/runtime/signal/exesigtest.c 2018-03-29 15:54:48.881540170 -0700 @@ -0,0 +1,462 @@ +/* + * Copyright (c) 2007, 2018, 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. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * This is the main program to test the signal chaining/ handling functionality + * See bugs 6277077 and 6414402 + */ + +#define TRUE 1 +#define FALSE 0 +typedef int boolean; + +static JNIEnv *env; +static JavaVM *vm; + +// static int sigid = 0; + +// Define the test pass/ fail codes, may be we can use +// nsk/share/native/native_consts.h in future +static int TEST_PASSED=0; +static int TEST_FAILED=1; + +// This variable is used to notify whether signal has been received or not. +static volatile sig_atomic_t sig_received = 0; + +static char *mode = 0; +static char *scenario = 0; +static char *signal_name; +static int signal_num = -1; + +static JavaVMOption *options = 0; +static int numOptions = 0; + +typedef struct +{ + int sigNum; + const char* sigName; +} signalDefinition; + +static signalDefinition signals[] = +{ + {SIGINT, "SIGINT"}, + {SIGQUIT, "SIGQUIT"}, + {SIGILL, "SIGILL"}, + {SIGTRAP, "SIGTRAP"}, + {SIGIOT, "SIGIOT"}, +#ifdef SIGEMT + {SIGEMT, "SIGEMT"}, +#endif + {SIGFPE, "SIGFPE"}, + {SIGBUS, "SIGBUS"}, + {SIGSEGV, "SIGSEGV"}, + {SIGSYS, "SIGSYS"}, + {SIGPIPE, "SIGPIPE"}, + {SIGALRM, "SIGALRM"}, + {SIGTERM, "SIGTERM"}, + {SIGUSR1, "SIGUSR1"}, + {SIGUSR2, "SIGUSR2"}, +#ifdef SIGCLD + {SIGCLD, "SIGCLD"}, +#endif +#ifdef SIGPWR + {SIGPWR, "SIGPWR"}, +#endif + {SIGWINCH, "SIGWINCH"}, + {SIGURG, "SIGURG"}, +#ifdef SIGPOLL + {SIGPOLL, "SIGPOLL"}, +#endif + {SIGSTOP, "SIGSTOP"}, + {SIGTSTP, "SIGTSTP"}, + {SIGCONT, "SIGCONT"}, + {SIGTTIN, "SIGTTIN"}, + {SIGTTOU, "SIGTTOU"}, + {SIGVTALRM, "SIGVTALRM"}, + {SIGPROF, "SIGPROF"}, + {SIGXCPU, "SIGXCPU"}, + {SIGXFSZ, "SIGXFSZ"}, +#ifdef SIGWAITING + {SIGWAITING, "SIGWAITING"}, +#endif +#ifdef SIGLWP + {SIGLWP, "SIGLWP"}, +#endif +#ifdef SIGFREEZE + {SIGFREEZE, "SIGFREEZE"}, +#endif +#ifdef SIGTHAW + {SIGTHAW, "SIGTHAW"}, +#endif +#ifdef SIGLOST + {SIGLOST, "SIGLOST"}, +#endif +#ifdef SIGXRES + {SIGXRES, "SIGXRES"}, +#endif + {SIGHUP, "SIGHUP"} +}; + +boolean isSupportedSigScenario () +{ + if ( (!strcmp(scenario, "nojvm")) || (!strcmp(scenario, "prepre")) || (!strcmp(scenario, "prepost")) || + (!strcmp(scenario, "postpost")) || (!strcmp(scenario, "postpre")) ) + { + // printf("%s is a supported scenario\n", scenario); + return TRUE; + } + else + { + printf("ERROR: %s is not a supported scenario\n", scenario); + return FALSE; + } +} + +boolean isSupportedSigMode () +{ + if ( (!strcmp(mode, "sigset")) || (!strcmp(mode, "sigaction")) ) + { + // printf("%s is a supported mode\n", mode); + return TRUE; + } + else + { + printf("ERROR: %s is not a supported mode\n", mode); + return FALSE; + } +} + +int getSigNumBySigName(const char* sigName) +{ + int signals_len, sigdef_len, total_sigs, i=0; + + if (sigName == NULL) return -1; + + signals_len = sizeof(signals); + sigdef_len = sizeof(signalDefinition); + total_sigs = signals_len / sigdef_len; + for (i = 0; i < total_sigs; i++) + { + // printf("Inside for loop, i = %d\n", i); + if (!strcmp(sigName, signals[i].sigName)) + return signals[i].sigNum; + } + + return -1; +} + +// signal handler +void handler(int sig) +{ + printf("%s: signal handler for signal %d has been processed\n", signal_name, signal_num); + sig_received = 1; +} + +// Initialize VM with given options +void initVM() +{ + JavaVMInitArgs vm_args; + int i =0; + jint result; + + vm_args.nOptions = numOptions; + vm_args.version = JNI_VERSION_1_2; + vm_args.ignoreUnrecognized = JNI_FALSE; + vm_args.options = options; + +/* try hardcoding options + JavaVMOption option1[2]; + option1[0].optionString="-XX:+PrintCommandLineFlags"; + option1[1].optionString="-Xrs"; +*/ + vm_args.options=options; + vm_args.nOptions=numOptions; + + // Print the VM options in use + printf("initVM: numOptions = %d\n", vm_args.nOptions); + for (i = 0; i < vm_args.nOptions; i++) + { + printf("\tvm_args.options[%d].optionString = %s\n", i, vm_args.options[i].optionString); + } + + // Initialize VM with given options + result = JNI_CreateJavaVM( &vm, (void **) &env, &vm_args ); + + // Did the VM initialize successfully ? + if (result != 0) + { + printf("ERROR: cannot create Java VM.\n"); + exit(TEST_FAILED); + } + + (*vm)->AttachCurrentThread(vm, (void **) &env, (void *) 0); + printf("initVM: JVM started and attached\n"); +} + +// Function to set up signal handler +void setSignalHandler() +{ + int retval = 0 ; + + if (!strcmp(mode, "sigaction")) + { + struct sigaction act; + act.sa_handler = handler; + sigemptyset(&act.sa_mask); + act.sa_flags = 0; + retval = sigaction(signal_num, &act, 0); + if (retval != 0) { + printf("ERROR: failed to set signal handler using function %s, error=%s\n", mode, strerror(errno)); + exit(TEST_FAILED); + } + } // end - dealing with sigaction + else if (!strcmp(mode, "sigset")) + { + sigset(signal_num, handler); + } // end dealing with sigset + printf("%s: signal handler using function '%s' has been set\n", signal_name, mode); +} + +// Function to invoke given signal +void invokeSignal() +{ + int pid, retval; + sigset_t new_set, old_set; + + pid = getpid(); + retval = 0; + + // we need to unblock the signal in case it was previously blocked by JVM + // and as result inherited by child process + // (this is at least the case for SIGQUIT in case -Xrs flag is not used). + // Otherwise the test will timeout. + sigemptyset(&new_set); + sigaddset(&new_set, signal_num); + sigprocmask(SIG_UNBLOCK, &new_set, &old_set); + if (retval != 0) { + printf("ERROR: failed to unblock signal, error=%s\n", strerror(errno)); + exit(TEST_FAILED); + } + + // send the signal + retval = kill(pid, signal_num); + if (retval != 0) + { + printf("ERROR: failed to send signal %s, error=%s\n", signal_name, strerror(errno)); + exit(TEST_FAILED); + } + + // set original mask for the signal + retval = sigprocmask(SIG_SETMASK, &old_set, NULL); + if (retval != 0) { + printf("ERROR: failed to set original mask for signal, error=%s\n", strerror(errno)); + exit(TEST_FAILED); + } + + printf("%s: signal has been sent successfully\n", signal_name); +} + +// Usage function +void printUsage() +{ + printf("Usage: sigtest -sig {signal_name} -mode {signal | sigset | sigaction } -scenario {nojvm | postpre | postpost | prepre | prepost}> [-vmopt jvm_option] \n"); + printf("\n"); + exit(TEST_FAILED); +} + +// signal handler BEFORE VM initialization AND +// Invoke signal BEFORE VM exits +void scen_prepre() +{ + setSignalHandler(); + initVM(); + invokeSignal(); + (*vm)->DestroyJavaVM(vm); +} + +// signal handler BEFORE VM initialization AND +// Invoke signal AFTER VM exits +void scen_prepost() +{ + setSignalHandler(); + initVM(); + (*vm)->DestroyJavaVM(vm); + invokeSignal(); +} + +// signal handler AFTER VM initialization AND +// Invoke signal BEFORE VM exits +void scen_postpre() +{ + initVM(); + setSignalHandler(); + invokeSignal(); + (*vm)->DestroyJavaVM(vm); +} + +// signal handler AFTER VM initializationAND +// Invoke signal AFTER VM exits +void scen_postpost() +{ + initVM(); + setSignalHandler(); + (*vm)->DestroyJavaVM(vm); + invokeSignal(); +} + +// signal handler with no JVM in picture +void scen_nojvm() +{ + setSignalHandler(); + invokeSignal(); +} + +void run() +{ + // print the current scenario + if (!strcmp(scenario, "postpre")) + scen_postpre(); + else if (!strcmp(scenario, "postpost")) + scen_postpost(); + else if (!strcmp(scenario, "prepre")) + scen_prepre(); + else if (!strcmp(scenario, "prepost")) + scen_prepost(); + else if (!strcmp(scenario, "nojvm")) + scen_nojvm(); +} + +// main main +int main(int argc, char **argv) +{ + int i=0, j; + + signal_num = -1; + signal_name = NULL; + + // Parse the arguments and find out how many vm args we have + for (i=1; i= argc ) + { + printUsage(); + } + signal_name = argv[i]; + + } + else if (!strcmp(argv[i], "-mode")) + { + i++; + if ( i >= argc ) + { + printUsage(); + } + mode = argv[i]; + } + else if (!strcmp(argv[i], "-scenario")) + { + i++; + if ( i >= argc ) + { + printUsage(); + } + scenario = argv[i]; + } + else if (!strcmp(argv[i], "-vmopt")) + { + i++; + if ( i >= argc ) + { + printUsage(); + } + numOptions++; + } + else + { + printUsage(); + } + } + + if ( !isSupportedSigScenario() || !isSupportedSigMode() ) + { + printUsage(); + } + + // get signal number by it's name + signal_num = getSigNumBySigName(signal_name); + if (signal_num == -1) + { + printf("%s: unknown signal, perhaps is not supported on this platform, ignore\n", + signal_name); + exit(TEST_PASSED); + } + + j = 0; + // Initialize given number of VM options + if (numOptions > 0) + { + options = (JavaVMOption *) malloc(numOptions * sizeof(JavaVMOption)); + for (i=0; i= argc ) + { + printUsage(); + } + options[j].optionString = argv[i]; + j++; + } + } + } + + // do signal invocation + printf("%s: start testing: signal_num=%d, mode=%s, scenario=%s\n", signal_name, signal_num, mode, scenario); + run(); + + while (!sig_received) { + sleep(1); + printf("%s: waiting for getting signal 1sec ...\n", signal_name); + } + + printf("%s: signal has been received\n", signal_name); + + free(options); + + return (sig_received ? TEST_PASSED : TEST_FAILED); +}