Ensure jps caches are always cleared in tests

This commit is contained in:
Alexey Tsvetkov
2016-10-19 21:28:28 +03:00
parent 72fdb77628
commit ea93ec3eec
7 changed files with 42 additions and 29 deletions
+1
View File
@@ -17,5 +17,6 @@
<orderEntry type="module" module-name="util" />
<orderEntry type="module" module-name="descriptor.loader.java" scope="TEST" />
<orderEntry type="module" module-name="frontend.java" scope="TEST" />
<orderEntry type="module" module-name="jps-tests" scope="TEST" />
</component>
</module>
@@ -16,12 +16,12 @@
package org.jetbrains.kotlin.android.tests;
import org.jetbrains.jps.builders.JpsBuildTestCase;
import org.jetbrains.kotlin.jps.build.BaseKotlinJpsBuildTestCase;
import java.io.File;
import java.io.IOException;
public class AndroidJpsBuildTestCase extends JpsBuildTestCase {
public class AndroidJpsBuildTestCase extends BaseKotlinJpsBuildTestCase {
private static final String PROJECT_NAME = "android-module";
private static final String SDK_NAME = "Android_SDK";
@@ -31,7 +31,6 @@ import org.jetbrains.jps.ModuleChunk
import org.jetbrains.jps.api.CanceledStatus
import org.jetbrains.jps.builders.BuildResult
import org.jetbrains.jps.builders.CompileScopeTestBuilder
import org.jetbrains.jps.builders.JpsBuildTestCase
import org.jetbrains.jps.builders.impl.BuildDataPathsImpl
import org.jetbrains.jps.builders.impl.logging.ProjectBuilderLoggerBase
import org.jetbrains.jps.builders.java.dependencyView.Callbacks
@@ -55,10 +54,7 @@ import org.jetbrains.kotlin.jps.incremental.getKotlinCache
import org.jetbrains.kotlin.test.KotlinTestUtils
import org.jetbrains.kotlin.utils.Printer
import org.jetbrains.kotlin.utils.keysToMap
import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream
import java.io.File
import java.io.PrintStream
import java.io.*
import java.util.*
import kotlin.reflect.jvm.javaField
@@ -66,7 +62,7 @@ abstract class AbstractIncrementalJpsTest(
private val allowNoFilesWithSuffixInTestData: Boolean = false,
private val checkDumpsCaseInsensitively: Boolean = false,
private val allowNoBuildLogFileInTestData: Boolean = false
) : JpsBuildTestCase() {
) : BaseKotlinJpsBuildTestCase() {
companion object {
init {
disableJava6FileManager()
@@ -120,7 +116,6 @@ abstract class AbstractIncrementalJpsTest(
override fun setUp() {
super.setUp()
System.setProperty("kotlin.jps.tests", "true")
lookupsDuringTest = hashSetOf()
IncrementalCompilation.setIsExperimental(enableExperimentalIncrementalCompilation)
@@ -39,7 +39,7 @@ import java.io.File;
import java.io.IOException;
import java.util.Collection;
public abstract class AbstractKotlinJpsBuildTestCase extends JpsBuildTestCase {
public abstract class AbstractKotlinJpsBuildTestCase extends BaseKotlinJpsBuildTestCase {
public static final String TEST_DATA_PATH = "jps-plugin/testData/";
static {
@@ -48,18 +48,6 @@ public abstract class AbstractKotlinJpsBuildTestCase extends JpsBuildTestCase {
protected File workDir;
@Override
public void setUp() throws Exception {
super.setUp();
System.setProperty("kotlin.jps.tests", "true");
}
@Override
public void tearDown() throws Exception {
System.clearProperty("kotlin.jps.tests");
super.tearDown();
}
protected static File copyTestDataToTmpDir(File testDataDir) throws IOException {
assert testDataDir.exists() : "Cannot find source folder " + testDataDir.getAbsolutePath();
File tmpDir = FileUtil.createTempDirectory("jps-build", null);
@@ -0,0 +1,33 @@
/*
* Copyright 2010-2016 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.jps.build
import org.jetbrains.jps.builders.JpsBuildTestCase
abstract class BaseKotlinJpsBuildTestCase : JpsBuildTestCase() {
override fun setUp() {
super.setUp()
JpsUtils.resetCaches()
System.setProperty("kotlin.jps.tests", "true")
}
override fun tearDown() {
JpsUtils.resetCaches()
System.clearProperty("kotlin.jps.tests")
super.tearDown()
}
}
+1
View File
@@ -35,5 +35,6 @@
<orderEntry type="library" scope="TEST" name="junit-plugin" level="project" />
<orderEntry type="module" module-name="annotation-processing" scope="TEST" />
<orderEntry type="module" module-name="build-common" scope="TEST" />
<orderEntry type="module" module-name="jps-tests" scope="TEST" />
</component>
</module>
@@ -17,24 +17,19 @@
package org.jetbrains.kotlin.jps.build.android
import com.intellij.openapi.util.io.FileUtil
import org.jetbrains.jps.builders.JpsBuildTestCase
import org.jetbrains.jps.android.model.JpsAndroidSdkProperties
import org.jetbrains.jps.model.JpsSimpleElement
import org.jetbrains.jps.model.library.sdk.JpsSdk
import org.jetbrains.jps.android.model.JpsAndroidSdkType
import org.jetbrains.jps.model.impl.JpsSimpleElementImpl
import org.jetbrains.jps.model.library.JpsOrderRootType
import org.jetbrains.kotlin.jps.build.BaseKotlinJpsBuildTestCase
import java.io.File
abstract class AbstractAndroidJpsTestCase : JpsBuildTestCase() {
abstract class AbstractAndroidJpsTestCase : BaseKotlinJpsBuildTestCase() {
private val SDK_NAME = "Android API 23 Platform"
override fun setUp() {
super.setUp()
System.setProperty("kotlin.jps.tests", "true")
}
fun doTest(path: String) {
addJdkAndAndroidSdk()
loadProject(path + getTestName(true) + ".ipr")