test/runtime/6929067/Test6929067.sh

Print this page
rev 4503 : 8009152: A number of jtreg tests need review/improvement
Summary: Added a new test_env.txt file to capture common shell variable. Added concept of COMPILEJAVA for use when TESTJAVA is a JRE. If COMPILEJAVA not set then TESTJAVA will be the default with assumption it is a JDK.
Reviewed-by: kvn, brutisso, coleenp

*** 2,25 **** ## ## @test Test6929067.sh ## @bug 6929067 ## @summary Stack guard pages should be removed when thread is detached ## @run shell Test6929067.sh ## ! if [ "${TESTSRC}" = "" ] - then TESTSRC=. - fi - - if [ "${TESTJAVA}" = "" ] then ! PARENT=`dirname \`which java\`` ! TESTJAVA=`dirname ${PARENT}` ! echo "TESTJAVA not set, selecting " ${TESTJAVA} ! echo "If this is incorrect, try setting the variable manually." fi # set platform-dependent variables OS=`uname -s` case "$OS" in Linux) --- 2,23 ---- ## ## @test Test6929067.sh ## @bug 6929067 ## @summary Stack guard pages should be removed when thread is detached + ## @compile T.java ## @run shell Test6929067.sh ## ! set -x if [ "${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 # set platform-dependent variables OS=`uname -s` case "$OS" in Linux)
*** 31,63 **** echo "Test passed; only valid for Linux" exit 0; ;; esac ! # Choose arch: i386 or amd64 (test is Linux-specific) # 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 if [ "$?" = "0" ] then ! ARCH=amd64 else ARCH=i386 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` ! cp ${TESTSRC}${FS}invoke.c ${THIS_DIR} ! cp ${TESTSRC}${FS}T.java ${THIS_DIR} ! ${TESTJAVA}${FS}bin${FS}java ${TESTVMOPTS} -fullversion - ${TESTJAVA}${FS}bin${FS}javac T.java - - gcc -o invoke -I${TESTJAVA}/include -I${TESTJAVA}/include/linux invoke.c ${TESTJAVA}/jre/lib/${ARCH}/client/libjvm.so ./invoke exit $? --- 29,128 ---- 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 ! COMP_FLAG="-m64" else + COMP_FLAG="-m32" + fi + + + # 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=.:${COMPILEJAVA}/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 . + 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. + # 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. ! gcc -DLINUX ${COMP_FLAG} -o invoke \ ! -I${COMPILEJAVA}/include -I${COMPILEJAVA}/include/linux \ ! -L${COMPILEJAVA}/jre/lib/${ARCH}/${VMTYPE} \ ! -ljvm -lpthread invoke.c ./invoke exit $?