8200126: [TESTBUG] Open source VM runtime signal tests

Open sourced the signal tests, updated make files and test groups accordingly

Reviewed-by: dholmes, ctornqvi, ihse
This commit is contained in:
Mikhailo Seledtsov 2018-04-03 08:56:46 -07:00
parent ddc83cb0e4
commit fc89e7ac24
40 changed files with 1931 additions and 2 deletions

View File

@ -65,8 +65,11 @@ else
exeinvoke.c exestack-gap.c
endif
BUILD_HOTSPOT_JTREG_EXECUTABLES_LIBS_exesigtest := -ljvm
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, \

View File

@ -220,7 +220,8 @@ tier1_runtime = \
-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 @@ hotspot_tier2_runtime = \
-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 \

View File

@ -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.

View File

@ -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<String> 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<String> 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");
}
}
}

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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 <jni.h>
#include <signal.h>
#include <stdarg.h>
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
/*
* 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; i++)
{
if (! strcmp(argv[i], "-sig") )
{
i++;
if ( 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; i++)
{
// parse VM options
if (!strcmp(argv[i], "-vmopt"))
{
i++;
if ( 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);
}