8037279: runtime/6929067/Test6929067.sh crashes on 32bit linux

The test compile launcher with TESTJAVA but attempt to load vm from COMPILEJAVA

Reviewed-by: sla, sspitsyn
This commit is contained in:
Dmitry Samersoff 2014-04-09 06:09:43 -07:00
parent c8990959f2
commit 0301b791ef

View File

@ -18,115 +18,39 @@ echo "TESTSRC=${TESTSRC}"
## Adding common setup Variables for running shell tests. ## Adding common setup Variables for running shell tests.
. ${TESTSRC}/../../test_env.sh . ${TESTSRC}/../../test_env.sh
# set platform-dependent variables if [ "${VM_OS}" != "linux" ]
OS=`uname -s`
case "$OS" in
Linux)
gcc_cmd=`which gcc`
if [ "x$gcc_cmd" == "x" ]; then
echo "WARNING: gcc not found. Cannot execute test." 2>&1
exit 0;
fi
NULL=/dev/null
PS=":"
FS="/"
;;
* )
echo "Test passed; only valid for Linux"
exit 0;
;;
esac
${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.
grep "64-Bit" vm_version.out > ${NULL}
if [ "$?" = "0" ]
then then
COMP_FLAG="-m64" echo "Test only valid for Linux"
else exit 0
COMP_FLAG="-m32"
fi fi
gcc_cmd=`which gcc`
# Architecture: if [ "x$gcc_cmd" = "x" ]; then
# Translate uname output to JVM directory name, but permit testing echo "WARNING: gcc not found. Cannot execute test." 2>&1
# 32-bit x86 on an x64 platform. exit 0;
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 fi
CFLAGS=-m${VM_BITS}
LD_LIBRARY_PATH=.:${COMPILEJAVA}/jre/lib/${ARCH}/${VMTYPE}:/usr/lib:$LD_LIBRARY_PATH LD_LIBRARY_PATH=.:${TESTJAVA}/jre/lib/${VM_CPU}/${VM_TYPE}:/usr/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
cp ${TESTSRC}${FS}*.java ${THIS_DIR} cp ${TESTSRC}/*.java ${THIS_DIR}
${COMPILEJAVA}${FS}bin${FS}javac *.java ${COMPILEJAVA}/bin/javac *.java
echo "Architecture: ${VM_CPU}"
echo "Compilation flag: ${CFLAGS}"
echo "VM type: ${VM_TYPE}"
echo "LD_LIBRARY_PATH: ${LD_LIBRARY_PATH}"
echo "Architecture: ${ARCH}"
echo "Compilation flag: ${COMP_FLAG}"
echo "VM type: ${VMTYPE}"
# Note pthread may not be found thus invoke creation will fail to be created. # Note pthread may not be found thus invoke creation will fail to be created.
# Check to ensure you have a /usr/lib/libpthread.so if you don't please look # Check to ensure you have a /usr/lib/libpthread.so if you don't please look
# for /usr/lib/`uname -m`-linux-gnu version ensure to add that path to below compilation. # for /usr/lib/`uname -m`-linux-gnu version ensure to add that path to below compilation.
$gcc_cmd -DLINUX ${COMP_FLAG} -o invoke \ $gcc_cmd -DLINUX ${CFLAGS} -o invoke \
-I${COMPILEJAVA}/include -I${COMPILEJAVA}/include/linux \ -I${TESTJAVA}/include -I${TESTJAVA}/include/linux \
-L${COMPILEJAVA}/jre/lib/${ARCH}/${VMTYPE} \ -L${TESTJAVA}/jre/lib/${VM_CPU}/${VM_TYPE} \
${TESTSRC}${FS}invoke.c -ljvm -lpthread ${TESTSRC}/invoke.c -ljvm -lpthread
./invoke ./invoke
exit $? exit $?