blob: ae4d70ffb012491bae8f60f921f3b85567271ba5 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2011 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.debug.jdi.tests;
import com.sun.jdi.Type;
/**
* Tests for JDI com.sun.jdi.Type.
*/
public class TypeTest extends AbstractJDITest {
private Type
fArrayType,
fClassType,
fInterfaceType,
// primitive types
fShortType,
fByteType,
fIntegerType,
fLongType,
fFloatType,
fDoubleType,
fCharType,
fBooleanType,
// One-dimensional primitive arrays
fByteArrayType,
fShortArrayType,
fIntArrayType,
fLongArrayType,
fFloatArrayType,
fDoubleArrayType,
fCharArrayType,
fBooleanArrayType,
// Two-dimensional primitive arrays
fByteDoubleArrayType,
fShortDoubleArrayType,
fIntDoubleArrayType,
fLongDoubleArrayType,
fFloatDoubleArrayType,
fDoubleDoubleArrayType,
fCharDoubleArrayType,
fBooleanDoubleArrayType;
/**
* Creates a new test.
*/
public TypeTest() {
super();
}
/**
* Init the fields that are used by this test only.
*/
@Override
public void localSetUp() {
// Get reference types
fArrayType = getArrayType();
fClassType = getMainClass();
fInterfaceType = getInterfaceType();
// Get primitive types
fBooleanType = (fVM.mirrorOf(true).type());
fByteType = (fVM.mirrorOf((byte) 1).type());
fCharType = (fVM.mirrorOf('a').type());
fDoubleType = (fVM.mirrorOf(12345.6789).type());
fFloatType = (fVM.mirrorOf(12345.6789f).type());
fIntegerType = (fVM.mirrorOf(12345).type());
fLongType = (fVM.mirrorOf(123456789l).type());
fShortType = (fVM.mirrorOf((short) 12345).type());
// Get one-dimensional primitive arrays
fByteArrayType = getByteArrayType();
fShortArrayType = getShortArrayType();
fIntArrayType = getIntArrayType();
fLongArrayType = getLongArrayType();
fFloatArrayType = getFloatArrayType();
fDoubleArrayType = getDoubleArrayType();
fCharArrayType = getCharArrayType();
fBooleanArrayType = getBooleanArrayType();
// Get two-dimensional primitive arrays
fByteDoubleArrayType = getByteDoubleArrayType();
fShortDoubleArrayType = getShortDoubleArrayType();
fIntDoubleArrayType = getIntDoubleArrayType();
fLongDoubleArrayType = getLongDoubleArrayType();
fFloatDoubleArrayType = getFloatDoubleArrayType();
fDoubleDoubleArrayType = getDoubleDoubleArrayType();
fCharDoubleArrayType = getCharDoubleArrayType();
fBooleanDoubleArrayType = getBooleanDoubleArrayType();
}
/**
* Run all tests and output to standard output.
* @param args
*/
public static void main(java.lang.String[] args) {
new TypeTest().runSuite(args);
}
/**
* Gets the name of the test case.
* @see junit.framework.TestCase#getName()
*/
@Override
public String getName() {
return "com.sun.jdi.Type";
}
/**
* Test JDI signature().
*/
public void testJDISignature() {
assertEquals("1", "[Ljava/lang/String;", fArrayType.signature());
assertEquals("2", "Lorg/eclipse/debug/jdi/tests/program/MainClass;", fClassType.signature());
assertEquals("3", "Lorg/eclipse/debug/jdi/tests/program/Printable;", fInterfaceType.signature());
// Primitive types
assertEquals("4", "S", fShortType.signature());
assertEquals("5", "B", fByteType.signature());
assertEquals("6", "I", fIntegerType.signature());
assertEquals("7", "J", fLongType.signature());
assertEquals("8", "F", fFloatType.signature());
assertEquals("9", "D", fDoubleType.signature());
assertEquals("10", "C", fCharType.signature());
assertEquals("11", "Z", fBooleanType.signature());
// One-dimensional primitive arrays
assertEquals("12", "[B", fByteArrayType.signature());
assertEquals("13", "[S", fShortArrayType.signature());
assertEquals("14", "[I", fIntArrayType.signature());
assertEquals("15", "[J", fLongArrayType.signature());
assertEquals("16", "[F", fFloatArrayType.signature());
assertEquals("17", "[D", fDoubleArrayType.signature());
assertEquals("18", "[C", fCharArrayType.signature());
assertEquals("19", "[Z", fBooleanArrayType.signature());
// Two-dimensional primitive arrays
assertEquals("20", "[[B", fByteDoubleArrayType.signature());
assertEquals("21", "[[S", fShortDoubleArrayType.signature());
assertEquals("22", "[[I", fIntDoubleArrayType.signature());
assertEquals("23", "[[J", fLongDoubleArrayType.signature());
assertEquals("24", "[[F", fFloatDoubleArrayType.signature());
assertEquals("25", "[[D", fDoubleDoubleArrayType.signature());
assertEquals("26", "[[C", fCharDoubleArrayType.signature());
assertEquals("27", "[[Z", fBooleanDoubleArrayType.signature());
}
/**
* Test JDI typeName().
*/
public void testJDITypeName() {
assertEquals("1", "java.lang.String[]", fArrayType.name());
assertEquals("2", "org.eclipse.debug.jdi.tests.program.MainClass", fClassType.name());
assertEquals("3", "org.eclipse.debug.jdi.tests.program.Printable", fInterfaceType.name());
// Primitive types
assertEquals("4", "byte", fByteType.name());
assertEquals("5", "short", fShortType.name());
assertEquals("6", "int", fIntegerType.name());
assertEquals("7", "long", fLongType.name());
assertEquals("8", "float", fFloatType.name());
assertEquals("9", "double", fDoubleType.name());
assertEquals("10", "char", fCharType.name());
assertEquals("11", "boolean", fBooleanType.name());
// One-dimensional primitive arrays
assertEquals("12", "byte[]", fByteArrayType.name());
assertEquals("13", "short[]", fShortArrayType.name());
assertEquals("14", "int[]", fIntArrayType.name());
assertEquals("15", "long[]", fLongArrayType.name());
assertEquals("16", "float[]", fFloatArrayType.name());
assertEquals("17", "double[]", fDoubleArrayType.name());
assertEquals("18", "char[]", fCharArrayType.name());
assertEquals("19", "boolean[]", fBooleanArrayType.name());
// Two-dimensional primitive arrays
assertEquals("20", "byte[][]", fByteDoubleArrayType.name());
assertEquals("21", "short[][]", fShortDoubleArrayType.name());
assertEquals("22", "int[][]", fIntDoubleArrayType.name());
assertEquals("23", "long[][]", fLongDoubleArrayType.name());
assertEquals("24", "float[][]", fFloatDoubleArrayType.name());
assertEquals("25", "double[][]", fDoubleDoubleArrayType.name());
assertEquals("26", "char[][]", fCharDoubleArrayType.name());
assertEquals("27", "boolean[][]", fBooleanDoubleArrayType.name());
}
}