7195151: Multiplatform tescase for 6929067
Reviewed-by: kamg, kvn
This commit is contained in:
parent
04a9a14193
commit
b296b69382
@ -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
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
THIS_DIR=`pwd`
|
||||
|
||||
cp ${TESTSRC}${FS}invoke.c ${THIS_DIR}
|
||||
cp ${TESTSRC}${FS}T.java ${THIS_DIR}
|
||||
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 $?
|
||||
|
Loading…
Reference in New Issue
Block a user