From 04d8960a3d9b4a505df71cccd6bef835406e811b Mon Sep 17 00:00:00 2001 From: Michael Nedzelsky Date: Thu, 2 Oct 2014 20:47:19 +0400 Subject: [PATCH] JS backend: add BridgeTestGenerated --- .../jet/generators/tests/GenerateTests.kt | 7 + .../k2js/test/semantics/AbstractBridgeTest.kt | 26 ++ .../test/semantics/BridgeTestGenerated.java | 358 ++++++++++++++++++ 3 files changed, 391 insertions(+) create mode 100644 js/js.tests/test/org/jetbrains/k2js/test/semantics/AbstractBridgeTest.kt create mode 100644 js/js.tests/test/org/jetbrains/k2js/test/semantics/BridgeTestGenerated.java diff --git a/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.kt b/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.kt index 404f7d0284f..52dc84096d2 100644 --- a/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.kt +++ b/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.kt @@ -126,6 +126,7 @@ import org.jetbrains.jet.completion.weighers.AbstractSmartCompletionWeigherTest import org.jetbrains.jet.generators.tests.reservedWords.generateTestDataForReservedWords import org.jetbrains.k2js.test.semantics.AbstractReservedWordTest import org.jetbrains.jet.resolve.AbstractReferenceResolveInJavaTest +import org.jetbrains.k2js.test.semantics.AbstractBridgeTest fun main(args: Array) { System.setProperty("java.awt.headless", "true") @@ -644,6 +645,12 @@ fun main(args: Array) { model("reservedWords/cases") } } + + testGroup("js/js.tests/test", "compiler/testData") { + testClass(javaClass()) { + model("codegen/box/bridges", targetBackend = TargetBackend.ONLY_JS) + } + } } private class TestGroup(val testsRoot: String, val testDataRoot: String) { diff --git a/js/js.tests/test/org/jetbrains/k2js/test/semantics/AbstractBridgeTest.kt b/js/js.tests/test/org/jetbrains/k2js/test/semantics/AbstractBridgeTest.kt new file mode 100644 index 00000000000..d96f6bcdca4 --- /dev/null +++ b/js/js.tests/test/org/jetbrains/k2js/test/semantics/AbstractBridgeTest.kt @@ -0,0 +1,26 @@ +/* + * 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.k2js.test.semantics + +import org.jetbrains.k2js.test.SingleFileTranslationTest + +public abstract class AbstractBridgeTest : SingleFileTranslationTest("bridges/") { + + override fun getInputPath(): String = "" + + fun doTest(filename: String) = checkBlackBoxIsOk(filename) +} \ No newline at end of file diff --git a/js/js.tests/test/org/jetbrains/k2js/test/semantics/BridgeTestGenerated.java b/js/js.tests/test/org/jetbrains/k2js/test/semantics/BridgeTestGenerated.java new file mode 100644 index 00000000000..226d2286756 --- /dev/null +++ b/js/js.tests/test/org/jetbrains/k2js/test/semantics/BridgeTestGenerated.java @@ -0,0 +1,358 @@ +/* + * 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.k2js.test.semantics; + +import com.intellij.testFramework.TestDataPath; +import junit.framework.Test; +import junit.framework.TestSuite; +import org.junit.runner.RunWith; +import org.jetbrains.jet.JetTestUtils; +import org.jetbrains.jet.test.InnerTestClasses; +import org.jetbrains.jet.test.TestMetadata; +import org.jetbrains.jet.JUnit3RunnerWithInners; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.jet.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("compiler/testData/codegen/box/bridges") +@TestDataPath("$PROJECT_ROOT") +@InnerTestClasses({BridgeTestGenerated.SubstitutionInSuperClass.class}) +@RunWith(org.jetbrains.jet.JUnit3RunnerWithInners.class) +public class BridgeTestGenerated extends AbstractBridgeTest { + @TestMetadata("objectClone.kt") + public void ignoredObjectClone() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/objectClone.kt"); + doTest(fileName); + } + + public void testAllFilesPresentInBridges() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/box/bridges"), Pattern.compile("^(.+)\\.kt$"), true); + } + + @TestMetadata("complexMultiInheritance.kt") + public void testComplexMultiInheritance() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/complexMultiInheritance.kt"); + doTest(fileName); + } + + @TestMetadata("complexTraitImpl.kt") + public void testComplexTraitImpl() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/complexTraitImpl.kt"); + doTest(fileName); + } + + @TestMetadata("delegation.kt") + public void testDelegation() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/delegation.kt"); + doTest(fileName); + } + + @TestMetadata("delegationProperty.kt") + public void testDelegationProperty() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/delegationProperty.kt"); + doTest(fileName); + } + + @TestMetadata("diamond.kt") + public void testDiamond() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/diamond.kt"); + doTest(fileName); + } + + @TestMetadata("fakeCovariantOverride.kt") + public void testFakeCovariantOverride() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/fakeCovariantOverride.kt"); + doTest(fileName); + } + + @TestMetadata("fakeGenericCovariantOverride.kt") + public void testFakeGenericCovariantOverride() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/fakeGenericCovariantOverride.kt"); + doTest(fileName); + } + + @TestMetadata("fakeOverrideInTraitWithRequiredFromTraitImpl.kt") + public void testFakeOverrideInTraitWithRequiredFromTraitImpl() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/fakeOverrideInTraitWithRequiredFromTraitImpl.kt"); + doTest(fileName); + } + + @TestMetadata("fakeOverrideOfPropertySetterInTraitImpl.kt") + public void testFakeOverrideOfPropertySetterInTraitImpl() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/fakeOverrideOfPropertySetterInTraitImpl.kt"); + doTest(fileName); + } + + @TestMetadata("fakeOverrideOfTraitImpl.kt") + public void testFakeOverrideOfTraitImpl() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/fakeOverrideOfTraitImpl.kt"); + doTest(fileName); + } + + @TestMetadata("fakeOverrideWithImplementationInTrait.kt") + public void testFakeOverrideWithImplementationInTrait() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/fakeOverrideWithImplementationInTrait.kt"); + doTest(fileName); + } + + @TestMetadata("fakeOverrideWithSeveralSuperDeclarations.kt") + public void testFakeOverrideWithSeveralSuperDeclarations() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/fakeOverrideWithSeveralSuperDeclarations.kt"); + doTest(fileName); + } + + @TestMetadata("fakeOverrideWithSynthesizedImplementation.kt") + public void testFakeOverrideWithSynthesizedImplementation() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/fakeOverrideWithSynthesizedImplementation.kt"); + doTest(fileName); + } + + @TestMetadata("kt1939.kt") + public void testKt1939() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/kt1939.kt"); + doTest(fileName); + } + + @TestMetadata("kt1959.kt") + public void testKt1959() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/kt1959.kt"); + doTest(fileName); + } + + @TestMetadata("kt2498.kt") + public void testKt2498() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/kt2498.kt"); + doTest(fileName); + } + + @TestMetadata("kt2702.kt") + public void testKt2702() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/kt2702.kt"); + doTest(fileName); + } + + @TestMetadata("kt2833.kt") + public void testKt2833() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/kt2833.kt"); + doTest(fileName); + } + + @TestMetadata("kt2920.kt") + public void testKt2920() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/kt2920.kt"); + doTest(fileName); + } + + @TestMetadata("kt318.kt") + public void testKt318() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/kt318.kt"); + doTest(fileName); + } + + @TestMetadata("longChainOneBridge.kt") + public void testLongChainOneBridge() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/longChainOneBridge.kt"); + doTest(fileName); + } + + @TestMetadata("manyTypeArgumentsSubstitutedSuccessively.kt") + public void testManyTypeArgumentsSubstitutedSuccessively() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/manyTypeArgumentsSubstitutedSuccessively.kt"); + doTest(fileName); + } + + @TestMetadata("methodFromTrait.kt") + public void testMethodFromTrait() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/methodFromTrait.kt"); + doTest(fileName); + } + + @TestMetadata("noBridgeOnMutableCollectionInheritance.kt") + public void testNoBridgeOnMutableCollectionInheritance() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/noBridgeOnMutableCollectionInheritance.kt"); + doTest(fileName); + } + + @TestMetadata("overrideAbstractProperty.kt") + public void testOverrideAbstractProperty() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/overrideAbstractProperty.kt"); + doTest(fileName); + } + + @TestMetadata("overrideReturnType.kt") + public void testOverrideReturnType() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/overrideReturnType.kt"); + doTest(fileName); + } + + @TestMetadata("propertyAccessorsWithoutBody.kt") + public void testPropertyAccessorsWithoutBody() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/propertyAccessorsWithoutBody.kt"); + doTest(fileName); + } + + @TestMetadata("propertyDiamond.kt") + public void testPropertyDiamond() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/propertyDiamond.kt"); + doTest(fileName); + } + + @TestMetadata("propertyInConstructor.kt") + public void testPropertyInConstructor() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/propertyInConstructor.kt"); + doTest(fileName); + } + + @TestMetadata("propertySetter.kt") + public void testPropertySetter() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/propertySetter.kt"); + doTest(fileName); + } + + @TestMetadata("simple.kt") + public void testSimple() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/simple.kt"); + doTest(fileName); + } + + @TestMetadata("simpleEnum.kt") + public void testSimpleEnum() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/simpleEnum.kt"); + doTest(fileName); + } + + @TestMetadata("simpleGenericMethod.kt") + public void testSimpleGenericMethod() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/simpleGenericMethod.kt"); + doTest(fileName); + } + + @TestMetadata("simpleObject.kt") + public void testSimpleObject() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/simpleObject.kt"); + doTest(fileName); + } + + @TestMetadata("simpleReturnType.kt") + public void testSimpleReturnType() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/simpleReturnType.kt"); + doTest(fileName); + } + + @TestMetadata("simpleTraitImpl.kt") + public void testSimpleTraitImpl() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/simpleTraitImpl.kt"); + doTest(fileName); + } + + @TestMetadata("simpleUpperBound.kt") + public void testSimpleUpperBound() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/simpleUpperBound.kt"); + doTest(fileName); + } + + @TestMetadata("traitImplInheritsTraitImpl.kt") + public void testTraitImplInheritsTraitImpl() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/traitImplInheritsTraitImpl.kt"); + doTest(fileName); + } + + @TestMetadata("traitWithRequiredCovariantOverride.kt") + public void testTraitWithRequiredCovariantOverride() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/traitWithRequiredCovariantOverride.kt"); + doTest(fileName); + } + + @TestMetadata("twoParentsWithDifferentMethodsTwoBridges.kt") + public void testTwoParentsWithDifferentMethodsTwoBridges() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/twoParentsWithDifferentMethodsTwoBridges.kt"); + doTest(fileName); + } + + @TestMetadata("twoParentsWithTheSameMethodOneBridge.kt") + public void testTwoParentsWithTheSameMethodOneBridge() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/twoParentsWithTheSameMethodOneBridge.kt"); + doTest(fileName); + } + + @TestMetadata("compiler/testData/codegen/box/bridges/substitutionInSuperClass") + @TestDataPath("$PROJECT_ROOT") + @RunWith(org.jetbrains.jet.JUnit3RunnerWithInners.class) + public static class SubstitutionInSuperClass extends AbstractBridgeTest { + @TestMetadata("abstractFun.kt") + public void testAbstractFun() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/substitutionInSuperClass/abstractFun.kt"); + doTest(fileName); + } + + public void testAllFilesPresentInSubstitutionInSuperClass() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("compiler/testData/codegen/box/bridges/substitutionInSuperClass"), Pattern.compile("^(.+)\\.kt$"), true); + } + + @TestMetadata("boundedTypeArguments.kt") + public void testBoundedTypeArguments() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/substitutionInSuperClass/boundedTypeArguments.kt"); + doTest(fileName); + } + + @TestMetadata("delegation.kt") + public void testDelegation() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/substitutionInSuperClass/delegation.kt"); + doTest(fileName); + } + + @TestMetadata("enum.kt") + public void testEnum() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/substitutionInSuperClass/enum.kt"); + doTest(fileName); + } + + @TestMetadata("genericMethod.kt") + public void testGenericMethod() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/substitutionInSuperClass/genericMethod.kt"); + doTest(fileName); + } + + @TestMetadata("object.kt") + public void testObject() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/substitutionInSuperClass/object.kt"); + doTest(fileName); + } + + @TestMetadata("property.kt") + public void testProperty() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/substitutionInSuperClass/property.kt"); + doTest(fileName); + } + + @TestMetadata("simple.kt") + public void testSimple() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/substitutionInSuperClass/simple.kt"); + doTest(fileName); + } + + @TestMetadata("upperBound.kt") + public void testUpperBound() throws Exception { + String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/bridges/substitutionInSuperClass/upperBound.kt"); + doTest(fileName); + } + + } + +}