changeset 11606:a0cdf5e20489

8144279: [TESTBUG] hotspot/runtime/jsig/Test8017498.sh should use native library build support Reviewed-by: ccheung, cjplummer, dcubed
author gthornbr
date Fri, 15 Jul 2016 10:31:50 -0700
parents 569c587c5935
children b08a2a6286f1
files make/test/JtregNative.gmk test/runtime/jsig/Test8017498.sh test/runtime/jsig/TestJNI.c test/runtime/jsig/libTestJNI.c
diffstat 4 files changed, 57 insertions(+), 156 deletions(-) [+]
line wrap: on
line diff
--- a/make/test/JtregNative.gmk	Fri Jul 15 10:25:16 2016 -0700
+++ b/make/test/JtregNative.gmk	Fri Jul 15 10:31:50 2016 -0700
@@ -64,7 +64,8 @@
 
 ifeq ($(OPENJDK_TARGET_OS), linux)
 BUILD_HOTSPOT_JTREG_NATIVE_SRC += \
-    $(HOTSPOT_TOPDIR)/test/runtime/execstack
+    $(HOTSPOT_TOPDIR)/test/runtime/execstack \
+    $(HOTSPOT_TOPDIR)/test/runtime/jsig
 endif
 
 ifeq ($(TOOLCHAIN_TYPE), solstudio)
--- a/test/runtime/jsig/Test8017498.sh	Fri Jul 15 10:25:16 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-#!/bin/sh
-
-#
-#  Copyright (c) 2013, 2014, 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 Test8017498.sh
-## @bug 8017498
-## @bug 8020791
-## @bug 8021296
-## @bug 8022301
-## @bug 8025519
-## @summary sigaction(sig) results in process hang/timed-out if sig is much greater than SIGRTMAX
-## @run shell/timeout=60 Test8017498.sh
-##
-
-if [ -z "${TESTSRC}" ]; then
-  TESTSRC="${PWD}"
-  echo "TESTSRC not set.  Using "${TESTSRC}" as default"
-fi
-
-echo "TESTSRC=${TESTSRC}"
-## Adding common setup Variables for running shell tests.
-. ${TESTSRC}/../../test_env.sh
-
-EXTRA_CFLAG=
-
-# set platform-dependent variables
-OS=`uname -s`
-case "$OS" in
-  Linux)
-    echo "Testing on Linux"
-    gcc_cmd=`which gcc`
-    if [ -z "$gcc_cmd" ]; then
-        echo "WARNING: gcc not found. Cannot execute test." 2>&1
-        exit 0;
-    fi
-    MY_LD_PRELOAD=${TESTJAVA}${FS}jre${FS}lib${FS}${VM_CPU}${FS}libjsig.so
-    if [ "$VM_BITS" = "32" ] && [ "$VM_CPU" != "arm" ] && [ "$VM_CPU" != "ppc" ]; then
-        EXTRA_CFLAG=-m32
-    fi
-    echo MY_LD_PRELOAD = ${MY_LD_PRELOAD}
-    ;;
-  *)
-    echo "Test passed; only valid for Linux"
-    exit 0;
-    ;;
-esac
-
-THIS_DIR=.
-
-cp "${TESTSRC}${FS}"*.java "${THIS_DIR}"
-${COMPILEJAVA}${FS}bin${FS}javac *.java
-
-$gcc_cmd -DLINUX -fPIC -shared \
-    ${EXTRA_CFLAG} -z noexecstack \
-    -o libTestJNI.so \
-    -I${COMPILEJAVA}${FS}include \
-    -I${COMPILEJAVA}${FS}include${FS}linux \
-    ${TESTSRC}${FS}TestJNI.c
-
-if [ $? -ne 0 ] ; then
-    echo "Compile failed, Ignoring failed compilation and forcing the test to pass"
-    exit 0
-fi
-
-# run the java test in the background
-cmd="LD_PRELOAD=$MY_LD_PRELOAD \
-    ${TESTJAVA}${FS}bin${FS}java \
-    -Djava.library.path=. -server TestJNI 100"
-echo "$cmd > test.out"
-eval $cmd > test.out
-
-if grep "old handler" test.out > ${NULL}; then
-    echo "Test Passed"
-    exit 0
-fi
-
-echo "Test Failed"
-exit 1
--- a/test/runtime/jsig/TestJNI.c	Fri Jul 15 10:25:16 2016 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-#include <stdio.h>
-#include <jni.h>
-#include <signal.h>
-#include <sys/ucontext.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void sig_handler(int sig, siginfo_t *info, ucontext_t *context) {
-
-    printf( " HANDLER (1) " );
-}
-
-JNIEXPORT void JNICALL Java_TestJNI_doSomething(JNIEnv *env, jclass klass, jint val) {
-    struct sigaction act;
-    struct sigaction oact;
-
-    act.sa_flags = SA_ONSTACK|SA_RESTART|SA_SIGINFO;
-    sigfillset(&act.sa_mask);
-    act.sa_handler = SIG_DFL;
-    act.sa_sigaction = (void (*)())sig_handler;
-    sigaction(0x20+val, &act, &oact);
-
-    printf( " doSomething(%d) " , val);
-    printf( " old handler = %p " , oact.sa_handler);
-}
-
-#ifdef __cplusplus
-}
-#endif
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/runtime/jsig/libTestJNI.c	Fri Jul 15 10:31:50 2016 -0700
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+#include <stdio.h>
+#include <jni.h>
+#include <signal.h>
+#include <sys/ucontext.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void sig_handler(int sig, siginfo_t *info, ucontext_t *context) {
+
+    printf( " HANDLER (1) " );
+}
+
+JNIEXPORT void JNICALL Java_TestJNI_doSomething(JNIEnv *env, jclass klass, jint val) {
+    struct sigaction act;
+    struct sigaction oact;
+
+    act.sa_flags = SA_ONSTACK|SA_RESTART|SA_SIGINFO;
+    sigfillset(&act.sa_mask);
+    act.sa_handler = SIG_DFL;
+    act.sa_sigaction = (void (*)())sig_handler;
+    sigaction(0x20+val, &act, &oact);
+
+    printf( " doSomething(%d) " , val);
+    printf( " old handler = %p " , oact.sa_handler);
+}
+
+#ifdef __cplusplus
+}
+#endif
+