Drop JetTestCaseBuilder, move methods to JetTestUtils

This commit is contained in:
Alexander Udalov
2015-01-13 13:04:06 +03:00
parent edf054ddf3
commit 053b5a7700
35 changed files with 86 additions and 136 deletions
@@ -30,7 +30,10 @@ import org.jetbrains.kotlin.codegen.state.GenerationState;
import org.jetbrains.kotlin.load.kotlin.PackageClassUtils;
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.psi.JetFile;
import org.jetbrains.kotlin.test.*;
import org.jetbrains.kotlin.test.ConfigurationKind;
import org.jetbrains.kotlin.test.JetTestUtils;
import org.jetbrains.kotlin.test.TestCaseWithTmpdir;
import org.jetbrains.kotlin.test.TestJdkKind;
import org.jetbrains.kotlin.utils.UtilsPackage;
import org.jetbrains.org.objectweb.asm.*;
@@ -50,7 +53,7 @@ public class AbstractLineNumberTest extends TestCaseWithTmpdir {
@NotNull
private static String getTestDataPath() {
return JetTestCaseBuilder.getTestDataPathBase() + "/lineNumber";
return JetTestUtils.getTestDataPathBase() + "/lineNumber";
}
@NotNull
@@ -22,7 +22,10 @@ import com.intellij.util.Processor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles;
import org.jetbrains.kotlin.cli.jvm.compiler.JetCoreEnvironment;
import org.jetbrains.kotlin.test.*;
import org.jetbrains.kotlin.test.ConfigurationKind;
import org.jetbrains.kotlin.test.JetTestUtils;
import org.jetbrains.kotlin.test.MockLibraryUtil;
import org.jetbrains.kotlin.test.TestJdkKind;
import java.io.File;
import java.util.ArrayList;
@@ -71,8 +74,7 @@ public abstract class AbstractTopLevelMembersInvocationTest extends AbstractByte
loadFiles(ArrayUtil.toStringArray(sourceFiles));
List<OccurrenceInfo> expected =
readExpectedOccurrences(JetTestCaseBuilder.getTestDataPathBase() + "/codegen/" + sourceFiles.get(0));
List<OccurrenceInfo> expected = readExpectedOccurrences(JetTestUtils.getTestDataPathBase() + "/codegen/" + sourceFiles.get(0));
countAndCompareActualOccurrences(expected);
}
}
@@ -28,7 +28,6 @@ import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime;
import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils;
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.test.ConfigurationKind;
import org.jetbrains.kotlin.test.JetTestCaseBuilder;
import org.jetbrains.kotlin.test.JetTestUtils;
import org.jetbrains.kotlin.utils.UtilsPackage;
import org.jetbrains.org.objectweb.asm.ClassReader;
@@ -86,7 +85,7 @@ public abstract class CodegenTestCase extends UsefulTestCase {
@NotNull
protected String loadFile(@NotNull @TestDataFile String name) {
return loadFileByFullPath(JetTestCaseBuilder.getTestDataPathBase() + "/codegen/" + name);
return loadFileByFullPath(JetTestUtils.getTestDataPathBase() + "/codegen/" + name);
}
@NotNull
@@ -29,7 +29,6 @@ import org.jetbrains.kotlin.parsing.JetScriptDefinitionProvider;
import org.jetbrains.kotlin.psi.JetFile;
import org.jetbrains.kotlin.resolve.AnalyzerScriptParameter;
import org.jetbrains.kotlin.resolve.AnalyzingUtils;
import org.jetbrains.kotlin.test.JetTestCaseBuilder;
import org.jetbrains.kotlin.test.JetTestUtils;
import org.jetbrains.kotlin.types.JetType;
import org.jetbrains.kotlin.types.Variance;
@@ -85,7 +84,7 @@ public class CodegenTestFiles {
ArrayList<JetFile> files = new ArrayList<JetFile>();
for (String name : names) {
try {
String content = JetTestUtils.doLoadFile(JetTestCaseBuilder.getTestDataPathBase() + "/codegen/", name);
String content = JetTestUtils.doLoadFile(JetTestUtils.getTestDataPathBase() + "/codegen/", name);
int i = name.lastIndexOf('/');
//name = name.substring(i+1);
JetFile file = JetTestUtils.createFile(name, content, project);
@@ -32,7 +32,6 @@ import org.jetbrains.kotlin.config.CompilerConfiguration;
import org.jetbrains.kotlin.resolve.AnalyzingUtils;
import org.jetbrains.kotlin.resolve.BindingTraceContext;
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil;
import org.jetbrains.kotlin.test.JetTestCaseBuilder;
import org.jetbrains.kotlin.test.JetTestUtils;
import org.jetbrains.kotlin.utils.UtilsPackage;
@@ -133,7 +132,7 @@ public class CodegenTestUtil {
"-d", javaClassesTempDirectory.getPath()
);
File javaFile = new File(JetTestCaseBuilder.getTestDataPathBase() + "/codegen/" + filename);
File javaFile = new File(JetTestUtils.getTestDataPathBase() + "/codegen/" + filename);
JetTestUtils.compileJavaFiles(Collections.singleton(javaFile), options);
return javaClassesTempDirectory;
@@ -39,7 +39,6 @@ import org.jetbrains.kotlin.psi.JetFile;
import org.jetbrains.kotlin.resolve.BindingContext;
import org.jetbrains.kotlin.resolve.BindingContextUtils;
import org.jetbrains.kotlin.test.ConfigurationKind;
import org.jetbrains.kotlin.test.JetTestCaseBuilder;
import org.jetbrains.kotlin.test.JetTestUtils;
import org.jetbrains.kotlin.test.TestJdkKind;
import org.jetbrains.kotlin.types.JetType;
@@ -91,8 +90,8 @@ public class TestlibTest extends UsefulTestCase {
assertTrue(junitJar.exists());
configuration.add(JVMConfigurationKeys.CLASSPATH_KEY, junitJar);
configuration.add(CommonConfigurationKeys.SOURCE_ROOTS_KEY, JetTestCaseBuilder.getHomeDirectory() + "/libraries/stdlib/test");
configuration.add(CommonConfigurationKeys.SOURCE_ROOTS_KEY, JetTestCaseBuilder.getHomeDirectory() + "/libraries/kunit/src");
configuration.add(CommonConfigurationKeys.SOURCE_ROOTS_KEY, JetTestUtils.getHomeDirectory() + "/libraries/stdlib/test");
configuration.add(CommonConfigurationKeys.SOURCE_ROOTS_KEY, JetTestUtils.getHomeDirectory() + "/libraries/kunit/src");
configuration.put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY,
new MessageCollectorPlainTextToStream(System.out, MessageCollectorPlainTextToStream.NON_VERBOSE));
@@ -32,7 +32,6 @@ import org.intellij.lang.annotations.Language;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.cli.common.KotlinVersion;
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime;
import org.jetbrains.kotlin.test.JetTestCaseBuilder;
import org.jetbrains.kotlin.test.JetTestUtils;
import org.jetbrains.kotlin.test.Tmpdir;
import org.jetbrains.kotlin.utils.PathUtil;
@@ -47,7 +46,7 @@ import java.util.regex.Pattern;
import static org.junit.Assert.*;
public abstract class KotlinIntegrationTestBase {
protected static final File INTEGRATION_TEST_DATA_BASE_DIR = new File(JetTestCaseBuilder.getTestDataPathBase(), "integration");
protected static final File INTEGRATION_TEST_DATA_BASE_DIR = new File(JetTestUtils.getTestDataPathBase(), "integration");
@Rule
public final Tmpdir tmpdir = new Tmpdir();
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler;
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime;
import org.jetbrains.kotlin.load.kotlin.PackageClassUtils;
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.test.JetTestCaseBuilder;
import org.jetbrains.kotlin.test.JetTestUtils;
import org.junit.Assert;
@@ -45,7 +44,7 @@ public class CompileEnvironmentTest extends TestCase {
File resultJar = new File(tempDir, "result.jar");
ExitCode rv = new K2JVMCompiler().exec(
System.out,
"-module", JetTestCaseBuilder.getTestDataPathBase() + "/compiler/smoke/Smoke.ktm",
"-module", JetTestUtils.getTestDataPathBase() + "/compiler/smoke/Smoke.ktm",
"-d", resultJar.getAbsolutePath(),
"-no-stdlib",
"-classpath", stdlib.getAbsolutePath(),
@@ -82,7 +81,7 @@ public class CompileEnvironmentTest extends TestCase {
File jdkAnnotations = JetTestUtils.getJdkAnnotationsJar();
ExitCode exitCode = new K2JVMCompiler().exec(
System.out,
JetTestCaseBuilder.getTestDataPathBase() + "/compiler/smoke/Smoke.kt",
JetTestUtils.getTestDataPathBase() + "/compiler/smoke/Smoke.kt",
"-d", out.getAbsolutePath(),
"-no-stdlib",
"-classpath", stdlib.getAbsolutePath(),
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.psi.IfNotParsed;
import org.jetbrains.kotlin.psi.JetElement;
import org.jetbrains.kotlin.psi.JetPsiFactory;
import org.jetbrains.kotlin.psi.JetVisitorVoid;
import org.jetbrains.kotlin.test.JetTestCaseBuilder;
import org.jetbrains.kotlin.test.JetTestUtils;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
@@ -45,7 +45,7 @@ public abstract class AbstractJetParsingTest extends ParsingTestCase {
@Override
protected String getTestDataPath() {
return JetTestCaseBuilder.getHomeDirectory();
return JetTestUtils.getHomeDirectory();
}
public AbstractJetParsingTest() {
@@ -48,7 +48,7 @@ public abstract class JetLiteFixture extends KotlinTestWithEnvironment {
}
protected String getTestDataPath() {
return JetTestCaseBuilder.getTestDataPathBase();
return JetTestUtils.getTestDataPathBase();
}
@Override
@@ -1,36 +0,0 @@
/*
* Copyright 2010-2015 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.kotlin.test;
import com.intellij.openapi.util.io.FileUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.utils.PathUtil;
import java.io.File;
public abstract class JetTestCaseBuilder {
@NotNull
public static String getTestDataPathBase() {
return getHomeDirectory() + "/compiler/testData";
}
@NotNull
public static String getHomeDirectory() {
File resourceRoot = PathUtil.getResourcePathForClass(JetTestCaseBuilder.class);
return FileUtil.toSystemIndependentName(resourceRoot.getParentFile().getParentFile().getParent());
}
}
@@ -58,10 +58,10 @@ import org.jetbrains.kotlin.diagnostics.Diagnostic;
import org.jetbrains.kotlin.diagnostics.Errors;
import org.jetbrains.kotlin.diagnostics.Severity;
import org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages;
import org.jetbrains.kotlin.idea.JetLanguage;
import org.jetbrains.kotlin.lexer.JetTokens;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
import org.jetbrains.kotlin.idea.JetLanguage;
import org.jetbrains.kotlin.psi.JetFile;
import org.jetbrains.kotlin.resolve.BindingContext;
import org.jetbrains.kotlin.resolve.BindingTrace;
@@ -280,21 +280,32 @@ public class JetTestUtils {
EnvironmentConfigFiles.JVM_CONFIG_FILES);
}
@NotNull
public static String getTestDataPathBase() {
return getHomeDirectory() + "/compiler/testData";
}
@NotNull
public static String getHomeDirectory() {
File resourceRoot = PathUtil.getResourcePathForClass(JetTestUtils.class);
return FileUtil.toSystemIndependentName(resourceRoot.getParentFile().getParentFile().getParent());
}
public static File findMockJdkRtJar() {
return new File(JetTestCaseBuilder.getHomeDirectory(), "compiler/testData/mockJDK/jre/lib/rt.jar");
return new File(getHomeDirectory(), "compiler/testData/mockJDK/jre/lib/rt.jar");
}
public static File findAndroidApiJar() {
return new File(JetTestCaseBuilder.getHomeDirectory(), "dependencies/android.jar");
return new File(getHomeDirectory(), "dependencies/android.jar");
}
public static File getAnnotationsJar() {
return new File(JetTestCaseBuilder.getHomeDirectory(), "compiler/testData/mockJDK/jre/lib/annotations.jar");
return new File(getHomeDirectory(), "compiler/testData/mockJDK/jre/lib/annotations.jar");
}
@NotNull
public static File getJdkAnnotationsJar() {
File jdkAnnotations = new File(JetTestCaseBuilder.getHomeDirectory(), "dependencies/annotations/kotlin-jdk-annotations.jar");
File jdkAnnotations = new File(getHomeDirectory(), "dependencies/annotations/kotlin-jdk-annotations.jar");
if (!jdkAnnotations.exists()) {
throw new RuntimeException("Kotlin JDK annotations jar not found; please run 'ant dist' to build it");
}
@@ -303,7 +314,7 @@ public class JetTestUtils {
@NotNull
public static File getAndroidSdkAnnotationsJar() {
File androidSdkAnnotations = new File(JetTestCaseBuilder.getHomeDirectory(), "dependencies/annotations/kotlin-android-sdk-annotations.jar");
File androidSdkAnnotations = new File(getHomeDirectory(), "dependencies/annotations/kotlin-android-sdk-annotations.jar");
if (!androidSdkAnnotations.exists()) {
throw new RuntimeException("Kotlin Android SDK annotations jar not found; please run 'ant dist' to build it");
}
@@ -27,7 +27,6 @@ import org.jetbrains.kotlin.resolve.OverloadUtil;
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo;
import org.jetbrains.kotlin.test.ConfigurationKind;
import org.jetbrains.kotlin.test.JetLiteFixture;
import org.jetbrains.kotlin.test.JetTestCaseBuilder;
import org.jetbrains.kotlin.test.JetTestUtils;
import static org.jetbrains.kotlin.psi.PsiPackage.JetPsiFactory;
@@ -55,13 +54,7 @@ public class JetOverloadTest extends JetLiteFixture {
super.tearDown();
}
@Override
protected String getTestDataPath() {
return JetTestCaseBuilder.getTestDataPathBase();
}
public void testBasic() throws Exception {
assertNotOverloadable(
"fun a() : Int",
"fun a() : Int");
@@ -27,7 +27,6 @@ import org.jetbrains.kotlin.resolve.OverridingUtil;
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo;
import org.jetbrains.kotlin.test.ConfigurationKind;
import org.jetbrains.kotlin.test.JetLiteFixture;
import org.jetbrains.kotlin.test.JetTestCaseBuilder;
import org.jetbrains.kotlin.test.JetTestUtils;
import static org.jetbrains.kotlin.psi.PsiPackage.JetPsiFactory;
@@ -55,11 +54,6 @@ public class JetOverridingTest extends JetLiteFixture {
super.tearDown();
}
@Override
protected String getTestDataPath() {
return JetTestCaseBuilder.getTestDataPathBase();
}
public void testBasic() throws Exception {
assertOverridable(
"fun a() : Int",
@@ -41,7 +41,6 @@ import org.jetbrains.kotlin.resolve.scopes.*;
import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver;
import org.jetbrains.kotlin.test.ConfigurationKind;
import org.jetbrains.kotlin.test.JetLiteFixture;
import org.jetbrains.kotlin.test.JetTestCaseBuilder;
import org.jetbrains.kotlin.test.JetTestUtils;
import org.jetbrains.kotlin.types.checker.JetTypeChecker;
import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices;
@@ -94,11 +93,6 @@ public class JetTypeCheckerTest extends JetLiteFixture {
super.tearDown();
}
@Override
protected String getTestDataPath() {
return JetTestCaseBuilder.getTestDataPathBase();
}
public void testConstants() throws Exception {
assertType("1", builtIns.getIntType());
assertType("0x1", builtIns.getIntType());