jdk/test/java/lang/instrument/appendToClassLoaderSearch/CircularityErrorTest.sh
changeset 15254 3997a6f357cb
parent 5506 202f599c92aa
child 23010 6dadb192ad81
equal deleted inserted replaced
15253:0b17da070396 15254:3997a6f357cb
    32 then
    32 then
    33   echo "TESTSRC not set.  Test cannot execute.  Failed."
    33   echo "TESTSRC not set.  Test cannot execute.  Failed."
    34   exit 1
    34   exit 1
    35 fi
    35 fi
    36 
    36 
       
    37 if [ "${COMPILEJAVA}" = "" ]
       
    38 then
       
    39   COMPILEJAVA="${TESTJAVA}"
       
    40 fi
       
    41 
    37 . ${TESTSRC}/CommonSetup.sh
    42 . ${TESTSRC}/CommonSetup.sh
    38 
    43 
    39 # Setup to create circularity condition
    44 # Setup to create circularity condition
    40 
    45 
    41 # B extends A
    46 # B extends A
    42 # This yields us A.jar (containing A.class) and B.keep (class file)
    47 # This yields us A.jar (containing A.class) and B.keep (class file)
    43 rm -f "${TESTCLASSES}"/A.java "${TESTCLASSES}"/B.java
    48 rm -f "${TESTCLASSES}"/A.java "${TESTCLASSES}"/B.java
    44 cp "${TESTSRC}"/A.1 "${TESTCLASSES}"/A.java
    49 cp "${TESTSRC}"/A.1 "${TESTCLASSES}"/A.java
    45 cp "${TESTSRC}"/B.1 "${TESTCLASSES}"/B.java
    50 cp "${TESTSRC}"/B.1 "${TESTCLASSES}"/B.java
    46 (cd "${TESTCLASSES}"; \
    51 (cd "${TESTCLASSES}"; \
    47     $JAVAC A.java B.java; \
    52     $JAVAC ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} A.java B.java; \
    48     $JAVAC -d . "${TESTSRC}"/CircularityErrorTest.java; \
    53     $JAVAC ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} -d . "${TESTSRC}"/CircularityErrorTest.java; \
    49     $JAR cf A.jar A.class; \
    54     $JAR ${TESTTOOLVMOPTS} cf A.jar A.class; \
    50     rm -f A.class; mv B.class B.keep)
    55     rm -f A.class; mv B.class B.keep)
    51 
    56 
    52 # A extends B
    57 # A extends B
    53 # This yields us A.class
    58 # This yields us A.class
    54 rm -f "${TESTCLASSES}"/A.java "${TESTCLASSES}"/B.java
    59 rm -f "${TESTCLASSES}"/A.java "${TESTCLASSES}"/B.java
    55 cp "${TESTSRC}"/A.2 "${TESTCLASSES}"/A.java
    60 cp "${TESTSRC}"/A.2 "${TESTCLASSES}"/A.java
    56 cp "${TESTSRC}"/B.2 "${TESTCLASSES}"/B.java
    61 cp "${TESTSRC}"/B.2 "${TESTCLASSES}"/B.java
    57 (cd "${TESTCLASSES}"; \
    62 (cd "${TESTCLASSES}"; \
    58      $JAVAC A.java B.java; rm -f B.class A.java B.java)
    63      $JAVAC ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} A.java B.java; rm -f B.class A.java B.java)
    59 
    64 
    60 # Move B.keep to B.class creates the A extends B and
    65 # Move B.keep to B.class creates the A extends B and
    61 # B extends A condition.
    66 # B extends A condition.
    62 (cd "${TESTCLASSES}"; mv B.keep B.class)
    67 (cd "${TESTCLASSES}"; mv B.keep B.class)
    63 
    68 
    65 MANIFEST="${TESTCLASSES}"/agent.mf
    70 MANIFEST="${TESTCLASSES}"/agent.mf
    66 rm -f "${MANIFEST}"
    71 rm -f "${MANIFEST}"
    67 echo "Premain-Class: CircularityErrorTest" > "${MANIFEST}"
    72 echo "Premain-Class: CircularityErrorTest" > "${MANIFEST}"
    68 
    73 
    69 # Setup test case as an agent
    74 # Setup test case as an agent
    70 $JAR -cfm "${TESTCLASSES}"/CircularityErrorTest.jar "${MANIFEST}" \
    75 $JAR ${TESTTOOLVMOPTS} -cfm "${TESTCLASSES}"/CircularityErrorTest.jar "${MANIFEST}" \
    71   -C "${TESTCLASSES}" CircularityErrorTest.class
    76   -C "${TESTCLASSES}" CircularityErrorTest.class
    72 
    77 
    73 # Finally we run the test
    78 # Finally we run the test
    74 (cd "${TESTCLASSES}";
    79 (cd "${TESTCLASSES}";
    75   $JAVA ${TESTVMOPTS} -javaagent:CircularityErrorTest.jar CircularityErrorTest)
    80   $JAVA ${TESTVMOPTS} -javaagent:CircularityErrorTest.jar CircularityErrorTest)