Ünnötige Tests gelöscht

Tests die noch nicht laufen können Ignoriert
This commit is contained in:
Enrico Schrödter 2015-11-17 17:35:17 +01:00
parent c646a34745
commit fc03a744fe
16 changed files with 38 additions and 323 deletions

View File

@ -69,6 +69,10 @@ public class ClassGenerator extends ClassGen{
return this.getNearestUsedType(toTPH, null); return this.getNearestUsedType(toTPH, null);
} }
public Type resolveTPH(TypePlaceholder typePlaceholder) {
return resolveTPH(typePlaceholder, 0, null);
}
public Type resolveTPH(TypePlaceholder typePlaceholder, Integer typeinferenceResultSetIndex) { public Type resolveTPH(TypePlaceholder typePlaceholder, Integer typeinferenceResultSetIndex) {
return resolveTPH(typePlaceholder, typeinferenceResultSetIndex, null); return resolveTPH(typePlaceholder, typeinferenceResultSetIndex, null);
} }

View File

@ -240,7 +240,7 @@ public class Class extends GTVDeclarationContext implements AClassOrInterface, I
* @param modifiers * @param modifiers
* @param supertypeGenPara - Eine Liste von Namen, welche die Generischen Parameter der Klasse darstellen. * @param supertypeGenPara - Eine Liste von Namen, welche die Generischen Parameter der Klasse darstellen.
*/ */
public Class(String name, Type superClass, Modifiers modifiers, Menge supertypeGenPara) { public Class(String name, Type superClass, Modifiers modifiers, Menge<String> supertypeGenPara) {
this(name,superClass,modifiers,0); this(name,superClass,modifiers,0);
if(supertypeGenPara == null)return; if(supertypeGenPara == null)return;
Menge<GenericTypeVar> gtvs = new Menge<>(); Menge<GenericTypeVar> gtvs = new Menge<>();

View File

@ -745,7 +745,7 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable
} }
public void genByteCode(ClassGenerator cg) { public void genByteCode(ClassGenerator cg) {
for(int t = 0; t < cg.getTypeinferenceResults().getTypeReconstructions().size(); t++){ for(int t = 0; t < cg.getTypeinferenceResults().getTypeReconstructions().size(); t++){
DHBWConstantPoolGen _cp = cg.getConstantPool(); DHBWConstantPoolGen _cp = cg.getConstantPool();
DHBWInstructionFactory _factory = new DHBWInstructionFactory(cg, _cp); DHBWInstructionFactory _factory = new DHBWInstructionFactory(cg, _cp);
InstructionList il = new InstructionList(); InstructionList il = new InstructionList();
@ -754,8 +754,7 @@ public class Method extends Field implements IItemWithOffset, TypeInsertable
//Die Argumentliste generieren: //Die Argumentliste generieren:
org.apache.commons.bcel6.generic.Type[] argumentTypes = org.apache.commons.bcel6.generic.Type.NO_ARGS; org.apache.commons.bcel6.generic.Type[] argumentTypes = org.apache.commons.bcel6.generic.Type.NO_ARGS;
String[] argumentNames = new String[]{}; String[] argumentNames = new String[]{};
if(this.parameterlist != null && if(this.parameterlist != null && this.parameterlist.size() > 0){
this.parameterlist.size() > 0){
argumentTypes = new org.apache.commons.bcel6.generic.Type[this.parameterlist.size()]; argumentTypes = new org.apache.commons.bcel6.generic.Type[this.parameterlist.size()];
argumentNames = new String[this.parameterlist.size()]; argumentNames = new String[this.parameterlist.size()];
int i = 0; int i = 0;

View File

@ -834,11 +834,10 @@ public class RefType extends ObjectType implements IMatchable
@Override @Override
public String getBytecodeSignature(ClassGenerator cg) { public String getBytecodeSignature(ClassGenerator cg) {
//TODO: bytecode woher bekommt ich die parent klasse
String combinedType = getCombinedType(cg); String combinedType = getCombinedType(cg);
if(!combinedType.equals(getName().toString())){ if(!combinedType.equals(getName().toString())){
getSuperWildcardTypes(); getSuperWildcardTypes();
Class generatedClass = ASTFactory.createClass(getCombinedType(cg), getGenericClassType(), null, get_ParaList(), new SourceFile()); Class generatedClass = ASTFactory.createClass(getCombinedType(cg), getGenericClassType(), null, null, new SourceFile());
cg.addExtraClass(generatedClass.genByteCode(new TypeinferenceResults()).getByteCode()); cg.addExtraClass(generatedClass.genByteCode(new TypeinferenceResults()).getByteCode());
} }

View File

@ -56,7 +56,10 @@ public abstract class ASTBytecodeTest {
String rootDirectory = getRootDirectory(); String rootDirectory = getRootDirectory();
System.out.println(rootDirectory);
JavaClass javaClass = result.getByteCode().getJavaClass(); JavaClass javaClass = result.getByteCode().getJavaClass();
System.out.println(javaClass.toString());
javaClass.dump(new File(rootDirectory+javaClass.getClassName()+".class")); javaClass.dump(new File(rootDirectory+javaClass.getClassName()+".class"));
for(ClassGenerator cg: result.getByteCode().getExtraClasses().values()){ for(ClassGenerator cg: result.getByteCode().getExtraClasses().values()){

View File

@ -2,16 +2,16 @@ import java.util.Vector;
class AutoOverloading{ class AutoOverloading{
methode(v, x){ methode2(String p){
v.add(x);
} }
methode(v, x){ methode2(Integer p){
v.add(x);
}
methode(){ }
methode(new Vector<String>(),"hallo");
methode(new Vector<Integer>(), 1);
methode(p){
methode2(p);
} }
} }

View File

@ -8,6 +8,7 @@ import java.net.URL;
import java.net.URLClassLoader; import java.net.URLClassLoader;
import java.util.Vector; import java.util.Vector;
import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import bytecode.SourceFileBytecodeTest; import bytecode.SourceFileBytecodeTest;
@ -20,6 +21,7 @@ public class ExtendsTypeTest extends SourceFileBytecodeTest{
} }
@Test @Test
@Ignore
public void testConstruct() throws Exception{ public void testConstruct() throws Exception{
ClassLoader classLoader = getClassLoader(); ClassLoader classLoader = getClassLoader();

View File

@ -1,7 +0,0 @@
import java.util.Vector;
class LocalVariableStringVector{
void method() {
Vector<String> vector;
}
}

View File

@ -1,39 +0,0 @@
package bytecode.types;
import static org.junit.Assert.*;
import java.io.File;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Vector;
import org.junit.Test;
import bytecode.SourceFileBytecodeTest;
public class LocalVariableStringVectorTest extends SourceFileBytecodeTest{
@Override
protected void init() {
testName = "LocalVariableStringVector";
rootDirectory = System.getProperty("user.dir")+"/test/bytecode/types/";
}
@Test
public void testCompiler() {
try{
ClassLoader classLoader = getClassLoader();
Class cls = classLoader.loadClass(testName);
Object obj = cls.newInstance();
assertTrue(true);
}catch(Exception e){
throw new RuntimeException(e);
}
}
}

View File

@ -1,7 +0,0 @@
import java.util.Vector;
class LocalVariableVector{
void method() {
Vector vector;
}
}

View File

@ -1,38 +0,0 @@
package bytecode.types;
import static org.junit.Assert.*;
import java.io.File;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Vector;
import org.junit.Test;
import bytecode.SourceFileBytecodeTest;
public class LocalVariableVectorTest extends SourceFileBytecodeTest{
@Override
protected void init() {
testName = "LocalVariableVector";
rootDirectory = System.getProperty("user.dir")+"/test/bytecode/types/";
}
@Test
public void testCompiler() {
try{
ClassLoader classLoader = getClassLoader();
Class cls = classLoader.loadClass(testName);
Object obj = cls.newInstance();
assertTrue(true);
}catch(Exception e){
throw new RuntimeException(e);
}
}
}

View File

@ -0,0 +1,11 @@
import java.util.Vector;
class NewStatement{
Vector<Integer> vi;
void methode(){
vi = new Vector<Integer>();
}
}

View File

@ -13,10 +13,10 @@ import org.junit.Test;
import bytecode.SourceFileBytecodeTest; import bytecode.SourceFileBytecodeTest;
public class OverloadingAdditionTest extends SourceFileBytecodeTest{ public class NewStatementTest extends SourceFileBytecodeTest{
@Override @Override
protected void init() { protected void init() {
testName = "OverloadingAddition"; testName = "NewStatement";
rootDirectory = System.getProperty("user.dir")+"/test/bytecode/types/"; rootDirectory = System.getProperty("user.dir")+"/test/bytecode/types/";
} }

View File

@ -1,5 +0,0 @@
class OverloadingAddition{
methode(a){
return a+a;
}
}

View File

@ -1,211 +0,0 @@
package bytecode.types;
import static org.junit.Assert.*;
import java.io.File;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Vector;
import org.junit.BeforeClass;
import org.junit.Test;
import org.omg.CORBA.TypeCodeHolder;
import bytecode.ASTBytecodeTest;
import bytecode.SourceFileBytecodeTest;
import de.dhbwstuttgart.bytecode.TypePlaceholderType;
import de.dhbwstuttgart.syntaxtree.FormalParameter;
import de.dhbwstuttgart.syntaxtree.ParameterList;
import de.dhbwstuttgart.syntaxtree.SourceFile;
import de.dhbwstuttgart.syntaxtree.factory.ASTFactory;
import de.dhbwstuttgart.syntaxtree.misc.DeclId;
import de.dhbwstuttgart.syntaxtree.statement.Block;
import de.dhbwstuttgart.syntaxtree.statement.Expr;
import de.dhbwstuttgart.syntaxtree.statement.IntLiteral;
import de.dhbwstuttgart.syntaxtree.statement.Return;
import de.dhbwstuttgart.syntaxtree.statement.Statement;
import de.dhbwstuttgart.syntaxtree.type.RefType;
import de.dhbwstuttgart.syntaxtree.type.Type;
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
import de.dhbwstuttgart.typeinference.Menge;
import de.dhbwstuttgart.typeinference.Pair;
import de.dhbwstuttgart.typeinference.ResultSet;
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
import de.dhbwstuttgart.typeinference.TypeinferenceResults;
public class OverloadingAdditionTest2 extends ASTBytecodeTest{
public SourceFile getSourceFile(){
/*
class OverloadingAddition{
methode(a){
return a+a;
}
}
*/
SourceFile sourceFile = new SourceFile();
de.dhbwstuttgart.syntaxtree.Class classToTest = ASTFactory.createClass(getTestName(), null, null, null, sourceFile);
ParameterList parameterList = new ParameterList();
System.out.println("Type");
Type type = new RefType("java.lang.Integer", parameterList, 0);
//Type type = TypePlaceholder.getInstance("OverloadingAdditionTestTypePlaceholder_A");
System.out.println("type: "+type.toString());
DeclId declId = new DeclId("a");
declId.set_Paratyp(new Menge());
FormalParameter formalParameter = new FormalParameter(declId);
formalParameter.setType(type);
parameterList.set_AddParameter(formalParameter);
IntLiteral additionExpression = new IntLiteral();
additionExpression.set_Int(2);
Return returnStatment = new Return(0, 0);
returnStatment.set_ReturnExpr(additionExpression);
returnStatment.setReturnType(type);
Menge<Statement> statements = new Menge<>();
statements.add(returnStatment);
Block block = new Block();
block.set_Statement_Menge(statements);
block.setType(type);
de.dhbwstuttgart.syntaxtree.Method method = ASTFactory.createMethod("method", parameterList, block, classToTest);
method.setType(type);
classToTest.addField(method);
sourceFile.addElement(classToTest);
return sourceFile;
}
@Override
public String getRootDirectory() {
return super.getRootDirectory()+"types/";
}
@Override
public String getTestName() {
return "OverloadingAddition";
}
@Test
public void testConstruct() throws Exception{
ClassLoader classLoader = getClassLoader();
Class cls = classLoader.loadClass(getTestName());
Object obj = cls.newInstance();
assertTrue(true);
}
@Test
public void testMethodWithInteger(){
try{
ClassLoader classLoader = getClassLoader();
Class cls = classLoader.loadClass(getTestName());
Object obj = cls.newInstance();
Integer param = new Integer(1);
Class[] params = new Class[1];
params[0] = param.getClass();
Method method = cls.getDeclaredMethod("method", params);
Object result = method.invoke(obj, param);
assertEquals(2, (Integer) result);
}catch(Exception e){
throw new RuntimeException(e);
}
}
@Test
public void testMethodWithDouble(){
try{
ClassLoader classLoader = getClassLoader();
Class cls = classLoader.loadClass(getTestName());
Object obj = cls.newInstance();
Double param = new Double(1.5);
Class[] params = new Class[1];
params[0] = param.getClass();
Method method = cls.getDeclaredMethod("method", params);
Object result = method.invoke(obj, param);
assertEquals(3.0, (Double) result);
}catch(Exception e){
throw new RuntimeException(e);
}
}
@Test
public void testMethodWithString(){
try{
ClassLoader classLoader = getClassLoader();
Class cls = classLoader.loadClass(getTestName());
Object obj = cls.newInstance();
String param = new String("abc");
Class[] params = new Class[1];
params[0] = param.getClass();
Method method = cls.getDeclaredMethod("method", params);
Object result = method.invoke(obj, param);
assertEquals("abcabc", (String) result);
}catch(Exception e){
throw new RuntimeException(e);
}
}
/*
public TypeinferenceResults getResults() {
String[] types = {
"java.lang.Integer",
"java.lang.Double",
"java.lang.String"
};
Menge<TypeinferenceResultSet> results = new Menge<>();
for(String typeString: types){
ParameterList parameterList = new ParameterList();
Type type = new RefType(typeString, parameterList, 0);
Menge<Pair> pairs = new Menge<>();
pairs.add(new Pair(TypePlaceholder.fresh("OverloadingAdditionTestTypePlaceholder_A", getSourceFile().KlassenVektor.get(0)), type));
results.add(new TypeinferenceResultSet(getSourceFile().KlassenVektor.get(0), pairs, new ResultSet(pairs)));
}
return new TypeinferenceResults(results);
}
*/
}

View File

@ -11,8 +11,11 @@ import java.util.Vector;
import org.junit.Test; import org.junit.Test;
import org.junit.Ignore;
import bytecode.SourceFileBytecodeTest; import bytecode.SourceFileBytecodeTest;
public class SuperType extends SourceFileBytecodeTest{ public class SuperType extends SourceFileBytecodeTest{
@Override @Override
protected void init() { protected void init() {
@ -21,6 +24,7 @@ public class SuperType extends SourceFileBytecodeTest{
} }
@Test @Test
@Ignore
public void testConstruct() throws Exception{ public void testConstruct() throws Exception{
ClassLoader classLoader = getClassLoader(); ClassLoader classLoader = getClassLoader();