/**
* @ test
* @ bug 4390869
* @ bug 4460328
* @ summary Test Stepping in the new SourceDebugExtension facility
* @ author Robert Field
*
* @ library . .
*
* @ run build TestScaffold VMConnection TargetListener TargetAdapter InstallSDE
* @ run compile MangleStepTest . java
* @ run compile - g onion / pickle / Mangle . java
* @ run driver MangleStepTest unset
* @ run driver MangleStepTest Java
* @ run driver MangleStepTest XYZ
* @ run driver MangleStepTest Rats
* @ run driver MangleStepTest bogus
*/
import com.sun.jdi.*;
import com.sun.jdi.event.*;
import com.sun.jdi.request.*;
import java.util.*;
import java.io.File;
public class MangleStepTest extends TestScaffold {
static final String op = "onion" + File.separator + "pickle" + File.separator;
ReferenceType targetClass;
final String stratum;
static boolean aTestFailed = false ;
MangleStepTest (String stratum) {
super (new String[0 ]);
this .stratum = stratum;
}
public static void main(String[] args) throws Exception {
testSetUp();
new MangleStepTest(args[0 ]).startTests();
if (aTestFailed) {
throw new Exception("MangleStepTest: failed" );
}
}
/********** test set-up **********/
static void testSetUp() throws Exception {
InstallSDE.install(new File(System.getProperty("test.classes" , "." ),
op + "Mangle.class" ),
new File(System.getProperty("test.src" , "." ),
"Mangle.sde" ));
}
/********** test assist **********/
void lineMatch(Location loc, int javaLine, int defaultLine) {
if (loc.lineNumber() != defaultLine) {
failure("FAIL: at " + loc.lineNumber() +
", expected " + defaultLine);
} else {
println("at: " + loc.lineNumber());
}
if (loc.lineNumber("Java" ) != javaLine) {
failure("FAIL: at Java line " + loc.lineNumber("Java" ) +
", expected " + javaLine);
}
}
/********** test core **********/
protected void runTests() throws Exception {
/*
* Get to the top of main ( )
*/
int [] lines;
int [] jLines;
String targetName = "onion.pickle.Mangle" ;
startUp(targetName);
if (!stratum.equals("unset" )) {
vm().setDefaultStratum(stratum);
}
BreakpointEvent bpe = resumeTo(targetName, "main" ,
"([Ljava/lang/String;)V" );
ThreadReference thread = bpe.thread ();
if (stratum.equals("Java" )) {
lines = new int [] {4 , 5 , 6 , 7 , 8 , 9 };
jLines = new int [] {4 , 5 , 6 , 7 , 8 , 9 };
} else if (stratum.equals("Rats" )) {
lines = new int [] {1000 , 1111 , 1112 };
jLines = new int [] {4 , 5 , 7 };
} else { /* XYZ (the class default) */
lines = new int [] {200 , 210 , 217 , 218 };
jLines = new int [] {4 , 7 , 8 , 9 };
}
println("Testing stratum: " + stratum);
lineMatch(bpe.location(), jLines[0 ], lines[0 ]);
for (int i = 1 ; i < lines.length; ++i) {
StepEvent se = stepOverLine(thread );
lineMatch(se.location(), jLines[i], lines[i]);
}
/*
* resume the target to completion
*/
listenUntilVMDisconnect();
/*
* deal with results of test
* if anything has called failure ( " foo " ) testFailed will be true
*/
if (!testFailed) {
println("MangleStepTest (" + stratum + "): passed" );
} else {
println("MangleStepTest (" + stratum + "): failed" );
aTestFailed = true ;
}
}
}
Messung V0.5 in Prozent C=88 H=91 G=89
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-10)
¤
*© Formatika GbR, Deutschland