blob: 6ee0b661ae3e6e02ce1720e69d2bdef8ca2ce033 [file] [log] [blame]
// Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.jdwp;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import com.android.tools.r8.CompilationException;
import com.android.tools.r8.CompilationMode;
import com.android.tools.r8.D8;
import com.android.tools.r8.D8Command;
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.ToolHelper.DexVm;
import com.android.tools.r8.ToolHelper.ProcessResult;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import java.io.File;
import java.io.IOException;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.junit.Assume;
import org.junit.BeforeClass;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
/**
* Wrapper for the art JDWP tests.
*
* A new version of this file can be generated using ./tools/create-jdwp-tests.py.
*/
public class RunJdwpTests {
enum Tool {
JAVAC,
DX,
D8
}
// Run all tests (default will only run smoke tests).
static final boolean RUN_ALL_TESTS = false;
// Print test output for passing tests (failing tests output is always printed).
static final boolean PRINT_STREAMS = true;
static final String RUN_SCRIPT = "tools/run-jdwp-tests.py";
static final String DEX_LIB = "third_party/jdwp-tests/apache-harmony-jdwp-tests-hostdex.jar";
static final String JAR_LIB = "third_party/jdwp-tests/apache-harmony-jdwp-tests-host.jar";
interface TestPredicate {
boolean test(DexVm dexVm, Tool tool);
}
static boolean isAndroidMOrAbove(DexVm dexVm, Tool tool) {
return dexVm.isNewerThan(DexVm.ART_5_1_1);
}
static boolean isAndroidNOrAbove(DexVm dexVm, Tool tool) {
return dexVm.isNewerThan(DexVm.ART_6_0_1);
}
static boolean isAndroidOOrAbove(DexVm dexVm, Tool tool) {
return dexVm.isNewerThan(DexVm.ART_7_0_0);
}
static boolean isLatestRuntime(DexVm dexVm, Tool tool) {
return dexVm == DexVm.ART_DEFAULT;
}
static final Map<String, TestPredicate> FLAKY_TESTS =
ImmutableMap.<String, TestPredicate>builder()
// Build bot is failing with ART segmentation faults on the following tests. b/63317743
.put("StackFrame.GetValues002Test", RunJdwpTests::isAndroidMOrAbove)
.put("ObjectReference.ReferringObjectsTest", RunJdwpTests::isAndroidMOrAbove)
.put("VirtualMachine.InstanceCountsTest", RunJdwpTests::isAndroidMOrAbove)
.put("ReferenceType.InstancesTest", RunJdwpTests::isAndroidMOrAbove)
.put("EventModifiers.InstanceOnlyModifierTest", RunJdwpTests::isAndroidMOrAbove)
.build();
static final Map<String, TestPredicate> FAILING_TESTS =
ImmutableMap.<String, TestPredicate>builder()
.put("ArrayReference.SetValues003Test", RunJdwpTests::isAndroidNOrAbove)
.put("ClassType.InvokeMethodAfterMultipleThreadSuspensionTest",
RunJdwpTests::isAndroidNOrAbove)
.put("ClassType.InvokeMethodWithSuspensionTest", RunJdwpTests::isAndroidMOrAbove)
.put("ClassType.NewInstanceAfterMultipleThreadSuspensionTest",
RunJdwpTests::isAndroidNOrAbove)
.put("ClassType.NewInstanceStringTest", RunJdwpTests::isAndroidOOrAbove)
.put("ClassType.NewInstanceTagTest", RunJdwpTests::isAndroidNOrAbove)
.put("ClassType.NewInstanceWithSuspensionTest", RunJdwpTests::isAndroidMOrAbove)
.put("Events.BreakpointTest", RunJdwpTests::isAndroidMOrAbove)
.put("Events.Breakpoint002Test", RunJdwpTests::isAndroidMOrAbove)
.put("Events.BreakpointOnCatchTest", RunJdwpTests::isAndroidMOrAbove)
.put("Events.ClassPrepare002Test", RunJdwpTests::isAndroidOOrAbove)
.put("Events.CombinedExceptionEventsTest", RunJdwpTests::isAndroidMOrAbove)
.put("Events.ExceptionCaughtTest", RunJdwpTests::isAndroidMOrAbove)
.put("Events.ExceptionUncaughtTest", RunJdwpTests::isAndroidMOrAbove)
.put("Events.EventWithExceptionTest", RunJdwpTests::isAndroidNOrAbove)
.put("Events.FieldAccessTest", RunJdwpTests::isAndroidMOrAbove)
.put("Events.FieldModificationTest", RunJdwpTests::isAndroidMOrAbove)
.put("Events.MethodEntryTest", RunJdwpTests::isAndroidMOrAbove)
.put("Events.MethodExitTest", RunJdwpTests::isAndroidMOrAbove)
.put("Events.MethodExitWithReturnValueTest", RunJdwpTests::isAndroidMOrAbove)
.put("Events.SingleStepTest", RunJdwpTests::isAndroidMOrAbove)
.put("Events.SingleStepWithPendingExceptionTest", RunJdwpTests::isAndroidNOrAbove)
.put("InterfaceType.InvokeMethodTest", RunJdwpTests::isAndroidNOrAbove)
.put("Method.IsObsoleteTest", RunJdwpTests::isAndroidNOrAbove)
.put("Method.VariableTableWithGenericTest", RunJdwpTests::isAndroidOOrAbove)
.put("ObjectReference.InvokeMethodDefaultTest", RunJdwpTests::isAndroidNOrAbove)
.put("ObjectReference.InvokeMethodDefault002Test", RunJdwpTests::isAndroidNOrAbove)
.put("ObjectReference.InvokeMethodAfterMultipleThreadSuspensionTest",
RunJdwpTests::isAndroidNOrAbove)
.put("ObjectReference.InvokeMethodWithSuspensionTest", RunJdwpTests::isAndroidMOrAbove)
.put("ReferenceType.GetValues006Test", RunJdwpTests::isAndroidOOrAbove)
.put("ReferenceType.ClassLoaderTest", RunJdwpTests::isAndroidNOrAbove)
.put("StackFrame.GetValuesTest", RunJdwpTests::isAndroidMOrAbove)
.put("StackFrame.SetValuesTest", RunJdwpTests::isAndroidMOrAbove)
.put("StackFrame.SetValues002Test", RunJdwpTests::isAndroidMOrAbove)
.put("VirtualMachine.CapabilitiesNewTest", RunJdwpTests::isLatestRuntime)
.put("VirtualMachine.ClassPathsTest", RunJdwpTests::isAndroidMOrAbove)
.put("VirtualMachine.DisposeDuringInvokeTest", RunJdwpTests::isAndroidMOrAbove)
.build();
// The smoke tests are the set of tests that fail if there is no debugging info in the dex files.
// We avoid running the remaining tests as part of the D8/R8 testing to reduce test time by >30m.
static final Set<String> SMOKE_TESTS = ImmutableSet.of(
"EventModifiers.InstanceOnlyModifierTest",
"Method.VariableTableTest",
"Method.VariableTableWithGenericTest",
"ObjectReference.ReferringObjectsTest",
// This test assumes specific register allocation to make sure that a temporary object
// is unreachable at a specific point in a method. That is not guaranteed. See b/36921933.
// Currently doesn't fail but may start failing again with a count one higher than expected.
"ReferenceType.InstancesTest",
"StackFrame.GetValues002Test",
"StackFrame.GetValuesTest",
"StackFrame.SetValues002Test",
"StackFrame.SetValuesTest",
"VirtualMachine.InstanceCountsTest"
);
private static File d8Out = null;
@ClassRule
public static TemporaryFolder temp = new TemporaryFolder();
@BeforeClass
public static void compileLibraries() throws IOException, CompilationException {
// Selects appropriate jar according to min api level for the selected runtime.
int minApi = ToolHelper.getMinApiLevelForDexVm(ToolHelper.getDexVm());
Path jdwpTestsJar = ToolHelper.getJdwpTestsJarPath(minApi);
d8Out = temp.newFolder("d8-out");
D8.run(
D8Command.builder()
.addProgramFiles(jdwpTestsJar)
.setOutputPath(d8Out.toPath())
.setMinApiLevel(minApi)
.setMode(CompilationMode.DEBUG)
.build());
}
String getTestLib(Tool tool) {
if (tool == Tool.JAVAC) {
return JAR_LIB;
}
if (tool == Tool.DX) {
return DEX_LIB;
}
assert tool == Tool.D8;
return d8Out.toPath().resolve("classes.dex").toString();
}
DexVm getDexVm() {
return ToolHelper.getDexVm();
}
private void skipIfNeeded(String test, Tool tool) {
// Is it part of smoke tests ?
if (!RUN_ALL_TESTS) {
Assume.assumeTrue("Skipping non-smoke test " + test, SMOKE_TESTS.contains(test));
}
Assume.assumeTrue("Skipping flaky test " + test,
!FLAKY_TESTS.containsKey(test) || FLAKY_TESTS.get(test).test(getDexVm(), tool));
if (tool != Tool.JAVAC) {
// Can we run the test on the current ART runtime ?
Assume.assumeTrue("Skipping test " + test + " because ART is not supported",
ToolHelper.artSupported());
}
}
void runTest(String test, Tool tool) throws IOException {
skipIfNeeded(test, tool);
System.out.println("Running test " + test + " for tool " + tool);
String lib = getTestLib(tool);
List<String> command;
if (tool == Tool.JAVAC) {
String run = "org.junit.runner.JUnitCore";
String pkg = "org.apache.harmony.jpda.tests.jdwp";
command = Arrays.asList(
ToolHelper.getJavaExecutable(),
"-cp", System.getProperty("java.class.path") + ":" + lib,
run, pkg + "." + test);
} else {
command = Arrays.asList(
RUN_SCRIPT, "--classpath=" + lib, "--version=" + ToolHelper.getDexVm(), test);
}
ProcessBuilder builder = new ProcessBuilder(command);
ProcessResult result = ToolHelper.runProcess(builder);
if (FAILING_TESTS.containsKey(test) && !FAILING_TESTS.get(test).test(getDexVm(), tool)) {
if (PRINT_STREAMS || result.exitCode == 0) {
printStreams(result);
}
assertNotEquals("Expected test " + test + " to fail but it succeeded", 0, result.exitCode);
} else if (PRINT_STREAMS || result.exitCode != 0) {
printStreams(result);
assertEquals(0, result.exitCode);
}
}
private void printStreams(ProcessResult result) {
System.out.println("Test STDOUT");
System.out.println(result.stdout);
System.out.println("Test STDERR");
System.out.println(result.stderr);
}
@Test
public void testArrayReference_GetValuesTest_D8() throws IOException {
runTest("ArrayReference.GetValuesTest", Tool.D8);
}
@Test
public void testArrayReference_LengthTest_D8() throws IOException {
runTest("ArrayReference.LengthTest", Tool.D8);
}
@Test
public void testArrayReference_SetValues002Test_D8() throws IOException {
runTest("ArrayReference.SetValues002Test", Tool.D8);
}
@Test
public void testArrayReference_SetValues003Test_D8() throws IOException {
runTest("ArrayReference.SetValues003Test", Tool.D8);
}
@Test
public void testArrayReference_SetValuesTest_D8() throws IOException {
runTest("ArrayReference.SetValuesTest", Tool.D8);
}
@Test
public void testArrayType_NewInstanceTest_D8() throws IOException {
runTest("ArrayType.NewInstanceTest", Tool.D8);
}
@Test
public void testClassLoaderReference_VisibleClassesTest_D8() throws IOException {
runTest("ClassLoaderReference.VisibleClassesTest", Tool.D8);
}
@Test
public void testClassObjectReference_ReflectedType002Test_D8() throws IOException {
runTest("ClassObjectReference.ReflectedType002Test", Tool.D8);
}
@Test
public void testClassObjectReference_ReflectedTypeTest_D8() throws IOException {
runTest("ClassObjectReference.ReflectedTypeTest", Tool.D8);
}
@Test
public void testClassType_InvokeMethod002Test_D8() throws IOException {
runTest("ClassType.InvokeMethod002Test", Tool.D8);
}
@Test
public void testClassType_InvokeMethod003Test_D8() throws IOException {
runTest("ClassType.InvokeMethod003Test", Tool.D8);
}
@Test
public void testClassType_InvokeMethodAfterMultipleThreadSuspensionTest_D8()
throws IOException {
runTest("ClassType.InvokeMethodAfterMultipleThreadSuspensionTest", Tool.D8);
}
@Test
public void testClassType_InvokeMethodWithSuspensionTest_D8() throws IOException {
runTest("ClassType.InvokeMethodWithSuspensionTest", Tool.D8);
}
@Test
public void testClassType_InvokeMethodTest_D8() throws IOException {
runTest("ClassType.InvokeMethodTest", Tool.D8);
}
@Test
public void testClassType_NewInstance002Test_D8() throws IOException {
runTest("ClassType.NewInstance002Test", Tool.D8);
}
@Test
public void testClassType_NewInstanceTagTest_D8() throws IOException {
runTest("ClassType.NewInstanceTagTest", Tool.D8);
}
@Test
public void testClassType_NewInstanceAfterMultipleThreadSuspensionTest_D8()
throws IOException {
runTest("ClassType.NewInstanceAfterMultipleThreadSuspensionTest", Tool.D8);
}
@Test
public void testClassType_NewInstanceStringTest_D8() throws IOException {
runTest("ClassType.NewInstanceStringTest", Tool.D8);
}
@Test
public void testClassType_NewInstanceTest_D8() throws IOException {
runTest("ClassType.NewInstanceTest", Tool.D8);
}
@Test
public void testClassType_NewInstanceWithSuspensionTest_D8() throws IOException {
runTest("ClassType.NewInstanceWithSuspensionTest", Tool.D8);
}
@Test
public void testClassType_SetValues002Test_D8() throws IOException {
runTest("ClassType.SetValues002Test", Tool.D8);
}
@Test
public void testClassType_SetValuesTest_D8() throws IOException {
runTest("ClassType.SetValuesTest", Tool.D8);
}
@Test
public void testClassType_SuperClassTest_D8() throws IOException {
runTest("ClassType.SuperClassTest", Tool.D8);
}
@Test
public void testDeoptimization_DeoptimizationWithExceptionHandlingTest_D8()
throws IOException {
runTest("Deoptimization.DeoptimizationWithExceptionHandlingTest", Tool.D8);
}
@Test
public void testEventModifiers_CountModifierTest_D8() throws IOException {
runTest("EventModifiers.CountModifierTest", Tool.D8);
}
@Test
public void testEventModifiers_InstanceOnlyModifierTest_D8() throws IOException {
runTest("EventModifiers.InstanceOnlyModifierTest", Tool.D8);
}
@Test
public void testEventModifiers_ThreadOnlyModifierTest_D8() throws IOException {
runTest("EventModifiers.ThreadOnlyModifierTest", Tool.D8);
}
@Test
public void testEvents_Breakpoint002Test_D8() throws IOException {
runTest("Events.Breakpoint002Test", Tool.D8);
}
@Test
public void testEvents_BreakpointMultipleTest_D8() throws IOException {
runTest("Events.BreakpointMultipleTest", Tool.D8);
}
@Test
public void testEvents_BreakpointOnCatchTest_D8() throws IOException {
runTest("Events.BreakpointOnCatchTest", Tool.D8);
}
@Test
public void testEvents_BreakpointTest_D8() throws IOException {
runTest("Events.BreakpointTest", Tool.D8);
}
@Test
public void testEvents_ClassPrepare002Test_D8() throws IOException {
runTest("Events.ClassPrepare002Test", Tool.D8);
}
@Test
public void testEvents_ClassPrepareTest_D8() throws IOException {
runTest("Events.ClassPrepareTest", Tool.D8);
}
@Test
public void testEvents_CombinedEvents002Test_D8() throws IOException {
runTest("Events.CombinedEvents002Test", Tool.D8);
}
@Test
public void testEvents_CombinedEvents003Test_D8() throws IOException {
runTest("Events.CombinedEvents003Test", Tool.D8);
}
@Test
public void testEvents_CombinedEventsTest_D8() throws IOException {
runTest("Events.CombinedEventsTest", Tool.D8);
}
@Test
public void testEvents_CombinedExceptionEventsTest_D8() throws IOException {
runTest("Events.CombinedExceptionEventsTest", Tool.D8);
}
@Test
public void testEvents_EventWithExceptionTest_D8() throws IOException {
runTest("Events.EventWithExceptionTest", Tool.D8);
}
@Test
public void testEvents_ExceptionCaughtTest_D8() throws IOException {
runTest("Events.ExceptionCaughtTest", Tool.D8);
}
@Test
public void testEvents_ExceptionUncaughtTest_D8() throws IOException {
runTest("Events.ExceptionUncaughtTest", Tool.D8);
}
@Test
public void testEvents_ExceptionWithLocationTest_D8() throws IOException {
runTest("Events.ExceptionWithLocationTest", Tool.D8);
}
@Test
public void testEvents_FieldAccessTest_D8() throws IOException {
runTest("Events.FieldAccessTest", Tool.D8);
}
@Test
public void testEvents_FieldModification002Test_D8() throws IOException {
runTest("Events.FieldModification002Test", Tool.D8);
}
@Test
public void testEvents_FieldModificationTest_D8() throws IOException {
runTest("Events.FieldModificationTest", Tool.D8);
}
@Test
public void testEvents_FieldWithLocationTest_D8() throws IOException {
runTest("Events.FieldWithLocationTest", Tool.D8);
}
@Test
public void testEvents_MethodEntryTest_D8() throws IOException {
runTest("Events.MethodEntryTest", Tool.D8);
}
@Test
public void testEvents_MethodExitTest_D8() throws IOException {
runTest("Events.MethodExitTest", Tool.D8);
}
@Test
public void testEvents_MethodExitWithReturnValueTest_D8() throws IOException {
runTest("Events.MethodExitWithReturnValueTest", Tool.D8);
}
@Test
public void testEvents_SingleStepTest_D8() throws IOException {
runTest("Events.SingleStepTest", Tool.D8);
}
@Test
public void testEvents_SingleStepThroughReflectionTest_D8() throws IOException {
runTest("Events.SingleStepThroughReflectionTest", Tool.D8);
}
@Test
public void testEvents_SingleStepWithLocationTest_D8() throws IOException {
runTest("Events.SingleStepWithLocationTest", Tool.D8);
}
@Test
public void testEvents_SingleStepWithPendingExceptionTest_D8() throws IOException {
runTest("Events.SingleStepWithPendingExceptionTest", Tool.D8);
}
@Test
public void testEvents_ThreadEndTest_D8() throws IOException {
runTest("Events.ThreadEndTest", Tool.D8);
}
@Test
public void testEvents_ThreadStartTest_D8() throws IOException {
runTest("Events.ThreadStartTest", Tool.D8);
}
@Test
public void testEvents_VMDeath002Test_D8() throws IOException {
runTest("Events.VMDeath002Test", Tool.D8);
}
@Test
public void testEvents_VMDeathTest_D8() throws IOException {
runTest("Events.VMDeathTest", Tool.D8);
}
@Test
public void testInterfaceType_InvokeMethodTest_D8() throws IOException {
runTest("InterfaceType.InvokeMethodTest", Tool.D8);
}
@Test
public void testMethod_BytecodesTest_D8() throws IOException {
runTest("Method.BytecodesTest", Tool.D8);
}
@Test
public void testMethod_IsObsoleteTest_D8() throws IOException {
runTest("Method.IsObsoleteTest", Tool.D8);
}
@Test
public void testMethod_LineTableTest_D8() throws IOException {
runTest("Method.LineTableTest", Tool.D8);
}
@Test
public void testMethod_VariableTableTest_D8() throws IOException {
runTest("Method.VariableTableTest", Tool.JAVAC);
}
@Test
public void testMethod_VariableTableWithGenericTest_D8() throws IOException {
runTest("Method.VariableTableWithGenericTest", Tool.D8);
}
@Test
public void testMultiSession_AttachConnectorTest_D8() throws IOException {
runTest("MultiSession.AttachConnectorTest", Tool.D8);
}
@Test
public void testMultiSession_BreakpointTest_D8() throws IOException {
runTest("MultiSession.BreakpointTest", Tool.D8);
}
@Test
public void testMultiSession_ClassObjectIDTest_D8() throws IOException {
runTest("MultiSession.ClassObjectIDTest", Tool.D8);
}
@Test
public void testMultiSession_ClassPrepareTest_D8() throws IOException {
runTest("MultiSession.ClassPrepareTest", Tool.D8);
}
@Test
public void testMultiSession_EnableCollectionTest_D8() throws IOException {
runTest("MultiSession.EnableCollectionTest", Tool.D8);
}
@Test
public void testMultiSession_ExceptionTest_D8() throws IOException {
runTest("MultiSession.ExceptionTest", Tool.D8);
}
@Test
public void testMultiSession_FieldAccessTest_D8() throws IOException {
runTest("MultiSession.FieldAccessTest", Tool.D8);
}
@Test
public void testMultiSession_FieldModificationTest_D8() throws IOException {
runTest("MultiSession.FieldModificationTest", Tool.D8);
}
@Test
public void testMultiSession_ListenConnectorTest_D8() throws IOException {
runTest("MultiSession.ListenConnectorTest", Tool.D8);
}
@Test
public void testMultiSession_MethodEntryExitTest_D8() throws IOException {
runTest("MultiSession.MethodEntryExitTest", Tool.D8);
}
@Test
public void testMultiSession_RefTypeIDTest_D8() throws IOException {
runTest("MultiSession.RefTypeIDTest", Tool.D8);
}
@Test
public void testMultiSession_ResumeTest_D8() throws IOException {
runTest("MultiSession.ResumeTest", Tool.D8);
}
@Test
public void testMultiSession_SingleStepTest_D8() throws IOException {
runTest("MultiSession.SingleStepTest", Tool.D8);
}
@Test
public void testMultiSession_VMDeathTest_D8() throws IOException {
runTest("MultiSession.VMDeathTest", Tool.D8);
}
@Test
public void testObjectReference_DisableCollectionTest_D8() throws IOException {
runTest("ObjectReference.DisableCollectionTest", Tool.D8);
}
@Test
public void testObjectReference_EnableCollectionTest_D8() throws IOException {
runTest("ObjectReference.EnableCollectionTest", Tool.D8);
}
@Test
public void testObjectReference_GetValues002Test_D8() throws IOException {
runTest("ObjectReference.GetValues002Test", Tool.D8);
}
@Test
public void testObjectReference_GetValues003Test_D8() throws IOException {
runTest("ObjectReference.GetValues003Test", Tool.D8);
}
@Test
public void testObjectReference_GetValuesTest_D8() throws IOException {
runTest("ObjectReference.GetValuesTest", Tool.D8);
}
@Test
public void testObjectReference_InvokeMethod002Test_D8() throws IOException {
runTest("ObjectReference.InvokeMethod002Test", Tool.D8);
}
@Test
public void testObjectReference_InvokeMethod003Test_D8() throws IOException {
runTest("ObjectReference.InvokeMethod003Test", Tool.D8);
}
@Test
public void testObjectReference_InvokeMethodTest_D8() throws IOException {
runTest("ObjectReference.InvokeMethodTest", Tool.D8);
}
@Test
public void testObjectReference_InvokeMethodAfterMultipleThreadSuspensionTest_D8()
throws IOException {
runTest("ObjectReference.InvokeMethodAfterMultipleThreadSuspensionTest", Tool.D8);
}
@Test
public void testObjectReference_InvokeMethodDefault002Test_D8() throws IOException {
runTest("ObjectReference.InvokeMethodDefault002Test", Tool.D8);
}
@Test
public void testObjectReference_InvokeMethodDefaultTest_D8() throws IOException {
runTest("ObjectReference.InvokeMethodDefaultTest", Tool.D8);
}
@Test
public void testObjectReference_InvokeMethodWithSuspensionTest_D8() throws IOException {
runTest("ObjectReference.InvokeMethodWithSuspensionTest", Tool.D8);
}
@Test
public void testObjectReference_IsCollectedTest_D8() throws IOException {
runTest("ObjectReference.IsCollectedTest", Tool.D8);
}
@Test
public void testObjectReference_MonitorInfoTest_D8() throws IOException {
runTest("ObjectReference.MonitorInfoTest", Tool.D8);
}
@Test
public void testObjectReference_ReferenceTypeTest_D8() throws IOException {
runTest("ObjectReference.ReferenceTypeTest", Tool.D8);
}
@Test
public void testObjectReference_ReferringObjectsTest_D8() throws IOException {
runTest("ObjectReference.ReferringObjectsTest", Tool.D8);
}
@Test
public void testObjectReference_SetValues002Test_D8() throws IOException {
runTest("ObjectReference.SetValues002Test", Tool.D8);
}
@Test
public void testObjectReference_SetValues003Test_D8() throws IOException {
runTest("ObjectReference.SetValues003Test", Tool.D8);
}
@Test
public void testObjectReference_SetValues004Test_D8() throws IOException {
runTest("ObjectReference.SetValues004Test", Tool.D8);
}
@Test
public void testObjectReference_SetValuesTest_D8() throws IOException {
runTest("ObjectReference.SetValuesTest", Tool.D8);
}
@Test
public void testReferenceType_ClassLoaderTest_D8() throws IOException {
runTest("ReferenceType.ClassLoaderTest", Tool.D8);
}
@Test
public void testReferenceType_ClassObjectTest_D8() throws IOException {
runTest("ReferenceType.ClassObjectTest", Tool.D8);
}
@Test
public void testReferenceType_ConstantPoolTest_D8() throws IOException {
runTest("ReferenceType.ConstantPoolTest", Tool.D8);
}
@Test
public void testReferenceType_FieldsTest_D8() throws IOException {
runTest("ReferenceType.FieldsTest", Tool.D8);
}
@Test
public void testReferenceType_FieldsWithGenericTest_D8() throws IOException {
runTest("ReferenceType.FieldsWithGenericTest", Tool.D8);
}
@Test
public void testReferenceType_GetValues002Test_D8() throws IOException {
runTest("ReferenceType.GetValues002Test", Tool.D8);
}
@Test
public void testReferenceType_GetValues003Test_D8() throws IOException {
runTest("ReferenceType.GetValues003Test", Tool.D8);
}
@Test
public void testReferenceType_GetValues004Test_D8() throws IOException {
runTest("ReferenceType.GetValues004Test", Tool.D8);
}
@Test
public void testReferenceType_GetValues005Test_D8() throws IOException {
runTest("ReferenceType.GetValues005Test", Tool.D8);
}
@Test
public void testReferenceType_GetValues006Test_D8() throws IOException {
runTest("ReferenceType.GetValues006Test", Tool.D8);
}
@Test
public void testReferenceType_GetValues007Test_D8() throws IOException {
runTest("ReferenceType.GetValues007Test", Tool.D8);
}
@Test
public void testReferenceType_GetValuesTest_D8() throws IOException {
runTest("ReferenceType.GetValuesTest", Tool.D8);
}
@Test
public void testReferenceType_InstancesTest_D8() throws IOException {
runTest("ReferenceType.InstancesTest", Tool.D8);
}
@Test
public void testReferenceType_InterfacesTest_D8() throws IOException {
runTest("ReferenceType.InterfacesTest", Tool.D8);
}
@Test
public void testReferenceType_MethodsTest_D8() throws IOException {
runTest("ReferenceType.MethodsTest", Tool.D8);
}
@Test
public void testReferenceType_MethodsWithGenericTest_D8() throws IOException {
runTest("ReferenceType.MethodsWithGenericTest", Tool.D8);
}
@Test
public void testReferenceType_ModifiersTest_D8() throws IOException {
runTest("ReferenceType.ModifiersTest", Tool.D8);
}
@Test
public void testReferenceType_Signature002Test_D8() throws IOException {
runTest("ReferenceType.Signature002Test", Tool.D8);
}
@Test
public void testReferenceType_SignatureTest_D8() throws IOException {
runTest("ReferenceType.SignatureTest", Tool.D8);
}
@Test
public void testReferenceType_SignatureWithGenericTest_D8() throws IOException {
runTest("ReferenceType.SignatureWithGenericTest", Tool.D8);
}
@Test
public void testReferenceType_SourceDebugExtensionTest_D8() throws IOException {
runTest("ReferenceType.SourceDebugExtensionTest", Tool.D8);
}
@Test
public void testReferenceType_SourceFileTest_D8() throws IOException {
runTest("ReferenceType.SourceFileTest", Tool.D8);
}
@Test
public void testReferenceType_StatusTest_D8() throws IOException {
runTest("ReferenceType.StatusTest", Tool.D8);
}
@Test
public void testReferenceType_SyntheticFieldsTest_D8() throws IOException {
runTest("ReferenceType.SyntheticFieldsTest", Tool.D8);
}
@Test
public void testReferenceType_SyntheticMethodsTest_D8() throws IOException {
runTest("ReferenceType.SyntheticMethodsTest", Tool.D8);
}
@Test
public void testStackFrame_GetValues002Test_D8() throws IOException {
runTest("StackFrame.GetValues002Test", Tool.D8);
}
@Test
public void testStackFrame_GetValuesTest_D8() throws IOException {
runTest("StackFrame.GetValuesTest", Tool.D8);
}
@Test
public void testStackFrame_PopFrames002Test_D8() throws IOException {
runTest("StackFrame.PopFrames002Test", Tool.D8);
}
@Test
public void testStackFrame_PopFramesTest_D8() throws IOException {
runTest("StackFrame.PopFramesTest", Tool.D8);
}
@Test
public void testStackFrame_ProxyThisObjectTest_D8() throws IOException {
runTest("StackFrame.ProxyThisObjectTest", Tool.D8);
}
@Test
public void testStackFrame_SetValues002Test_D8() throws IOException {
runTest("StackFrame.SetValues002Test", Tool.D8);
}
@Test
public void testStackFrame_SetValuesTest_D8() throws IOException {
runTest("StackFrame.SetValuesTest", Tool.D8);
}
@Test
public void testStackFrame_ThisObjectTest_D8() throws IOException {
runTest("StackFrame.ThisObjectTest", Tool.D8);
}
@Test
public void testStringReference_ValueTest_D8() throws IOException {
runTest("StringReference.ValueTest", Tool.D8);
}
@Test
public void testThreadGroupReference_ChildrenTest_D8() throws IOException {
runTest("ThreadGroupReference.ChildrenTest", Tool.D8);
}
@Test
public void testThreadGroupReference_NameTest_D8() throws IOException {
runTest("ThreadGroupReference.NameTest", Tool.D8);
}
@Test
public void testThreadGroupReference_ParentTest_D8() throws IOException {
runTest("ThreadGroupReference.ParentTest", Tool.D8);
}
@Test
public void testThreadReference_CurrentContendedMonitorTest_D8() throws IOException {
runTest("ThreadReference.CurrentContendedMonitorTest", Tool.D8);
}
@Test
public void testThreadReference_ForceEarlyReturn002Test_D8() throws IOException {
runTest("ThreadReference.ForceEarlyReturn002Test", Tool.D8);
}
@Test
public void testThreadReference_ForceEarlyReturn003Test_D8() throws IOException {
runTest("ThreadReference.ForceEarlyReturn003Test", Tool.D8);
}
@Test
public void testThreadReference_ForceEarlyReturn004Test_D8() throws IOException {
runTest("ThreadReference.ForceEarlyReturn004Test", Tool.D8);
}
@Test
public void testThreadReference_ForceEarlyReturn005Test_D8() throws IOException {
runTest("ThreadReference.ForceEarlyReturn005Test", Tool.D8);
}
@Test
public void testThreadReference_ForceEarlyReturn006Test_D8() throws IOException {
runTest("ThreadReference.ForceEarlyReturn006Test", Tool.D8);
}
@Test
public void testThreadReference_ForceEarlyReturnTest_D8() throws IOException {
runTest("ThreadReference.ForceEarlyReturnTest", Tool.D8);
}
@Test
public void testThreadReference_FrameCountTest_D8() throws IOException {
runTest("ThreadReference.FrameCountTest", Tool.D8);
}
@Test
public void testThreadReference_FramesTest_D8() throws IOException {
runTest("ThreadReference.FramesTest", Tool.D8);
}
@Test
public void testThreadReference_InterruptTest_D8() throws IOException {
runTest("ThreadReference.InterruptTest", Tool.D8);
}
@Test
public void testThreadReference_NameTest_D8() throws IOException {
runTest("ThreadReference.NameTest", Tool.D8);
}
@Test
public void testThreadReference_OwnedMonitorsStackDepthInfoTest_D8() throws IOException {
runTest("ThreadReference.OwnedMonitorsStackDepthInfoTest", Tool.D8);
}
@Test
public void testThreadReference_OwnedMonitorsTest_D8() throws IOException {
runTest("ThreadReference.OwnedMonitorsTest", Tool.D8);
}
@Test
public void testThreadReference_ResumeTest_D8() throws IOException {
runTest("ThreadReference.ResumeTest", Tool.D8);
}
@Test
public void testThreadReference_Status002Test_D8() throws IOException {
runTest("ThreadReference.Status002Test", Tool.D8);
}
@Test
public void testThreadReference_Status003Test_D8() throws IOException {
runTest("ThreadReference.Status003Test", Tool.D8);
}
@Test
public void testThreadReference_Status004Test_D8() throws IOException {
runTest("ThreadReference.Status004Test", Tool.D8);
}
@Test
public void testThreadReference_Status005Test_D8() throws IOException {
runTest("ThreadReference.Status005Test", Tool.D8);
}
@Test
public void testThreadReference_Status006Test_D8() throws IOException {
runTest("ThreadReference.Status006Test", Tool.D8);
}
@Test
public void testThreadReference_StatusTest_D8() throws IOException {
runTest("ThreadReference.StatusTest", Tool.D8);
}
@Test
public void testThreadReference_SuspendCountTest_D8() throws IOException {
runTest("ThreadReference.SuspendCountTest", Tool.D8);
}
@Test
public void testThreadReference_SuspendTest_D8() throws IOException {
runTest("ThreadReference.SuspendTest", Tool.D8);
}
@Test
public void testThreadReference_ThreadGroup002Test_D8() throws IOException {
runTest("ThreadReference.ThreadGroup002Test", Tool.D8);
}
@Test
public void testThreadReference_ThreadGroupTest_D8() throws IOException {
runTest("ThreadReference.ThreadGroupTest", Tool.D8);
}
@Test
public void testVirtualMachine_AllClassesTest_D8() throws IOException {
runTest("VirtualMachine.AllClassesTest", Tool.D8);
}
@Test
public void testVirtualMachine_AllClassesWithGenericTest_D8() throws IOException {
runTest("VirtualMachine.AllClassesWithGenericTest", Tool.D8);
}
@Test
public void testVirtualMachine_AllThreadsTest_D8() throws IOException {
runTest("VirtualMachine.AllThreadsTest", Tool.D8);
}
@Test
public void testVirtualMachine_CapabilitiesNewTest_D8() throws IOException {
runTest("VirtualMachine.CapabilitiesNewTest", Tool.D8);
}
@Test
public void testVirtualMachine_CapabilitiesTest_D8() throws IOException {
runTest("VirtualMachine.CapabilitiesTest", Tool.D8);
}
@Test
public void testVirtualMachine_ClassesBySignatureTest_D8() throws IOException {
runTest("VirtualMachine.ClassesBySignatureTest", Tool.D8);
}
@Test
public void testVirtualMachine_ClassPathsTest_D8() throws IOException {
runTest("VirtualMachine.ClassPathsTest", Tool.D8);
}
@Test
public void testVirtualMachine_CreateStringTest_D8() throws IOException {
runTest("VirtualMachine.CreateStringTest", Tool.D8);
}
@Test
public void testVirtualMachine_DisposeDuringInvokeTest_D8() throws IOException {
runTest("VirtualMachine.DisposeDuringInvokeTest", Tool.D8);
}
@Test
public void testVirtualMachine_DisposeTest_D8() throws IOException {
runTest("VirtualMachine.DisposeTest", Tool.D8);
}
@Test
public void testVirtualMachine_DisposeObjectsTest_D8() throws IOException {
runTest("VirtualMachine.DisposeObjectsTest", Tool.D8);
}
@Test
public void testVirtualMachine_ExitTest_D8() throws IOException {
runTest("VirtualMachine.ExitTest", Tool.D8);
}
@Test
public void testVirtualMachine_IDSizesTest_D8() throws IOException {
runTest("VirtualMachine.IDSizesTest", Tool.D8);
}
@Test
public void testVirtualMachine_InstanceCountsTest_D8() throws IOException {
runTest("VirtualMachine.InstanceCountsTest", Tool.D8);
}
@Test
public void testVirtualMachine_RedefineClassesTest_D8() throws IOException {
runTest("VirtualMachine.RedefineClassesTest", Tool.D8);
}
@Test
public void testVirtualMachine_Resume002Test_D8() throws IOException {
runTest("VirtualMachine.Resume002Test", Tool.D8);
}
@Test
public void testVirtualMachine_ResumeTest_D8() throws IOException {
runTest("VirtualMachine.ResumeTest", Tool.D8);
}
@Test
public void testVirtualMachine_SetDefaultStratumTest_D8() throws IOException {
runTest("VirtualMachine.SetDefaultStratumTest", Tool.D8);
}
@Test
public void testVirtualMachine_SuspendTest_D8() throws IOException {
runTest("VirtualMachine.SuspendTest", Tool.D8);
}
@Test
public void testVirtualMachine_TopLevelThreadGroupsTest_D8() throws IOException {
runTest("VirtualMachine.TopLevelThreadGroupsTest", Tool.D8);
}
@Test
public void testVirtualMachine_VersionTest_D8() throws IOException {
runTest("VirtualMachine.VersionTest", Tool.D8);
}
}