From 205f99bf60e2cd38e8e42f04a8cfed09729a723a Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Thu, 29 May 2014 18:30:34 +0400 Subject: [PATCH] Made incremental compilation test auto-generated. --- generators/generators.iml | 1 + .../jet/generators/tests/GenerateTests.kt | 7 ++ ...sTest.kt => AbstractIncrementalJpsTest.kt} | 74 ++----------- .../build/IncrementalJpsTestGenerated.java | 104 ++++++++++++++++++ 4 files changed, 123 insertions(+), 63 deletions(-) rename jps-plugin/test/org/jetbrains/jet/jps/build/{IncrementalJpsTest.kt => AbstractIncrementalJpsTest.kt} (86%) create mode 100644 jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTestGenerated.java diff --git a/generators/generators.iml b/generators/generators.iml index d474d7ba923..56a2afe8b3b 100644 --- a/generators/generators.iml +++ b/generators/generators.iml @@ -23,6 +23,7 @@ + diff --git a/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.kt b/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.kt index 7a303555553..c0d5d5bda56 100644 --- a/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.kt +++ b/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.kt @@ -113,6 +113,7 @@ import org.jetbrains.jet.plugin.stubs.AbstractMultiFileHighlightingTest import org.jetbrains.jet.cfg.AbstractPseudoValueTest import org.jetbrains.jet.plugin.structureView.AbstractKotlinFileStructureTest import org.jetbrains.jet.j2k.test.AbstractJavaToKotlinConverterTest +import org.jetbrains.jet.jps.build.AbstractIncrementalJpsTest fun main(args: Array) { System.setProperty("java.awt.headless", "true") @@ -641,6 +642,12 @@ fun main(args: Array) { model("ast", extension = "java") } } + + testGroup("jps-plugin/test", "jps-plugin/testData") { + testClass(javaClass()) { + model("incremental", extension = null, recursive = false) + } + } } private class TestGroup(val testsRoot: String, val testDataRoot: String) { diff --git a/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTest.kt b/jps-plugin/test/org/jetbrains/jet/jps/build/AbstractIncrementalJpsTest.kt similarity index 86% rename from jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTest.kt rename to jps-plugin/test/org/jetbrains/jet/jps/build/AbstractIncrementalJpsTest.kt index 68b1abcd906..02ac07e068a 100644 --- a/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTest.kt +++ b/jps-plugin/test/org/jetbrains/jet/jps/build/AbstractIncrementalJpsTest.kt @@ -30,22 +30,14 @@ import org.jetbrains.jet.config.IncrementalCompilation import java.util.ArrayList import kotlin.test.fail -public class IncrementalJpsTest : JpsBuildTestCase() { - private val testDataDir: File - get() = File(AbstractKotlinJpsBuildTestCase.TEST_DATA_PATH + "incremental/" + getTestName(true)) +public abstract class AbstractIncrementalJpsTest : JpsBuildTestCase() { + private var testDataDir: File by Delegates.notNull() var workDir: File by Delegates.notNull() override fun setUp() { super.setUp() System.setProperty("kotlin.jps.tests", "true") - - workDir = FileUtil.createTempDirectory("jps-build", null) - - FileUtil.copyDir(testDataDir, File(workDir, "src"), { it.getName().endsWith(".kt") || it.getName().endsWith(".java") }) - - JpsJavaExtensionService.getInstance().getOrCreateProjectExtension(myProject!!) - .setOutputUrl(JpsPathUtil.pathToUrl(getAbsolutePath("out"))) } override fun tearDown() { @@ -99,11 +91,19 @@ public class IncrementalJpsTest : JpsBuildTestCase() { } } - private fun doTest() { + protected fun doTest(testDataPath: String) { if (!IncrementalCompilation.ENABLED) { return } + testDataDir = File(testDataPath) + workDir = FileUtil.createTempDirectory("jps-build", null) + + FileUtil.copyDir(testDataDir, File(workDir, "src"), { it.getName().endsWith(".kt") || it.getName().endsWith(".java") }) + + JpsJavaExtensionService.getInstance().getOrCreateProjectExtension(myProject!!) + .setOutputUrl(JpsPathUtil.pathToUrl(getAbsolutePath("out"))) + addModule("module", array(getAbsolutePath("src")), null, null, addJdk("my jdk")) AbstractKotlinJpsBuildTestCase.addKotlinRuntimeDependency(myProject!!) @@ -132,58 +132,6 @@ public class IncrementalJpsTest : JpsBuildTestCase() { override fun doGetProjectDir(): File? = workDir - fun testIndependentClasses() { - doTest() - } - - fun testSimpleClassDependency() { - doTest() - } - - fun testTopLevelMembersInTwoPackages() { - doTest() - } - - fun testReturnTypeChanged() { - doTest() - } - - fun testTopLevelFunctionSameSignature() { - doTest() - } - - fun testClassSignatureChanged() { - doTest() - } - - fun testConstantValue() { - doTest() - } - - fun testConstantUnchanged() { - doTest() - } - - fun testPackageFileAdded() { - doTest() - } - - fun testPackageFileRemoved() { - doTest() - } - - fun testPackageFilesChangedInTurn() { - doTest() - } - - fun testPackageFileChangedThenOtherRemoved() { - doTest() - } - - fun testPackageFileChangedPackage() { - doTest() - } - private class MyLogger(val rootPath: String) : ProjectBuilderLoggerBase() { private val logBuf = StringBuilder() public val log: String diff --git a/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTestGenerated.java b/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTestGenerated.java new file mode 100644 index 00000000000..f0c282265d5 --- /dev/null +++ b/jps-plugin/test/org/jetbrains/jet/jps/build/IncrementalJpsTestGenerated.java @@ -0,0 +1,104 @@ +/* + * Copyright 2010-2014 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.jet.jps.build; + +import junit.framework.Assert; +import junit.framework.Test; +import junit.framework.TestSuite; + +import java.io.File; +import java.util.regex.Pattern; +import org.jetbrains.jet.JetTestUtils; +import org.jetbrains.jet.test.InnerTestClasses; +import org.jetbrains.jet.test.TestMetadata; + +import org.jetbrains.jet.jps.build.AbstractIncrementalJpsTest; + +/** This class is generated by {@link org.jetbrains.jet.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("jps-plugin/testData/incremental") +public class IncrementalJpsTestGenerated extends AbstractIncrementalJpsTest { + public void testAllFilesPresentInIncremental() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("jps-plugin/testData/incremental"), Pattern.compile("^([^\\.]+)$"), false); + } + + @TestMetadata("classSignatureChanged") + public void testClassSignatureChanged() throws Exception { + doTest("jps-plugin/testData/incremental/classSignatureChanged/"); + } + + @TestMetadata("constantUnchanged") + public void testConstantUnchanged() throws Exception { + doTest("jps-plugin/testData/incremental/constantUnchanged/"); + } + + @TestMetadata("constantValue") + public void testConstantValue() throws Exception { + doTest("jps-plugin/testData/incremental/constantValue/"); + } + + @TestMetadata("independentClasses") + public void testIndependentClasses() throws Exception { + doTest("jps-plugin/testData/incremental/independentClasses/"); + } + + @TestMetadata("packageFileAdded") + public void testPackageFileAdded() throws Exception { + doTest("jps-plugin/testData/incremental/packageFileAdded/"); + } + + @TestMetadata("packageFileChangedPackage") + public void testPackageFileChangedPackage() throws Exception { + doTest("jps-plugin/testData/incremental/packageFileChangedPackage/"); + } + + @TestMetadata("packageFileChangedThenOtherRemoved") + public void testPackageFileChangedThenOtherRemoved() throws Exception { + doTest("jps-plugin/testData/incremental/packageFileChangedThenOtherRemoved/"); + } + + @TestMetadata("packageFileRemoved") + public void testPackageFileRemoved() throws Exception { + doTest("jps-plugin/testData/incremental/packageFileRemoved/"); + } + + @TestMetadata("packageFilesChangedInTurn") + public void testPackageFilesChangedInTurn() throws Exception { + doTest("jps-plugin/testData/incremental/packageFilesChangedInTurn/"); + } + + @TestMetadata("returnTypeChanged") + public void testReturnTypeChanged() throws Exception { + doTest("jps-plugin/testData/incremental/returnTypeChanged/"); + } + + @TestMetadata("simpleClassDependency") + public void testSimpleClassDependency() throws Exception { + doTest("jps-plugin/testData/incremental/simpleClassDependency/"); + } + + @TestMetadata("topLevelFunctionSameSignature") + public void testTopLevelFunctionSameSignature() throws Exception { + doTest("jps-plugin/testData/incremental/topLevelFunctionSameSignature/"); + } + + @TestMetadata("topLevelMembersInTwoPackages") + public void testTopLevelMembersInTwoPackages() throws Exception { + doTest("jps-plugin/testData/incremental/topLevelMembersInTwoPackages/"); + } + +}