blob: ae698a759daf62356b9cd59395f4f3c1ca9cb478 [file] [log] [blame]
package org.eclipse.jdt.debug.tests.eval;
/**********************************************************************
Copyright (c) 2000, 2002 IBM Corp. and others.
All rights reserved. This program and the accompanying materials
are made available under the terms of the Common Public License v0.5
which accompanies this distribution, and is available at
http://www.eclipse.org/legal/cpl-v05.html
Contributors:
IBM Corporation - Initial implementation
*********************************************************************/
import org.eclipse.debug.core.model.IValue;
import org.eclipse.jdt.debug.core.IJavaPrimitiveValue;
import org.eclipse.jdt.internal.debug.core.model.JDIObjectValue;
public class TestsArrays extends Tests {
/**
* Constructor for TypeHierarchy.
* @param name
*/
public TestsArrays(String name) {
super(name);
}
public void init() throws Exception {
initializeFrame("EvalArrayTests", 37, 1, 1);
}
protected void end() throws Exception {
destroyFrame();
}
public void testIntArrayValue() throws Throwable {
try {
init();
IValue value = eval(xArrayInt + "[0]");
String typeName = value.getReferenceTypeName();
assertEquals("int array value : wrong type : ", "int", typeName);
int intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array value : wrong result : ", xArrayIntValue[0], intValue);
value = eval(xArrayInt + "[1]");
typeName = value.getReferenceTypeName();
assertEquals("int array value : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array value : wrong result : ", xArrayIntValue[1], intValue);
value = eval(xArrayInt + "[2]");
typeName = value.getReferenceTypeName();
assertEquals("int array value : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array value : wrong result : ", xArrayIntValue[2], intValue);
value = eval(yArrayInt + "[0]");
typeName = value.getReferenceTypeName();
assertEquals("int array value : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array value : wrong result : ", yArrayIntValue[0], intValue);
value = eval(yArrayInt + "[1]");
typeName = value.getReferenceTypeName();
assertEquals("int array value : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array value : wrong result : ", yArrayIntValue[1], intValue);
value = eval(yArrayInt + "[2]");
typeName = value.getReferenceTypeName();
assertEquals("int array value : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array value : wrong result : ", yArrayIntValue[2], intValue);
} catch (Throwable e) {
e.printStackTrace(); throw e;
} finally {;
end();
}
}
public void testIntArrayLength() throws Throwable {
try {
init();
IValue value = eval(xArrayInt + ".length");
String typeName = value.getReferenceTypeName();
assertEquals("int array length : wrong type : ", "int", typeName);
int intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array length : wrong result : ", xArrayIntValue.length, intValue);
value = eval(yArrayInt + ".length");
typeName = value.getReferenceTypeName();
assertEquals("int array length : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array length : wrong result : ", yArrayIntValue.length, intValue);
} catch (Throwable e) {
e.printStackTrace(); throw e;
} finally {;
end();
}
}
public void testIntArrayAssignment() throws Throwable {
try {
init();
IValue value = eval(xArrayInt + "[0]" + equalOp +xInt);
String typeName = value.getReferenceTypeName();
assertEquals("int array assignment : wrong type : ", "int", typeName);
int intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array assignment : wrong result : ", xIntValue, intValue);
value = eval(xArrayInt + "[0]");
typeName = value.getReferenceTypeName();
assertEquals("int array value : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array value : wrong result : ", xIntValue, intValue);
value = eval(xArrayInt + "[1]" + equalOp +yInt);
typeName = value.getReferenceTypeName();
assertEquals("int array assignment : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array assignment : wrong result : ", yIntValue, intValue);
value = eval(xArrayInt + "[1]");
typeName = value.getReferenceTypeName();
assertEquals("int array value : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array value : wrong result : ", yIntValue, intValue);
value = eval(xArrayInt + "[2]" + equalOp +xInt);
typeName = value.getReferenceTypeName();
assertEquals("int array assignment : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array assignment : wrong result : ", xIntValue, intValue);
value = eval(xArrayInt + "[2]");
typeName = value.getReferenceTypeName();
assertEquals("int array value : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array value : wrong result : ", xIntValue, intValue);
value = eval(yArrayInt + "[0]" + equalOp +yInt);
typeName = value.getReferenceTypeName();
assertEquals("int array assignment : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array assignment : wrong result : ", yIntValue, intValue);
value = eval(yArrayInt + "[0]");
typeName = value.getReferenceTypeName();
assertEquals("int array value : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array value : wrong result : ", yIntValue, intValue);
value = eval(yArrayInt + "[1]" + equalOp +xInt);
typeName = value.getReferenceTypeName();
assertEquals("int array assignment : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array assignment : wrong result : ", xIntValue, intValue);
value = eval(yArrayInt + "[1]");
typeName = value.getReferenceTypeName();
assertEquals("int array value : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array value : wrong result : ", xIntValue, intValue);
value = eval(yArrayInt + "[2]" + equalOp +yInt);
typeName = value.getReferenceTypeName();
assertEquals("int array assignment : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array assignment : wrong result : ", yIntValue, intValue);
value = eval(yArrayInt + "[2]");
typeName = value.getReferenceTypeName();
assertEquals("int array value : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array value : wrong result : ", yIntValue, intValue);
} catch (Throwable e) {
e.printStackTrace(); throw e;
} finally {;
end();
}
}
public void testIntArrayAllocation() throws Throwable {
try {
init();
IValue value = eval(xArrayInt + equalOp + "new int[]{" + xInt + ", " + yInt + "}");
String typeName = value.getReferenceTypeName();
assertEquals("int array assignment : wrong type : ", "int[]", typeName);
int intValue = 0;
value = eval(xArrayInt + ".length");
typeName = value.getReferenceTypeName();
assertEquals("int array length : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array length : wrong result : ", 2, intValue);
value = eval(xArrayInt + "[0]");
typeName = value.getReferenceTypeName();
assertEquals("int array value : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array value : wrong result : ", xIntValue, intValue);
value = eval(xArrayInt + "[1]");
typeName = value.getReferenceTypeName();
assertEquals("int array value : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array value : wrong result : ", yIntValue, intValue);
value = eval(yArrayInt + equalOp + "new int[]{" + xInt + ", " + yInt + ", " + xInt + "}");
typeName = value.getReferenceTypeName();
assertEquals("int array assignment : wrong type : ", "int[]", typeName);
value = eval(yArrayInt + ".length");
typeName = value.getReferenceTypeName();
assertEquals("int array length : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array length : wrong result : ", 3, intValue);
value = eval(yArrayInt + "[0]");
typeName = value.getReferenceTypeName();
assertEquals("int array value : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array value : wrong result : ", xIntValue, intValue);
value = eval(yArrayInt + "[1]");
typeName = value.getReferenceTypeName();
assertEquals("int array value : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array value : wrong result : ", yIntValue, intValue);
value = eval(yArrayInt + "[2]");
typeName = value.getReferenceTypeName();
assertEquals("int array value : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("int array value : wrong result : ", xIntValue, intValue);
} catch (Throwable e) {
e.printStackTrace(); throw e;
} finally {;
end();
}
}
public void testStringArrayValue() throws Throwable {
try {
init();
IValue value = eval(xArrayString + "[0]");
String typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array value : wrong type : ", "java.lang.String", typeName);
String stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array value : wrong result : ", xArrayStringValue[0], stringValue);
value = eval(xArrayString + "[1]");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array value : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array value : wrong result : ", xArrayStringValue[1], stringValue);
value = eval(xArrayString + "[2]");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array value : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array value : wrong result : ", xArrayStringValue[2], stringValue);
value = eval(yArrayString + "[0]");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array value : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array value : wrong result : ", yArrayStringValue[0], stringValue);
value = eval(yArrayString + "[1]");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array value : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array value : wrong result : ", yArrayStringValue[1], stringValue);
value = eval(yArrayString + "[2]");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array value : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array value : wrong result : ", yArrayStringValue[2], stringValue);
} catch (Throwable e) {
e.printStackTrace(); throw e;
} finally {;
end();
}
}
public void testStringArrayLength() throws Throwable {
try {
init();
IValue value = eval(xArrayString + ".length");
String typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array length : wrong type : ", "int", typeName);
int intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("java.lang.String array length : wrong result : ", xArrayStringValue.length, intValue);
value = eval(yArrayString + ".length");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array length : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("java.lang.String array length : wrong result : ", yArrayStringValue.length, intValue);
} catch (Throwable e) {
e.printStackTrace(); throw e;
} finally {;
end();
}
}
public void testStringArrayAssignment() throws Throwable {
try {
init();
IValue value = eval(xArrayString + "[0]" + equalOp +xString);
String typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array assignment : wrong type : ", "java.lang.String", typeName);
String stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array assignment : wrong result : ", xStringValue, stringValue);
value = eval(xArrayString + "[0]");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array value : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array value : wrong result : ", xStringValue, stringValue);
value = eval(xArrayString + "[1]" + equalOp +yString);
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array assignment : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array assignment : wrong result : ", yStringValue, stringValue);
value = eval(xArrayString + "[1]");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array value : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array value : wrong result : ", yStringValue, stringValue);
value = eval(xArrayString + "[2]" + equalOp +xString);
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array assignment : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array assignment : wrong result : ", xStringValue, stringValue);
value = eval(xArrayString + "[2]");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array value : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array value : wrong result : ", xStringValue, stringValue);
value = eval(yArrayString + "[0]" + equalOp +yString);
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array assignment : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array assignment : wrong result : ", yStringValue, stringValue);
value = eval(yArrayString + "[0]");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array value : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array value : wrong result : ", yStringValue, stringValue);
value = eval(yArrayString + "[1]" + equalOp +xString);
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array assignment : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array assignment : wrong result : ", xStringValue, stringValue);
value = eval(yArrayString + "[1]");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array value : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array value : wrong result : ", xStringValue, stringValue);
value = eval(yArrayString + "[2]" + equalOp +yString);
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array assignment : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array assignment : wrong result : ", yStringValue, stringValue);
value = eval(yArrayString + "[2]");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array value : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array value : wrong result : ", yStringValue, stringValue);
} catch (Throwable e) {
e.printStackTrace(); throw e;
} finally {;
end();
}
}
public void testStringArrayAllocation() throws Throwable {
try {
init();
IValue value = eval(xArrayString + equalOp + "new java.lang.String[]{" + xString + ", " + yString + "}");
String typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array assignment : wrong type : ", "java.lang.String[]", typeName);
int intValue = 0;
java.lang.String stringValue = yStringValue;
value = eval(xArrayString + ".length");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array length : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("java.lang.String array length : wrong result : ", 2, intValue);
value = eval(xArrayString + "[0]");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array value : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array value : wrong result : ", xStringValue, stringValue);
value = eval(xArrayString + "[1]");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array value : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array value : wrong result : ", yStringValue, stringValue);
value = eval(yArrayString + equalOp + "new java.lang.String[]{" + xString + ", " + yString + ", " + xString + "}");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array assignment : wrong type : ", "java.lang.String[]", typeName);
value = eval(yArrayString + ".length");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array length : wrong type : ", "int", typeName);
intValue = ((IJavaPrimitiveValue)value).getIntValue();
assertEquals("java.lang.String array length : wrong result : ", 3, intValue);
value = eval(yArrayString + "[0]");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array value : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array value : wrong result : ", xStringValue, stringValue);
value = eval(yArrayString + "[1]");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array value : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array value : wrong result : ", yStringValue, stringValue);
value = eval(yArrayString + "[2]");
typeName = value.getReferenceTypeName();
assertEquals("java.lang.String array value : wrong type : ", "java.lang.String", typeName);
stringValue = ((JDIObjectValue)value).getValueString();
assertEquals("java.lang.String array value : wrong result : ", xStringValue, stringValue);
} catch (Throwable e) {
e.printStackTrace(); throw e;
} finally {;
end();
}
}
}