Use codegen box tests for tail calls as diagnostic tests too

This commit is contained in:
Andrey Breslav
2013-11-26 21:49:17 +04:00
parent bb6ceffbbb
commit 94500bd968
22 changed files with 197 additions and 37 deletions
@@ -30,7 +30,7 @@ import org.jetbrains.jet.checkers.AbstractDiagnosticsTestWithEagerResolve;
/** This class is generated by {@link org.jetbrains.jet.generators.tests.GenerateTests}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@InnerTestClasses({JetDiagnosticsTestGenerated.Tests.class, JetDiagnosticsTestGenerated.Script.class})
@InnerTestClasses({JetDiagnosticsTestGenerated.Tests.class, JetDiagnosticsTestGenerated.Script.class, JetDiagnosticsTestGenerated.TailRecursion.class})
public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEagerResolve {
@TestMetadata("compiler/testData/diagnostics/tests")
@InnerTestClasses({Tests.Annotations.class, Tests.BackingField.class, Tests.CallableReference.class, Tests.Cast.class, Tests.CheckArguments.class, Tests.ClassObjects.class, Tests.ControlFlowAnalysis.class, Tests.ControlStructures.class, Tests.DataClasses.class, Tests.DataFlow.class, Tests.DataFlowInfoTraversal.class, Tests.DeclarationChecks.class, Tests.DelegatedProperty.class, Tests.Deparenthesize.class, Tests.Enum.class, Tests.Evaluate.class, Tests.Extensions.class, Tests.FunctionLiterals.class, Tests.Generics.class, Tests.IncompleteCode.class, Tests.Inference.class, Tests.Infos.class, Tests.Inline.class, Tests.Inner.class, Tests.J_k.class, Tests.Jdk_annotations.class, Tests.Library.class, Tests.NullabilityAndAutoCasts.class, Tests.NullableTypes.class, Tests.Numbers.class, Tests.Objects.class, Tests.OperatorsOverloading.class, Tests.Overload.class, Tests.Override.class, Tests.Recovery.class, Tests.Redeclarations.class, Tests.Regressions.class, Tests.Resolve.class, Tests.Scopes.class, Tests.SenselessComparison.class, Tests.Shadowing.class, Tests.SmartCasts.class, Tests.Substitutions.class, Tests.Subtyping.class, Tests.Suppress.class, Tests.TailCalls.class, Tests.ThisAndSuper.class, Tests.Varargs.class, Tests.When.class})
@@ -6787,10 +6787,139 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
}
@TestMetadata("compiler/testData/codegen/box/functions/tailRecursion")
public static class TailRecursion extends AbstractDiagnosticsTestWithEagerResolve {
public void testAllFilesPresentInTailRecursion() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("compiler/testData/codegen/box/functions/tailRecursion"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("defaultArgs.kt")
public void testDefaultArgs() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/defaultArgs.kt");
}
@TestMetadata("infixCall.kt")
public void testInfixCall() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/infixCall.kt");
}
@TestMetadata("insideElvis.kt")
public void testInsideElvis() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/insideElvis.kt");
}
@TestMetadata("labeledThisReferences.kt")
public void testLabeledThisReferences() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/labeledThisReferences.kt");
}
@TestMetadata("loops.kt")
public void testLoops() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/loops.kt");
}
@TestMetadata("multilevelBlocks.kt")
public void testMultilevelBlocks() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/multilevelBlocks.kt");
}
@TestMetadata("realIteratorFoldl.kt")
public void testRealIteratorFoldl() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/realIteratorFoldl.kt");
}
@TestMetadata("realStringEscape.kt")
public void testRealStringEscape() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/realStringEscape.kt");
}
@TestMetadata("realStringRepeat.kt")
public void testRealStringRepeat() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/realStringRepeat.kt");
}
@TestMetadata("recursiveInnerFunction.kt")
public void testRecursiveInnerFunction() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/recursiveInnerFunction.kt");
}
@TestMetadata("returnIf.kt")
public void testReturnIf() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/returnIf.kt");
}
@TestMetadata("returnInCatch.kt")
public void testReturnInCatch() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/returnInCatch.kt");
}
@TestMetadata("returnInFinally.kt")
public void testReturnInFinally() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/returnInFinally.kt");
}
@TestMetadata("returnInIfInFinally.kt")
public void testReturnInIfInFinally() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/returnInIfInFinally.kt");
}
@TestMetadata("returnInTry.kt")
public void testReturnInTry() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/returnInTry.kt");
}
@TestMetadata("simpleBlock.kt")
public void testSimpleBlock() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/simpleBlock.kt");
}
@TestMetadata("simpleReturn.kt")
public void testSimpleReturn() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/simpleReturn.kt");
}
@TestMetadata("simpleReturnWithElse.kt")
public void testSimpleReturnWithElse() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/simpleReturnWithElse.kt");
}
@TestMetadata("thisReferences.kt")
public void testThisReferences() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/thisReferences.kt");
}
@TestMetadata("unitBlocks.kt")
public void testUnitBlocks() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/unitBlocks.kt");
}
@TestMetadata("whenWithCondition.kt")
public void testWhenWithCondition() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/whenWithCondition.kt");
}
@TestMetadata("whenWithInRange.kt")
public void testWhenWithInRange() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/whenWithInRange.kt");
}
@TestMetadata("whenWithIs.kt")
public void testWhenWithIs() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/whenWithIs.kt");
}
@TestMetadata("whenWithoutCondition.kt")
public void testWhenWithoutCondition() throws Exception {
doTest("compiler/testData/codegen/box/functions/tailRecursion/whenWithoutCondition.kt");
}
}
public static Test suite() {
TestSuite suite = new TestSuite("JetDiagnosticsTestGenerated");
suite.addTest(Tests.innerSuite());
suite.addTestSuite(Script.class);
suite.addTestSuite(TailRecursion.class);
return suite;
}
}
@@ -22,6 +22,7 @@ import com.intellij.openapi.util.Pair;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.JetTestCaseBuilder;
import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.checkers.CheckerTestUtil;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
import org.jetbrains.jet.lang.resolve.name.Name;
@@ -99,7 +100,8 @@ public class CodegenTestFiles {
}
@NotNull
public static CodegenTestFiles create(@NotNull String fileName, @NotNull String content, @NotNull Project project) {
public static CodegenTestFiles create(@NotNull String fileName, @NotNull String contentWithDiagnosticMarkup, @NotNull Project project) {
String content = CheckerTestUtil.parseDiagnosedRanges(contentWithDiagnosticMarkup, new ArrayList<CheckerTestUtil.DiagnosedRange>());
JetFile file = JetTestUtils.createFile(fileName, content, project);
List<Pair<String, String>> expectedValues = Lists.newArrayList();