function call generation works in some trivial cases

This commit is contained in:
Dmitry Jemerov
2011-03-24 15:18:29 +01:00
parent a203886fe0
commit 802f6e1c7d
7 changed files with 117 additions and 5 deletions
@@ -0,0 +1,17 @@
package org.jetbrains.jet;
import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.testFramework.fixtures.DefaultLightProjectDescriptor;
import org.jetbrains.jet.resolve.JetResolveTest;
/**
* @author yole
*/
public class JetLightProjectDescriptor extends DefaultLightProjectDescriptor {
public static JetLightProjectDescriptor INSTANCE = new JetLightProjectDescriptor();
@Override
public Sdk getSdk() {
return JetResolveTest.jdkFromIdeaHome();
}
}
@@ -1,6 +1,9 @@
package org.jetbrains.jet.codegen;
import com.intellij.testFramework.LightProjectDescriptor;
import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.JetLightProjectDescriptor;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.JetNamespace;
import org.jetbrains.jet.parsing.JetParsingTest;
@@ -24,7 +27,7 @@ public class NamespaceGenTest extends LightCodeInsightFixtureTestCase {
}
public void testPSVM() throws Exception {
myFixture.configureByFile(JetParsingTest.getTestDataDir() + "/codegen/PSVM.jet");
loadFile("PSVM.jet");
final String text = generateToText();
System.out.println(text);
@@ -67,6 +70,19 @@ public class NamespaceGenTest extends LightCodeInsightFixtureTestCase {
assertEquals(new Integer(50), returnValue);
}
public void testCurrentTime() throws Exception {
loadFile("currentTime.jet");
final Class aClass = generateToClass();
final Method main = firstMethod(aClass);
final long returnValue = (Long) main.invoke(null);
long currentTime = System.currentTimeMillis();
assertTrue(Math.abs(returnValue - currentTime) <= 1L);
}
private void loadFile(final String name) {
myFixture.configureByFile(JetParsingTest.getTestDataDir() + "/codegen/" + name);
}
private String generateToText() {
StringWriter writer = new StringWriter();
JetFile jetFile = (JetFile) myFixture.getFile();
@@ -104,4 +120,10 @@ public class NamespaceGenTest extends LightCodeInsightFixtureTestCase {
return super.loadClass(name);
}
}
@NotNull
@Override
protected LightProjectDescriptor getProjectDescriptor() {
return JetLightProjectDescriptor.INSTANCE;
}
}
@@ -114,6 +114,10 @@ public class JetResolveTest extends ExtensibleResolveTestCase {
@Override
protected Sdk getProjectJDK() {
return jdkFromIdeaHome();
}
public static Sdk jdkFromIdeaHome() {
Properties properties = new Properties();
try {
FileReader reader = new FileReader(getHomeDirectory() + "/idea/idea.properties");