test/java/lang/instrument/appendToClassLoaderSearch/ClassUnloadTest.sh

Print this page




  48 FOO="${OTHERDIR}"/Foo.java
  49 BAR="${OTHERDIR}"/Bar.java
  50 rm -f "${FOO}" "${BAR}"
  51 
  52 cat << EOF > "${FOO}"
  53   public class Foo {
  54       public static boolean doSomething() {
  55           try {
  56               Bar b = new Bar();
  57               return true;
  58           } catch (NoClassDefFoundError x) {
  59               return false;
  60           }
  61       }
  62   }
  63 EOF
  64 
  65 echo "public class Bar { }" > "${BAR}"
  66 
  67 (cd "${OTHERDIR}"; \
  68   $JAVAC Foo.java Bar.java; $JAR cf "${OTHERDIR}"/Bar.jar Bar.class; \

  69   rm -f Bar.class)
  70 
  71 # Create the manifest
  72 MANIFEST="${TESTCLASSES}"/agent.mf
  73 rm -f "${MANIFEST}"
  74 echo "Premain-Class: ClassUnloadTest" > "${MANIFEST}"
  75 
  76 # Setup test case as an agent
  77 $JAR -cfm "${TESTCLASSES}"/ClassUnloadTest.jar "${MANIFEST}" \
  78   -C "${TESTCLASSES}" ClassUnloadTest.class
  79 
  80 # Finally we run the test
  81 (cd "${TESTCLASSES}"; \
  82   $JAVA ${TESTVMOPTS} -Xverify:none -XX:+TraceClassUnloading \
  83     -javaagent:ClassUnloadTest.jar ClassUnloadTest "${OTHERDIR}" Bar.jar)


  48 FOO="${OTHERDIR}"/Foo.java
  49 BAR="${OTHERDIR}"/Bar.java
  50 rm -f "${FOO}" "${BAR}"
  51 
  52 cat << EOF > "${FOO}"
  53   public class Foo {
  54       public static boolean doSomething() {
  55           try {
  56               Bar b = new Bar();
  57               return true;
  58           } catch (NoClassDefFoundError x) {
  59               return false;
  60           }
  61       }
  62   }
  63 EOF
  64 
  65 echo "public class Bar { }" > "${BAR}"
  66 
  67 (cd "${OTHERDIR}"; \
  68   $JAVAC ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} Foo.java Bar.java; \
  69   $JAR ${TESTTOOLVMOPTS} cf "${OTHERDIR}"/Bar.jar Bar.class; \
  70   rm -f Bar.class)
  71 
  72 # Create the manifest
  73 MANIFEST="${TESTCLASSES}"/agent.mf
  74 rm -f "${MANIFEST}"
  75 echo "Premain-Class: ClassUnloadTest" > "${MANIFEST}"
  76 
  77 # Setup test case as an agent
  78 $JAR ${TESTTOOLVMOPTS} -cfm "${TESTCLASSES}"/ClassUnloadTest.jar "${MANIFEST}" \
  79   -C "${TESTCLASSES}" ClassUnloadTest.class
  80 
  81 # Finally we run the test
  82 (cd "${TESTCLASSES}"; \
  83   $JAVA ${TESTVMOPTS} -Xverify:none -XX:+TraceClassUnloading \
  84     -javaagent:ClassUnloadTest.jar ClassUnloadTest "${OTHERDIR}" Bar.jar)