提交 09fd6aae 编写于 作者: K kevinw

7195151: Multiplatform tescase for 6929067

Reviewed-by: kamg, kvn
上级 279c6488
......@@ -4,6 +4,7 @@
## @test Test6929067.sh
## @bug 6929067
## @summary Stack guard pages should be removed when thread is detached
## @compile T.java
## @run shell Test6929067.sh
##
......@@ -33,31 +34,97 @@ case "$OS" in
;;
esac
# Choose arch: i386 or amd64 (test is Linux-specific)
${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -Xinternalversion > vm_version.out 2>&1
# Bitness:
# Cannot simply look at TESTVMOPTS as -d64 is not
# passed if there is only a 64-bit JVM available.
${TESTJAVA}/bin/java ${TESTVMOPTS} -version 2>1 | grep "64-Bit" >/dev/null
grep "64-Bit" vm_version.out > ${NULL}
if [ "$?" = "0" ]
then
ARCH=amd64
COMP_FLAG="-m64"
else
ARCH=i386
COMP_FLAG="-m32"
fi
LD_LIBRARY_PATH=.:${TESTJAVA}/jre/lib/${ARCH}/client:/usr/openwin/lib:/usr/dt/lib:/usr/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
THIS_DIR=`pwd`
# Architecture:
# Translate uname output to JVM directory name, but permit testing
# 32-bit x86 on an x64 platform.
ARCH=`uname -m`
case "$ARCH" in
x86_64)
if [ "$COMP_FLAG" = "-m32" ]; then
ARCH=i386
else
ARCH=amd64
fi
;;
ppc64)
if [ "$COMP_FLAG" = "-m32" ]; then
ARCH=ppc
else
ARCH=ppc64
fi
;;
sparc64)
if [ "$COMP_FLAG" = "-m32" ]; then
ARCH=sparc
else
ARCH=sparc64
fi
;;
arm*)
# 32-bit ARM machine: compiler may not recognise -m32
COMP_FLAG=""
ARCH=arm
;;
aarch64)
# 64-bit arm machine, could be testing 32 or 64-bit:
if [ "$COMP_FLAG" = "-m32" ]; then
ARCH=arm
else
ARCH=aarch64
fi
;;
i586)
ARCH=i386
;;
i686)
ARCH=i386
;;
# Assuming other ARCH values need no translation
esac
cp ${TESTSRC}${FS}invoke.c ${THIS_DIR}
cp ${TESTSRC}${FS}T.java ${THIS_DIR}
# VM type: need to know server or client
VMTYPE=client
grep Server vm_version.out > ${NULL}
if [ "$?" = "0" ]
then
VMTYPE=server
fi
LD_LIBRARY_PATH=.:${TESTJAVA}/jre/lib/${ARCH}/${VMTYPE}:/usr/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
cp ${TESTSRC}${FS}invoke.c .
# Copy the result of our @compile action:
cp ${TESTCLASSES}${FS}T.class .
${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -fullversion
${TESTJAVA}${FS}bin${FS}javac T.java
echo "Architecture: ${ARCH}"
echo "Compilation flag: ${COMP_FLAG}"
echo "VM type: ${VMTYPE}"
gcc -DLINUX ${COMP_FLAG} -o invoke \
-I${TESTJAVA}/include -I${TESTJAVA}/include/linux \
-L${TESTJAVA}/jre/lib/${ARCH}/${VMTYPE} \
-ljvm -lpthread invoke.c
gcc -o invoke -I${TESTJAVA}/include -I${TESTJAVA}/include/linux invoke.c ${TESTJAVA}/jre/lib/${ARCH}/client/libjvm.so
./invoke
exit $?
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册