1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
/**
* @test
* @bug 4390869
* @bug 4460328
* @summary Test the new SourceDebugExtension facility
* @author Robert Field
*
* @library ..
*
* @run build TestScaffold VMConnection TargetListener TargetAdapter InstallSDE
* @run compile SourceDebugExtensionTest.java
* @run compile -g SourceDebugExtensionTarg.java
* @run driver SourceDebugExtensionTest
*/
import com.sun.jdi.*;
import com.sun.jdi.event.*;
import com.sun.jdi.request.*;
import java.util.*;
import java.io.File;
public class SourceDebugExtensionTest extends TestScaffold {
ReferenceType targetClass;
SourceDebugExtensionTest (String args[]) {
super(args);
}
public static void main(String[] args) throws Exception {
testSetUp();
new SourceDebugExtensionTest(args).startTests();
}
/********** test set-up **********/
static void testSetUp() throws Exception {
InstallSDE.install(new File(System.getProperty("test.classes", "."),
"SourceDebugExtensionTarg.class"),
new File(System.getProperty("test.src", "."),
"testString"));
}
/********** test core **********/
protected void runTests() throws Exception {
/*
* Get to the top of main()
* to determine targetClass
*/
BreakpointEvent bpe = startToMain("SourceDebugExtensionTarg");
targetClass = bpe.location().declaringType();
if (!vm().canGetSourceDebugExtension()) {
failure("FAIL: canGetSourceDebugExtension() is false");
} else {
println("canGetSourceDebugExtension() is true");
}
String expected = "An expected attribute string";
String sde = targetClass.sourceDebugExtension();
if (!sde.equals(expected)) {
failure("FAIL: got '" + sde +
"' expected: '" + expected + "'");
}
/*
* resume the target listening for events
*/
listenUntilVMDisconnect();
/*
* deal with results of test
* if anything has called failure("foo") testFailed will be true
*/
if (!testFailed) {
println("SourceDebugExtensionTest: passed");
} else {
throw new Exception("SourceDebugExtensionTest: failed");
}
}
}
|