JS backend: tests for reflection support

This commit is contained in:
Michael Nedzelsky
2014-07-22 15:21:35 +04:00
parent cc98664832
commit 145aa5a276
70 changed files with 1464 additions and 0 deletions
@@ -0,0 +1,27 @@
/*
* 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.annotations.NotNull;
import org.jetbrains.k2js.test.SingleFileTranslationTest;
public abstract class AbstractCallableReferenceTest extends SingleFileTranslationTest {
public AbstractCallableReferenceTest(@NotNull String main) {
super("callableReference/" + main);
}
}
@@ -0,0 +1,182 @@
/*
* 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;
public final class FunctionCallableReferenceTest extends AbstractCallableReferenceTest {
public FunctionCallableReferenceTest() {
super("function/");
}
public void testTopLevelFromClass() throws Exception {
checkFooBoxIsOk();
}
public void testTopLevelFromExtension() throws Exception {
checkFooBoxIsOk();
}
public void testTopLevelFromTopLevelStringNoArgs() throws Exception {
checkFooBoxIsOk();
}
public void testTopLevelFromTopLevelWithArg() throws Exception {
fooBoxTest();
}
public void testTopLevelFromTopLevelViaFunCall() throws Exception {
fooBoxTest();
}
public void testClassMemberFromClass() throws Exception {
checkFooBoxIsOk();
}
public void testClassMemberFromExtension() throws Exception {
checkFooBoxIsOk();
}
public void testClassMemberFromTopLevelStringNoArgs() throws Exception {
checkFooBoxIsOk();
}
public void testClassMemberFromTopLevelStringOneStringArg() throws Exception {
checkFooBoxIsOk();
}
public void testClassMemberFromTopLevelUnitNoArgs() throws Exception {
checkFooBoxIsOk();
}
public void testClassMemberFromTopLevelUnitOneStringArg() throws Exception {
checkFooBoxIsOk();
}
public void testExtensionFromTopLevel() throws Exception {
fooBoxTest();
}
public void testExtensionFromClass() throws Exception {
checkFooBoxIsOk();
}
public void testExtensionFromExtension() throws Exception {
checkFooBoxIsOk();
}
public void testExtensionFromTopLevelStringNoArgs() throws Exception {
checkFooBoxIsOk();
}
public void testExtensionFromTopLevelStringOneStringArg() throws Exception {
checkFooBoxIsOk();
}
public void testExtensionFromTopLevelUnitNoArgs() throws Exception {
checkFooBoxIsOk();
}
public void testExtensionFromTopLevelUnitOneStringArg() throws Exception {
checkFooBoxIsOk();
}
public void testConstructorFromTopLevelNoArgs() throws Exception {
checkFooBoxIsOk();
}
public void testConstructorFromTopLevelOneStringArg() throws Exception {
checkFooBoxIsOk();
}
public void testConstructorsWithArgs() throws Exception {
checkFooBoxIsOk();
}
public void testAbstractClassMember() throws Exception {
checkFooBoxIsOk();
}
public void testClassMemberOverridden() throws Exception {
checkFooBoxIsOk();
}
public void testClassMemberOverriddenInObject() throws Exception {
checkFooBoxIsOk();
}
public void testClassMemberAndExtension() throws Exception {
checkFooBoxIsOk();
}
public void testClassMemberAndExtensionCompatibility() throws Exception {
checkFooBoxIsOk();
}
public void testLocalAndTopLevelExtensions() throws Exception {
checkFooBoxIsOk();
}
public void testClosureWithSideEffect() throws Exception {
checkFooBoxIsOk();
}
public void testExtension() throws Exception {
checkFooBoxIsOk();
}
public void testExtensionToPrimitive() throws Exception {
checkFooBoxIsOk();
}
public void testExtensionWithClosure() throws Exception {
checkFooBoxIsOk();
}
public void testLocalLocal() throws Exception {
checkFooBoxIsOk();
}
public void testRecursiveClosure() throws Exception {
checkFooBoxIsOk();
}
public void testUnitWithSideEffect() throws Exception {
checkFooBoxIsOk();
}
public void testSimple() throws Exception {
checkFooBoxIsOk();
}
public void testSimpleClosure() throws Exception {
checkFooBoxIsOk();
}
public void testSimpleWithArg() throws Exception {
checkFooBoxIsOk();
}
public void testStringNativeExtension() throws Exception {
checkFooBoxIsOk();
}
/*
public void testBooleanNotIntrinsic() throws Exception {
checkFooBoxIsOk();
}
*/
}
@@ -38,6 +38,10 @@ public class MultiPackageTest extends MultipleFilesTranslationTest {
checkFooBoxIsTrue("packageVariableVisibleFromOtherPackage");
}
public void testReflectionFromOtherPackage() throws Exception {
checkFooBoxIsTrue("reflectionFromOtherPackage");
}
public void testNestedPackageFunctionCalledFromOtherPackage() throws Exception {
runMultiFileTest("nestedPackageFunctionCalledFromOtherPackage", "a.foo", TEST_FUNCTION, true);
}
@@ -89,11 +89,31 @@ public final class NativeInteropTest extends SingleFileTranslationTest {
checkFooBoxIsOk();
}
public void testNativeExtensionLikeMember() throws Exception {
checkFooBoxIsOk();
}
public void testPassExtLambdaToNative() throws Exception {
checkFooBoxIsOk();
}
public void testPassMemberOrExtToNative() throws Exception {
checkFooBoxIsOk();
}
public void testPassExtLambdaFromNative() throws Exception {
checkFooBoxIsOk();
}
public void testPassMemberOrExtFromNative() throws Exception {
checkFooBoxIsOk();
}
public void testPassTopLevelOrLocalFunctionToNative() throws Exception {
checkFooBoxIsOk();
}
public void testPassTopLevelFunctionFromNative() throws Exception {
checkFooBoxIsOk();
}
}
@@ -0,0 +1,80 @@
/*
* 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;
public class PropertyCallableReferenceTest extends AbstractCallableReferenceTest {
public PropertyCallableReferenceTest() {
super("property/");
}
public void testTopLevelVar() throws Exception {
checkFooBoxIsOk();
}
public void testExtensionProperty() throws Exception {
checkFooBoxIsOk();
}
public void testMemberProperty() throws Exception {
checkFooBoxIsOk();
}
public void testAccessViaSubclass() throws Exception {
checkFooBoxIsOk();
}
public void testDelegated() throws Exception {
checkFooBoxIsOk();
}
public void testDelegatedMutable() throws Exception {
checkFooBoxIsOk();
}
public void testKClassInstanceIsInitializedFirst() throws Exception {
checkFooBoxIsOk();
}
public void testOverriddenInSubclass() throws Exception {
checkFooBoxIsOk();
}
public void testSimpleExtension() throws Exception {
checkFooBoxIsOk();
}
public void testSimpleMember() throws Exception {
checkFooBoxIsOk();
}
public void testSimpleMutableExtension() throws Exception {
checkFooBoxIsOk();
}
public void testSimpleMutableMember() throws Exception {
checkFooBoxIsOk();
}
public void testSimpleMutableTopLevel() throws Exception {
checkFooBoxIsOk();
}
public void testSimpleTopLevel() throws Exception {
checkFooBoxIsOk();
}
}