From f5499a93edab8e30092f7fa9a0a10c318eebab95 Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Fri, 24 Jan 2014 21:59:58 +0400 Subject: [PATCH] Added the checking of extra generation of tests in TestGenerator. Dropped tests that have been registered more than once. --- .../jet/generators/tests/GenerateTests.kt | 11 ----------- .../tests/generator/TestGenerator.java | 16 +++++++++++----- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.kt b/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.kt index 51caf66dfd9..4954c30139a 100644 --- a/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.kt +++ b/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.kt @@ -151,7 +151,6 @@ fun main(args: Array) { model("codegen/defaultArguments/reflection") } - testClass(javaClass()) { model("loadJava/compiledJava", extension = "java", testMethod = "doTestCompiledJava") model("loadJava/compiledJavaAndKotlin", extension = "txt", testMethod = "doTestCompiledJavaAndKotlin") @@ -220,18 +219,8 @@ fun main(args: Array) { model("evaluate/constant", testMethod = "doConstantTest") model("evaluate/isPure", testMethod = "doIsPureTest") } - - testClass(javaClass()) { - model("resolveAnnotations/parameters") - } - - testClass(javaClass()) { - model("evaluate/constant", testMethod = "doConstantTest") - model("evaluate/isPure", testMethod = "doIsPureTest") - } } - testGroup("idea/tests", "idea/testData") { testClass(javaClass()) { model("resolve/additionalLazyResolve", testMethod = "doTest") diff --git a/generators/src/org/jetbrains/jet/generators/tests/generator/TestGenerator.java b/generators/src/org/jetbrains/jet/generators/tests/generator/TestGenerator.java index ce5c17cd0d8..9f03dd374f1 100644 --- a/generators/src/org/jetbrains/jet/generators/tests/generator/TestGenerator.java +++ b/generators/src/org/jetbrains/jet/generators/tests/generator/TestGenerator.java @@ -18,6 +18,7 @@ package org.jetbrains.jet.generators.tests.generator; import com.google.common.collect.Lists; import com.intellij.openapi.util.io.FileUtil; +import com.intellij.util.containers.ContainerUtil; import junit.framework.TestCase; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.di.GeneratorsFileUtil; @@ -25,10 +26,7 @@ import org.jetbrains.jet.utils.Printer; import java.io.File; import java.io.IOException; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.List; +import java.util.*; public class TestGenerator { @@ -38,6 +36,8 @@ public class TestGenerator { "junit.framework.TestSuite" ); + private static final Set GENERATED_FILES = ContainerUtil.newHashSet(); + private final String baseDir; private final String suiteClassPackage; private final String suiteClassName; @@ -45,6 +45,7 @@ public class TestGenerator { private final String baseTestClassName; private final Collection testClassModels; private final String generatorName; + private final String testSourceFilePath; public TestGenerator( @NotNull String baseDir, @@ -61,6 +62,12 @@ public class TestGenerator { this.baseTestClassName = baseTestClass.getSimpleName(); this.testClassModels = Lists.newArrayList(testClassModels); this.generatorName = generatorClass; + + this.testSourceFilePath = this.baseDir + "/" + this.suiteClassPackage.replace(".", "/") + "/" + this.suiteClassName + ".java"; + + if (!GENERATED_FILES.add(testSourceFilePath)) { + throw new IllegalArgumentException("Same test file already generated in current session: " + testSourceFilePath); + } } public void generateAndSave() throws IOException { @@ -128,7 +135,6 @@ public class TestGenerator { }, false); } - String testSourceFilePath = baseDir + "/" + suiteClassPackage.replace(".", "/") + "/" + suiteClassName + ".java"; File testSourceFile = new File(testSourceFilePath); GeneratorsFileUtil.writeFileIfContentChanged(testSourceFile, out.toString(), false); }