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) |