3789983e89
Reviewed-by: darcy, ihse
82 lines
2.3 KiB
Java
82 lines
2.3 KiB
Java
/**
|
|
* @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");
|
|
}
|
|
}
|
|
}
|