diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicTest.java index 9df99ee3d2d..4f07b29b92a 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicTest.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/BasicTest.java @@ -82,7 +82,6 @@ public abstract class BasicTest extends KotlinTestWithEnvironment { private static final String OUT = "out/"; private static final String EXPECTED = "expected/"; private static final String COMMON_FILES_DIR = "_commonFiles/"; - public static final String MODULE_EMULATION_FILE = TEST_DATA_DIR_PATH + "/moduleEmulation.js"; public static final String TEST_MODULE = "JS_TESTS"; public static final String TEST_PACKAGE = "foo"; @@ -104,16 +103,9 @@ public abstract class BasicTest extends KotlinTestWithEnvironment { return KotlinCoreEnvironment.createForTests(getTestRootDisposable(), new CompilerConfiguration(), EnvironmentConfigFiles.JS_CONFIG_FILES); } - protected boolean shouldCreateOut() { - return true; - } - @Override public void setUp() throws Exception { super.setUp(); - if (!shouldCreateOut()) { - return; - } File outDir = new File(getOutputPath()); KotlinTestUtils.mkdirs(outDir); @@ -122,8 +114,7 @@ public abstract class BasicTest extends KotlinTestWithEnvironment { @Override protected void tearDown() throws Exception { super.tearDown(); - //noinspection ConstantConditions,PointlessBooleanExpression - if (!shouldCreateOut() || !DELETE_OUT) { + if (!DELETE_OUT) { return; } File outDir = new File(getOutputPath()); @@ -158,7 +149,7 @@ public abstract class BasicTest extends KotlinTestWithEnvironment { generateJavaScriptFiles(files, testName, mainCallParameters, ecmaVersions, TEST_MODULE, null); } - protected void generateJavaScriptFiles( + private void generateJavaScriptFiles( @NotNull List files, @NotNull String testName, @NotNull MainCallParameters mainCallParameters, @@ -171,7 +162,7 @@ public abstract class BasicTest extends KotlinTestWithEnvironment { } } - protected void generateJavaScriptFiles( + private void generateJavaScriptFiles( @NotNull List files, @NotNull String testName, @NotNull MainCallParameters mainCallParameters, @@ -190,11 +181,7 @@ public abstract class BasicTest extends KotlinTestWithEnvironment { translateFiles(jetFiles, outputFile, mainCallParameters, config); } - protected String getModuleDirectoryName(String dirName, String moduleName) { - return dirName + File.separator + moduleName; - } - - protected void translateFiles( + private void translateFiles( @NotNull List jetFiles, @NotNull File outputFile, @NotNull MainCallParameters mainCallParameters, @@ -241,11 +228,7 @@ public abstract class BasicTest extends KotlinTestWithEnvironment { return false; } - protected boolean shouldGenerateMetaInfo() { - return false; - } - - protected void processJsProgram(@NotNull JsProgram program, @NotNull List jetFiles) throws Exception { + private static void processJsProgram(@NotNull JsProgram program, @NotNull List jetFiles) throws Exception { for (KtFile file : jetFiles) { String text = file.getText(); DirectiveTestUtils.processDirectives(program, text); @@ -304,7 +287,7 @@ public abstract class BasicTest extends KotlinTestWithEnvironment { // helpers @NotNull - protected final String pathToTestDir() { + private String pathToTestDir() { return TEST_DATA_DIR_PATH + relativePathToTestDir; } @@ -345,12 +328,10 @@ public abstract class BasicTest extends KotlinTestWithEnvironment { configuration.put(JSConfigurationKeys.TARGET, ecmaVersion); configuration.put(JSConfigurationKeys.SOURCE_MAP, shouldGenerateSourceMap()); - configuration.put(JSConfigurationKeys.META_INFO, shouldGenerateMetaInfo()); + configuration.put(JSConfigurationKeys.META_INFO, false); configuration.put(JSConfigurationKeys.UNIT_TEST_CONFIG, shouldBeTranslateAsUnitTestClass()); - setupConfig(configuration); - return new LibrarySourcesConfig(project, configuration); } @@ -364,17 +345,13 @@ public abstract class BasicTest extends KotlinTestWithEnvironment { return false; } - protected void setupConfig(@NotNull CompilerConfiguration configuration) { - // Do nothing by default, expect inheritors to implement this method - } - @NotNull - protected String getOutputPath() { + private String getOutputPath() { return pathToTestDir() + OUT; } @NotNull - protected String getInputPath() { + private String getInputPath() { return pathToTestDir() + CASES; } @@ -419,7 +396,6 @@ public abstract class BasicTest extends KotlinTestWithEnvironment { protected String getPackageName(@NotNull String filename) throws IOException { String content = FileUtil.loadFile(new File(filename), true); KtPsiFactory psiFactory = new KtPsiFactory(getProject()); - KtFile jetFile = psiFactory.createFile(content); KtFile ktFile = psiFactory.createFile(content); return getPackageName(ktFile); } diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/SingleFileTranslationTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/SingleFileTranslationTest.java index c0a395933ce..72009406090 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/SingleFileTranslationTest.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/SingleFileTranslationTest.java @@ -63,7 +63,7 @@ public abstract class SingleFileTranslationTest extends BasicTest { runFunctionOutputTestByPaths(ecmaVersions, Collections.singletonList(kotlinFilePath), packageName, functionName, expectedResult); } - protected void runFunctionOutputTestByPaths( + private void runFunctionOutputTestByPaths( @NotNull Iterable ecmaVersions, @NotNull List kotlinFilePaths, @NotNull String packageName, @@ -76,22 +76,6 @@ public abstract class SingleFileTranslationTest extends BasicTest { runRhinoTests(testName, ecmaVersions, checker); } - private void checkFooBoxIsTrue(@NotNull String filename, @NotNull Iterable ecmaVersions) throws Exception { - runFunctionOutputTest(ecmaVersions, filename, TEST_PACKAGE, TEST_FUNCTION, true); - } - - protected void checkFooBoxIsTrue(@NotNull String filename) throws Exception { - runFunctionOutputTest(DEFAULT_ECMA_VERSIONS, filename, TEST_PACKAGE, TEST_FUNCTION, true); - } - - protected void fooBoxTest() throws Exception { - checkFooBoxIsTrue(getTestName(true) + ".kt", DEFAULT_ECMA_VERSIONS); - } - - protected void checkFooBoxIsOk() throws Exception { - checkFooBoxIsOk(getTestName(true) + ".kt"); - } - protected void checkFooBoxIsOk(@NotNull String filename) throws Exception { checkFooBoxIsOkByPath(getInputFilePath(filename)); } @@ -101,10 +85,6 @@ public abstract class SingleFileTranslationTest extends BasicTest { runFunctionOutputTestByPath(DEFAULT_ECMA_VERSIONS, filePath, TEST_PACKAGE, TEST_FUNCTION, "OK"); } - protected void checkBlackBoxIsOkByPath(@NotNull String filePath) throws Exception { - runFunctionOutputTestByPath(DEFAULT_ECMA_VERSIONS, filePath, getPackageName(filePath), TEST_FUNCTION, "OK"); - } - protected void checkOutput(@NotNull String kotlinFilename, @NotNull String expectedResult, @NotNull String... args) throws Exception { diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/AbstractListTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/AbstractListTest.java deleted file mode 100644 index bbe96eeec5d..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/AbstractListTest.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2010-2015 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.kotlin.js.test.semantics; - -public final class AbstractListTest extends JavaClassesTest { - - public AbstractListTest() { - super("abstractList/"); - } - - public void testIterator() throws Exception { - checkFooBoxIsOk(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/ArrayListTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/ArrayListTest.java deleted file mode 100644 index 13c8f7778e8..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/ArrayListTest.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2010-2015 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.kotlin.js.test.semantics; - -import org.mozilla.javascript.JavaScriptException; - -public final class ArrayListTest extends JavaClassesTest { - - public ArrayListTest() { - super("arrayList/"); - } - - public void testEmptyList() throws Exception { - fooBoxTest(); - } - - public void testAccess() throws Exception { - fooBoxTest(); - } - - public void testIsEmpty() throws Exception { - fooBoxTest(); - } - - public void testArrayAccess() throws Exception { - fooBoxTest(); - } - - public void testIterate() throws Exception { - fooBoxTest(); - } - - public void testRemove() throws Exception { - fooBoxTest(); - } - - public void testRemoveWithIndexOutOfBounds() throws Exception { - fooBoxTest(); - } - - public void testToArray() throws Exception { - fooBoxTest(); - } - - public void testIndexOOB() throws Exception { - try { - fooBoxTest(); - fail(); - } catch (JavaScriptException e) { - // Ignored - } - } - - public void testMisc() throws Exception { - fooBoxTest(); - } - - public void testConstructWithCapacity() throws Exception { - fooBoxTest(); - } - - public void testConstructWithSideEffectParam() throws Exception { - fooBoxTest(); - } - - public void testIndexOf() throws Exception { - checkFooBoxIsOk(); - } - - public void testContainsAll() throws Exception { - checkFooBoxIsOk(); - } - - public void testRemoveAll() throws Exception { - checkFooBoxIsOk(); - } - - public void testRetainAll() throws Exception { - checkFooBoxIsOk(); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java index 99a0552d015..f8384ac36bd 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java @@ -1388,6 +1388,189 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest { } } + @TestMetadata("js/js.translator/testData/box/examples") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Examples extends AbstractBoxJsTest { + public void testAllFilesPresentInExamples() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/examples"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("basicmethod.kt") + public void testBasicmethod() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/basicmethod.kt"); + doTest(fileName); + } + + @TestMetadata("basicproperty.kt") + public void testBasicproperty() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/basicproperty.kt"); + doTest(fileName); + } + + @TestMetadata("classObject.kt") + public void testClassObject() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/classObject.kt"); + doTest(fileName); + } + + @TestMetadata("closureWithParameter.kt") + public void testClosureWithParameter() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/closureWithParameter.kt"); + doTest(fileName); + } + + @TestMetadata("closureWithParameterAndBoxing.kt") + public void testClosureWithParameterAndBoxing() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/closureWithParameterAndBoxing.kt"); + doTest(fileName); + } + + @TestMetadata("doubleEnclosedLocalVariable.kt") + public void testDoubleEnclosedLocalVariable() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/doubleEnclosedLocalVariable.kt"); + doTest(fileName); + } + + @TestMetadata("enclosed.kt") + public void testEnclosed() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/enclosed.kt"); + doTest(fileName); + } + + @TestMetadata("enclosingLocalVariable.kt") + public void testEnclosingLocalVariable() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/enclosingLocalVariable.kt"); + doTest(fileName); + } + + @TestMetadata("extensionClosure.kt") + public void testExtensionClosure() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/extensionClosure.kt"); + doTest(fileName); + } + + @TestMetadata("funDelegation.kt") + public void testFunDelegation() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/funDelegation.kt"); + doTest(fileName); + } + + @TestMetadata("incrementProperty.kt") + public void testIncrementProperty() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/incrementProperty.kt"); + doTest(fileName); + } + + @TestMetadata("inheritance.kt") + public void testInheritance() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/inheritance.kt"); + doTest(fileName); + } + + @TestMetadata("inheritedInnerClass.kt") + public void testInheritedInnerClass() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/inheritedInnerClass.kt"); + doTest(fileName); + } + + @TestMetadata("inheritedMethod.kt") + public void testInheritedMethod() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/inheritedMethod.kt"); + doTest(fileName); + } + + @TestMetadata("initializerBlock.kt") + public void testInitializerBlock() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/initializerBlock.kt"); + doTest(fileName); + } + + @TestMetadata("initializerBlockDImpl.kt") + public void testInitializerBlockDImpl() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/initializerBlockDImpl.kt"); + doTest(fileName); + } + + @TestMetadata("innerClass.kt") + public void testInnerClass() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/innerClass.kt"); + doTest(fileName); + } + + @TestMetadata("kt242.kt") + public void testKt242() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/kt242.kt"); + doTest(fileName); + } + + @TestMetadata("newInstanceDefaultConstructor.kt") + public void testNewInstanceDefaultConstructor() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/newInstanceDefaultConstructor.kt"); + doTest(fileName); + } + + @TestMetadata("overloadBinaryOperator.kt") + public void testOverloadBinaryOperator() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/overloadBinaryOperator.kt"); + doTest(fileName); + } + + @TestMetadata("overloadPlusAssignReturn.kt") + public void testOverloadPlusAssignReturn() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/overloadPlusAssignReturn.kt"); + doTest(fileName); + } + + @TestMetadata("overloadPlusToPlusAssign.kt") + public void testOverloadPlusToPlusAssign() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/overloadPlusToPlusAssign.kt"); + doTest(fileName); + } + + @TestMetadata("overloadUnaryOperator.kt") + public void testOverloadUnaryOperator() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/overloadUnaryOperator.kt"); + doTest(fileName); + } + + @TestMetadata("propertyDelegation.kt") + public void testPropertyDelegation() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/propertyDelegation.kt"); + doTest(fileName); + } + + @TestMetadata("propertyInInitializer.kt") + public void testPropertyInInitializer() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/propertyInInitializer.kt"); + doTest(fileName); + } + + @TestMetadata("rightHandOverride.kt") + public void testRightHandOverride() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/rightHandOverride.kt"); + doTest(fileName); + } + + @TestMetadata("simplestClosure.kt") + public void testSimplestClosure() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/simplestClosure.kt"); + doTest(fileName); + } + + @TestMetadata("simplestClosureAndBoxing.kt") + public void testSimplestClosureAndBoxing() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/simplestClosureAndBoxing.kt"); + doTest(fileName); + } + + @TestMetadata("traitproperty.kt") + public void testTraitproperty() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/examples/traitproperty.kt"); + doTest(fileName); + } + } + @TestMetadata("js/js.translator/testData/box/expression") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) @@ -4322,6 +4505,135 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest { } } + @TestMetadata("js/js.translator/testData/box/java") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Java extends AbstractBoxJsTest { + public void testAllFilesPresentInJava() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/java"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("js/js.translator/testData/box/java/abstractList") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class AbstractList extends AbstractBoxJsTest { + public void testAllFilesPresentInAbstractList() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/java/abstractList"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("iterator.kt") + public void testIterator() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/java/abstractList/iterator.kt"); + doTest(fileName); + } + } + + @TestMetadata("js/js.translator/testData/box/java/arrayList") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class ArrayList extends AbstractBoxJsTest { + @TestMetadata("access.kt") + public void testAccess() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/java/arrayList/access.kt"); + doTest(fileName); + } + + public void testAllFilesPresentInArrayList() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("js/js.translator/testData/box/java/arrayList"), Pattern.compile("^([^_](.+))\\.kt$"), true); + } + + @TestMetadata("arrayAccess.kt") + public void testArrayAccess() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/java/arrayList/arrayAccess.kt"); + doTest(fileName); + } + + @TestMetadata("constructWithCapacity.kt") + public void testConstructWithCapacity() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/java/arrayList/constructWithCapacity.kt"); + doTest(fileName); + } + + @TestMetadata("constructWithSideEffectParam.kt") + public void testConstructWithSideEffectParam() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/java/arrayList/constructWithSideEffectParam.kt"); + doTest(fileName); + } + + @TestMetadata("containsAll.kt") + public void testContainsAll() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/java/arrayList/containsAll.kt"); + doTest(fileName); + } + + @TestMetadata("emptyList.kt") + public void testEmptyList() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/java/arrayList/emptyList.kt"); + doTest(fileName); + } + + @TestMetadata("indexOOB.kt") + public void testIndexOOB() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/java/arrayList/indexOOB.kt"); + doTest(fileName); + } + + @TestMetadata("indexOf.kt") + public void testIndexOf() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/java/arrayList/indexOf.kt"); + doTest(fileName); + } + + @TestMetadata("isEmpty.kt") + public void testIsEmpty() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/java/arrayList/isEmpty.kt"); + doTest(fileName); + } + + @TestMetadata("iterate.kt") + public void testIterate() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/java/arrayList/iterate.kt"); + doTest(fileName); + } + + @TestMetadata("misc.kt") + public void testMisc() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/java/arrayList/misc.kt"); + doTest(fileName); + } + + @TestMetadata("remove.kt") + public void testRemove() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/java/arrayList/remove.kt"); + doTest(fileName); + } + + @TestMetadata("removeAll.kt") + public void testRemoveAll() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/java/arrayList/removeAll.kt"); + doTest(fileName); + } + + @TestMetadata("removeWithIndexOutOfBounds.kt") + public void testRemoveWithIndexOutOfBounds() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/java/arrayList/removeWithIndexOutOfBounds.kt"); + doTest(fileName); + } + + @TestMetadata("retainAll.kt") + public void testRetainAll() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/java/arrayList/retainAll.kt"); + doTest(fileName); + } + + @TestMetadata("toArray.kt") + public void testToArray() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/box/java/arrayList/toArray.kt"); + doTest(fileName); + } + } + } + @TestMetadata("js/js.translator/testData/box/jsCode") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/ExamplesTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/ExamplesTest.java deleted file mode 100644 index e6e04058007..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/ExamplesTest.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2010-2015 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.kotlin.js.test.semantics; - -import junit.framework.Test; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.js.test.SingleFileTranslationTest; -import org.jetbrains.kotlin.js.translate.context.Namer; - -@SuppressWarnings("JUnitTestCaseWithNoTests") -public final class ExamplesTest extends SingleFileTranslationTest { - - @NotNull - private final String filename; - - @SuppressWarnings("JUnitTestCaseWithNonTrivialConstructors") - public ExamplesTest(@NotNull String filename) { - super("examples/"); - this.filename = filename; - } - - @Override - public void runTest() throws Exception { - runFunctionOutputTest(filename, Namer.getRootPackageName(), TEST_FUNCTION, "OK"); - } - - public static Test suite() throws Exception { - return TranslatorTestCaseBuilder - .suiteForDirectory(TEST_DATA_DIR_PATH + "examples/cases/", new TranslatorTestCaseBuilder.NamedTestFactory() { - @NotNull - @Override - public Test createTest(@NotNull String filename) { - ExamplesTest examplesTest = new ExamplesTest(filename); - examplesTest.setName(filename); - return examplesTest; - } - }); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JavaClassesTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JavaClassesTest.java deleted file mode 100644 index 887a978322c..00000000000 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JavaClassesTest.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2010-2015 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.kotlin.js.test.semantics; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.kotlin.js.test.SingleFileTranslationTest; - -public abstract class JavaClassesTest extends SingleFileTranslationTest { - - public JavaClassesTest(@NotNull String main) { - super("java/" + main); - } -} diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/PackageTest.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/PackageTest.java index ca24e61dd0d..c94a46e1a4d 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/PackageTest.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/PackageTest.java @@ -42,4 +42,8 @@ public final class PackageTest extends SingleFileTranslationTest { public void testInitializersOfNestedPackagesExecute() throws Exception { runFunctionOutputTest("initializersOfNestedPackagesExecute.kt", "foo1.foo2.foo3.foo5.foo6.foo7.foo8", TEST_FUNCTION, true); } + + public void testMainFunInNestedPackage() throws Exception { + checkOutput("mainFunInNestedPackage.kt", "ayee"); + } } diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/abstractClassesForGeneratedTests.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/abstractClassesForGeneratedTests.kt index 52e8b5b9eab..38e5addbe49 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/abstractClassesForGeneratedTests.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/abstractClassesForGeneratedTests.kt @@ -19,8 +19,17 @@ package org.jetbrains.kotlin.js.test.semantics import org.jetbrains.kotlin.js.test.BasicBoxTest abstract class BorrowedTest(relativePath: String) : BasicBoxTest( - "compiler/testData/codegen/box/" + relativePath, - BasicBoxTest.TEST_DATA_DIR_PATH + relativePath + "out/" + "compiler/testData/codegen/box/$relativePath", + "${BasicBoxTest.TEST_DATA_DIR_PATH}/out/jvm/box/$relativePath/" +) { + init { + additionalCommonFileDirectories += BasicBoxTest.TEST_DATA_DIR_PATH + relativePath + "/_commonFiles/" + } +} + +abstract class BorrowedInlineTest(relativePath: String) : BasicBoxTest( + "compiler/testData/codegen/boxInline/$relativePath", + "${BasicBoxTest.TEST_DATA_DIR_PATH}/out/jvm/boxInline/$relativePath/" ) { init { additionalCommonFileDirectories += BasicBoxTest.TEST_DATA_DIR_PATH + relativePath + "/_commonFiles/" @@ -29,14 +38,14 @@ abstract class BorrowedTest(relativePath: String) : BasicBoxTest( abstract class AbstractBoxJsTest() : BasicBoxTest( BasicBoxTest.TEST_DATA_DIR_PATH + "box/", - BasicBoxTest.TEST_DATA_DIR_PATH + "out/" + BasicBoxTest.TEST_DATA_DIR_PATH + "out/box/" ) abstract class AbstractBridgeTest : BorrowedTest("bridges/") abstract class AbstractCompanionObjectTest : BorrowedTest("objectIntrinsics/") -abstract class AbstractFunctionExpressionTest : BorrowedTest("functionExpression/") +abstract class AbstractFunctionExpressionTest : BorrowedTest("functions/functionExpression/") abstract class AbstractSecondaryConstructorTest : BorrowedTest("secondaryConstructors/") @@ -48,6 +57,6 @@ abstract class AbstractSuperTest : BorrowedTest("super/") abstract class AbstractLocalClassesTest : BorrowedTest("localClasses/") -abstract class AbstractNonLocalReturnsTest : BorrowedTest("inline.generated/nonLocalReturns/") +abstract class AbstractNonLocalReturnsTest : BorrowedInlineTest("nonLocalReturns/") abstract class AbstractTypeAliasesTests : BorrowedTest("typealias/") \ No newline at end of file diff --git a/js/js.translator/testData/examples/sortedTests/unsupported/basicmethod.kt b/js/js.translator/testData/box/examples/basicmethod.kt similarity index 100% rename from js/js.translator/testData/examples/sortedTests/unsupported/basicmethod.kt rename to js/js.translator/testData/box/examples/basicmethod.kt diff --git a/js/js.translator/testData/examples/sortedTests/unsupported/basicproperty.kt b/js/js.translator/testData/box/examples/basicproperty.kt similarity index 100% rename from js/js.translator/testData/examples/sortedTests/unsupported/basicproperty.kt rename to js/js.translator/testData/box/examples/basicproperty.kt diff --git a/js/js.translator/testData/examples/sortedTests/unsupported/classObject.kt b/js/js.translator/testData/box/examples/classObject.kt similarity index 100% rename from js/js.translator/testData/examples/sortedTests/unsupported/classObject.kt rename to js/js.translator/testData/box/examples/classObject.kt diff --git a/js/js.translator/testData/examples/cases/closureWithParameter.kt b/js/js.translator/testData/box/examples/closureWithParameter.kt similarity index 100% rename from js/js.translator/testData/examples/cases/closureWithParameter.kt rename to js/js.translator/testData/box/examples/closureWithParameter.kt diff --git a/js/js.translator/testData/examples/cases/closureWithParameterAndBoxing.kt b/js/js.translator/testData/box/examples/closureWithParameterAndBoxing.kt similarity index 100% rename from js/js.translator/testData/examples/cases/closureWithParameterAndBoxing.kt rename to js/js.translator/testData/box/examples/closureWithParameterAndBoxing.kt diff --git a/js/js.translator/testData/examples/cases/doubleEnclosedLocalVariable.kt b/js/js.translator/testData/box/examples/doubleEnclosedLocalVariable.kt similarity index 100% rename from js/js.translator/testData/examples/cases/doubleEnclosedLocalVariable.kt rename to js/js.translator/testData/box/examples/doubleEnclosedLocalVariable.kt diff --git a/js/js.translator/testData/examples/sortedTests/unsupported/enclosed.kt b/js/js.translator/testData/box/examples/enclosed.kt similarity index 96% rename from js/js.translator/testData/examples/sortedTests/unsupported/enclosed.kt rename to js/js.translator/testData/box/examples/enclosed.kt index f3d5ae5daa6..84d7456b336 100644 --- a/js/js.translator/testData/examples/sortedTests/unsupported/enclosed.kt +++ b/js/js.translator/testData/box/examples/enclosed.kt @@ -18,7 +18,7 @@ open class N() : M(), K { override var y = 200 - open class C() : K { + inner open class C() : K { fun test1() = x() fun test2() = super@N.x() fun test3() = super@N.x() diff --git a/js/js.translator/testData/examples/cases/enclosingLocalVariable.kt b/js/js.translator/testData/box/examples/enclosingLocalVariable.kt similarity index 100% rename from js/js.translator/testData/examples/cases/enclosingLocalVariable.kt rename to js/js.translator/testData/box/examples/enclosingLocalVariable.kt diff --git a/js/js.translator/testData/examples/cases/extensionClosure.kt b/js/js.translator/testData/box/examples/extensionClosure.kt similarity index 100% rename from js/js.translator/testData/examples/cases/extensionClosure.kt rename to js/js.translator/testData/box/examples/extensionClosure.kt diff --git a/js/js.translator/testData/examples/cases/funDelegation.kt b/js/js.translator/testData/box/examples/funDelegation.kt similarity index 100% rename from js/js.translator/testData/examples/cases/funDelegation.kt rename to js/js.translator/testData/box/examples/funDelegation.kt diff --git a/js/js.translator/testData/examples/cases/incrementProperty.kt b/js/js.translator/testData/box/examples/incrementProperty.kt similarity index 100% rename from js/js.translator/testData/examples/cases/incrementProperty.kt rename to js/js.translator/testData/box/examples/incrementProperty.kt diff --git a/js/js.translator/testData/examples/sortedTests/unsupported/inheritance.kt b/js/js.translator/testData/box/examples/inheritance.kt similarity index 100% rename from js/js.translator/testData/examples/sortedTests/unsupported/inheritance.kt rename to js/js.translator/testData/box/examples/inheritance.kt diff --git a/js/js.translator/testData/examples/sortedTests/unsupported/inheritedInnerClass.kt b/js/js.translator/testData/box/examples/inheritedInnerClass.kt similarity index 100% rename from js/js.translator/testData/examples/sortedTests/unsupported/inheritedInnerClass.kt rename to js/js.translator/testData/box/examples/inheritedInnerClass.kt diff --git a/js/js.translator/testData/examples/cases/inheritedMethod.kt b/js/js.translator/testData/box/examples/inheritedMethod.kt similarity index 100% rename from js/js.translator/testData/examples/cases/inheritedMethod.kt rename to js/js.translator/testData/box/examples/inheritedMethod.kt diff --git a/js/js.translator/testData/examples/cases/initializerBlock.kt b/js/js.translator/testData/box/examples/initializerBlock.kt similarity index 100% rename from js/js.translator/testData/examples/cases/initializerBlock.kt rename to js/js.translator/testData/box/examples/initializerBlock.kt diff --git a/js/js.translator/testData/examples/sortedTests/unsupported/initializerBlockDImpl.kt b/js/js.translator/testData/box/examples/initializerBlockDImpl.kt similarity index 62% rename from js/js.translator/testData/examples/sortedTests/unsupported/initializerBlockDImpl.kt rename to js/js.translator/testData/box/examples/initializerBlockDImpl.kt index 9d96d4fb40a..5c9d3d497ae 100644 --- a/js/js.translator/testData/examples/sortedTests/unsupported/initializerBlockDImpl.kt +++ b/js/js.translator/testData/box/examples/initializerBlockDImpl.kt @@ -2,10 +2,10 @@ import java.util.* import java.io.* class World() { - public val items: ArrayList = ArrayList + public val items: ArrayList = ArrayList() - class Item() { - { + inner class Item() { + init { items.add(this) } } @@ -13,7 +13,7 @@ class World() { val foo = Item() } -fun box(): String { +fun box() : String { val w = World() if (w.items.size != 1) return "fail" return "OK" diff --git a/js/js.translator/testData/examples/sortedTests/unsupported/innerClass.kt b/js/js.translator/testData/box/examples/innerClass.kt similarity index 92% rename from js/js.translator/testData/examples/sortedTests/unsupported/innerClass.kt rename to js/js.translator/testData/box/examples/innerClass.kt index 525c01f8eb7..c030d7ff744 100644 --- a/js/js.translator/testData/examples/sortedTests/unsupported/innerClass.kt +++ b/js/js.translator/testData/box/examples/innerClass.kt @@ -1,5 +1,5 @@ class Outer(val foo: StringBuilder) { - class Inner() { + inner class Inner() { fun len(): Int { return foo.length } diff --git a/js/js.translator/testData/examples/cases/kt242.kt b/js/js.translator/testData/box/examples/kt242.kt similarity index 100% rename from js/js.translator/testData/examples/cases/kt242.kt rename to js/js.translator/testData/box/examples/kt242.kt diff --git a/js/js.translator/testData/examples/cases/newInstanceDefaultConstructor.kt b/js/js.translator/testData/box/examples/newInstanceDefaultConstructor.kt similarity index 100% rename from js/js.translator/testData/examples/cases/newInstanceDefaultConstructor.kt rename to js/js.translator/testData/box/examples/newInstanceDefaultConstructor.kt diff --git a/js/js.translator/testData/examples/cases/overloadBinaryOperator.kt b/js/js.translator/testData/box/examples/overloadBinaryOperator.kt similarity index 100% rename from js/js.translator/testData/examples/cases/overloadBinaryOperator.kt rename to js/js.translator/testData/box/examples/overloadBinaryOperator.kt diff --git a/js/js.translator/testData/examples/cases/overloadPlusAssignReturn.kt b/js/js.translator/testData/box/examples/overloadPlusAssignReturn.kt similarity index 100% rename from js/js.translator/testData/examples/cases/overloadPlusAssignReturn.kt rename to js/js.translator/testData/box/examples/overloadPlusAssignReturn.kt diff --git a/js/js.translator/testData/examples/cases/overloadPlusToPlusAssign.kt b/js/js.translator/testData/box/examples/overloadPlusToPlusAssign.kt similarity index 100% rename from js/js.translator/testData/examples/cases/overloadPlusToPlusAssign.kt rename to js/js.translator/testData/box/examples/overloadPlusToPlusAssign.kt diff --git a/js/js.translator/testData/examples/cases/overloadUnaryOperator.kt b/js/js.translator/testData/box/examples/overloadUnaryOperator.kt similarity index 100% rename from js/js.translator/testData/examples/cases/overloadUnaryOperator.kt rename to js/js.translator/testData/box/examples/overloadUnaryOperator.kt diff --git a/js/js.translator/testData/examples/cases/propertyDelegation.kt b/js/js.translator/testData/box/examples/propertyDelegation.kt similarity index 100% rename from js/js.translator/testData/examples/cases/propertyDelegation.kt rename to js/js.translator/testData/box/examples/propertyDelegation.kt diff --git a/js/js.translator/testData/examples/sortedTests/unsupported/propertyInInitializer.kt b/js/js.translator/testData/box/examples/propertyInInitializer.kt similarity index 62% rename from js/js.translator/testData/examples/sortedTests/unsupported/propertyInInitializer.kt rename to js/js.translator/testData/box/examples/propertyInInitializer.kt index 7b49104f9e3..cc50d40c799 100644 --- a/js/js.translator/testData/examples/sortedTests/unsupported/propertyInInitializer.kt +++ b/js/js.translator/testData/box/examples/propertyInInitializer.kt @@ -1,10 +1,10 @@ class Outer() { val s = "xyzzy" - open class InnerBase(public val name: String) { + open inner class InnerBase(public val name: String) { } - class InnerDerived() : InnerBase(s) { + inner class InnerDerived() : InnerBase(s) { } val x = InnerDerived() diff --git a/js/js.translator/testData/examples/cases/rightHandOverride.kt b/js/js.translator/testData/box/examples/rightHandOverride.kt similarity index 100% rename from js/js.translator/testData/examples/cases/rightHandOverride.kt rename to js/js.translator/testData/box/examples/rightHandOverride.kt diff --git a/js/js.translator/testData/examples/cases/simplestClosure.kt b/js/js.translator/testData/box/examples/simplestClosure.kt similarity index 100% rename from js/js.translator/testData/examples/cases/simplestClosure.kt rename to js/js.translator/testData/box/examples/simplestClosure.kt diff --git a/js/js.translator/testData/examples/cases/simplestClosureAndBoxing.kt b/js/js.translator/testData/box/examples/simplestClosureAndBoxing.kt similarity index 100% rename from js/js.translator/testData/examples/cases/simplestClosureAndBoxing.kt rename to js/js.translator/testData/box/examples/simplestClosureAndBoxing.kt diff --git a/js/js.translator/testData/examples/sortedTests/unsupported/traitproperty.kt b/js/js.translator/testData/box/examples/traitproperty.kt similarity index 100% rename from js/js.translator/testData/examples/sortedTests/unsupported/traitproperty.kt rename to js/js.translator/testData/box/examples/traitproperty.kt diff --git a/js/js.translator/testData/java/abstractList/cases/iterator.kt b/js/js.translator/testData/box/java/abstractList/iterator.kt similarity index 100% rename from js/js.translator/testData/java/abstractList/cases/iterator.kt rename to js/js.translator/testData/box/java/abstractList/iterator.kt diff --git a/js/js.translator/testData/box/java/arrayList/access.kt b/js/js.translator/testData/box/java/arrayList/access.kt new file mode 100644 index 00000000000..e91521cc782 --- /dev/null +++ b/js/js.translator/testData/box/java/arrayList/access.kt @@ -0,0 +1,14 @@ +package foo + +import java.util.ArrayList; + +fun box(): String { + val a = ArrayList(); + a.add(1) + a.add(2) + if (a.size != 2) return "fail1: ${a.size}" + if (a.get(1) != 2) return "fail2" + if (a.get(0) != 1) return "fail3" + + return "OK" +} \ No newline at end of file diff --git a/js/js.translator/testData/box/java/arrayList/arrayAccess.kt b/js/js.translator/testData/box/java/arrayList/arrayAccess.kt new file mode 100644 index 00000000000..6165854d325 --- /dev/null +++ b/js/js.translator/testData/box/java/arrayList/arrayAccess.kt @@ -0,0 +1,15 @@ +package foo + +import java.util.ArrayList; + +fun box(): String { + val a = ArrayList(); + a.add(1) + a.add(2) + a[1] = 100 + if (a.size != 2) return "fail1: ${a.size}" + if (a[1] != 100) return "fail2" + if (a[0] != 1) return "fail3" + + return "OK" +} \ No newline at end of file diff --git a/js/js.translator/testData/box/java/arrayList/constructWithCapacity.kt b/js/js.translator/testData/box/java/arrayList/constructWithCapacity.kt new file mode 100644 index 00000000000..fcb110cd513 --- /dev/null +++ b/js/js.translator/testData/box/java/arrayList/constructWithCapacity.kt @@ -0,0 +1,8 @@ +package foo + +import java.util.ArrayList + +fun box(): String { + val al = ArrayList(10) + return if (al.size == 0) "OK" else "fail: ${al.size}" +} \ No newline at end of file diff --git a/js/js.translator/testData/java/arrayList/cases/constructWithSideEffectParam.kt b/js/js.translator/testData/box/java/arrayList/constructWithSideEffectParam.kt similarity index 56% rename from js/js.translator/testData/java/arrayList/cases/constructWithSideEffectParam.kt rename to js/js.translator/testData/box/java/arrayList/constructWithSideEffectParam.kt index cf3f0731e28..7a990516f86 100644 --- a/js/js.translator/testData/java/arrayList/cases/constructWithSideEffectParam.kt +++ b/js/js.translator/testData/box/java/arrayList/constructWithSideEffectParam.kt @@ -8,7 +8,10 @@ fun withSideEffect(v: Int): Int { return v } -fun box(): Boolean { +fun box(): String { val al = ArrayList(withSideEffect(2)) - return al.size == 0 && baz == 2 + if (al.size != 0) return "fail1: ${al.size}" + if (baz != 2) return "fail2: $baz" + + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/java/arrayList/cases/containsAll.kt b/js/js.translator/testData/box/java/arrayList/containsAll.kt similarity index 100% rename from js/js.translator/testData/java/arrayList/cases/containsAll.kt rename to js/js.translator/testData/box/java/arrayList/containsAll.kt diff --git a/js/js.translator/testData/box/java/arrayList/emptyList.kt b/js/js.translator/testData/box/java/arrayList/emptyList.kt new file mode 100644 index 00000000000..ea5d77d509e --- /dev/null +++ b/js/js.translator/testData/box/java/arrayList/emptyList.kt @@ -0,0 +1,8 @@ +package foo + +import java.util.ArrayList; + +fun box(): String { + val a = ArrayList(); + return if (a.size == 0) "OK" else "fail: ${a.size}" +} \ No newline at end of file diff --git a/js/js.translator/testData/box/java/arrayList/indexOOB.kt b/js/js.translator/testData/box/java/arrayList/indexOOB.kt new file mode 100644 index 00000000000..cd79f729748 --- /dev/null +++ b/js/js.translator/testData/box/java/arrayList/indexOOB.kt @@ -0,0 +1,18 @@ +package foo + +import java.util.ArrayList; + +fun box(): String { + val arr = ArrayList(); + var i = 0; + while (i++ < 10) { + arr.add(i); + } + try { + if (arr[10] == 11) return "fail1" + } + catch (e: Exception) { + return "OK" + } + return "fail2" +} \ No newline at end of file diff --git a/js/js.translator/testData/java/arrayList/cases/indexOf.kt b/js/js.translator/testData/box/java/arrayList/indexOf.kt similarity index 100% rename from js/js.translator/testData/java/arrayList/cases/indexOf.kt rename to js/js.translator/testData/box/java/arrayList/indexOf.kt diff --git a/js/js.translator/testData/box/java/arrayList/isEmpty.kt b/js/js.translator/testData/box/java/arrayList/isEmpty.kt new file mode 100644 index 00000000000..494532bde1d --- /dev/null +++ b/js/js.translator/testData/box/java/arrayList/isEmpty.kt @@ -0,0 +1,11 @@ +package foo + +import java.util.ArrayList; + +fun box(): String { + val a = ArrayList(); + a.add(3) + if (a.isEmpty()) return "fail1" + if (!ArrayList().isEmpty()) return "fail2" + return "OK" +} \ No newline at end of file diff --git a/js/js.translator/testData/java/arrayList/cases/iterate.kt b/js/js.translator/testData/box/java/arrayList/iterate.kt similarity index 60% rename from js/js.translator/testData/java/arrayList/cases/iterate.kt rename to js/js.translator/testData/box/java/arrayList/iterate.kt index 0ef4139db5e..35f5fd6a775 100644 --- a/js/js.translator/testData/java/arrayList/cases/iterate.kt +++ b/js/js.translator/testData/box/java/arrayList/iterate.kt @@ -2,7 +2,7 @@ package foo import java.util.ArrayList; -fun box(): Boolean { +fun box(): String { var i = 0 val arr = ArrayList(); while (i++ < 10) { @@ -12,5 +12,8 @@ fun box(): Boolean { for (a in arr) { sum += a; } - return (sum == 55) && (arr.size == 10) + if (sum != 55) return "fail1: $sum" + if (arr.size != 10) return "fail2: ${arr.size}" + + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/java/arrayList/cases/misc.kt b/js/js.translator/testData/box/java/arrayList/misc.kt similarity index 89% rename from js/js.translator/testData/java/arrayList/cases/misc.kt rename to js/js.translator/testData/box/java/arrayList/misc.kt index 590ce8c7200..f536c8c374f 100644 --- a/js/js.translator/testData/java/arrayList/cases/misc.kt +++ b/js/js.translator/testData/box/java/arrayList/misc.kt @@ -2,7 +2,7 @@ package foo import java.util.ArrayList -fun box(): Boolean { +fun box(): String { var i = 0 val list = ArrayList() while (i++ < 3) { @@ -15,7 +15,7 @@ fun box(): Boolean { list.add(1, 500) // test contains, addAll if (!list.contains(500) || list.contains(600) || list.addAll(ArrayList())) { - return false; + return "fail1" } val a = ArrayList() @@ -25,11 +25,11 @@ fun box(): Boolean { b.add(4) a.addAll(b) if (a[0] != 3 || a[1] != 4) { - return false + return "fail2" } if (a.isEmpty() || !ArrayList().isEmpty()) { - return false + return "fail2" } assertNotEquals(a, b, "a != b") @@ -45,5 +45,6 @@ fun box(): Boolean { assertArrayEquals(arrayOf(1, 500, 2, 3), list.toTypedArray(), "list.toTypedArray()") assertEquals("[1,500,2,3]", JSON.stringify(list), "JSON.stringify(list)") assertEquals("[1, 500, 2, 3]", list.toString(), "list.toString()") - return true; + + return "OK" } \ No newline at end of file diff --git a/js/js.translator/testData/box/java/arrayList/remove.kt b/js/js.translator/testData/box/java/arrayList/remove.kt new file mode 100644 index 00000000000..81a284b84cc --- /dev/null +++ b/js/js.translator/testData/box/java/arrayList/remove.kt @@ -0,0 +1,22 @@ +package foo + +import java.util.ArrayList + +fun box(): String { + val arr = ArrayList() + for (i in 0..5) { + arr.add(i) + } + + val removedElement = arr.removeAt(2) + val removed = arr.remove(4) + if (arr.size != 4) return "fail1: ${arr.size}" + if (removedElement != 2) return "fail2: ${removedElement}" + if (!removed) return "fail3" + if (arr[0] != 0) return "fail4: ${arr[0]}" + if (arr[1] != 1) return "fail5: ${arr[1]}" + if (arr[2] != 3) return "fail6: ${arr[2]}" + if (arr[3] != 5) return "fail7: ${arr[3]}" + + return "OK" +} \ No newline at end of file diff --git a/js/js.translator/testData/java/arrayList/cases/removeAll.kt b/js/js.translator/testData/box/java/arrayList/removeAll.kt similarity index 100% rename from js/js.translator/testData/java/arrayList/cases/removeAll.kt rename to js/js.translator/testData/box/java/arrayList/removeAll.kt diff --git a/js/js.translator/testData/java/arrayList/cases/removeWithIndexOutOfBounds.kt b/js/js.translator/testData/box/java/arrayList/removeWithIndexOutOfBounds.kt similarity index 82% rename from js/js.translator/testData/java/arrayList/cases/removeWithIndexOutOfBounds.kt rename to js/js.translator/testData/box/java/arrayList/removeWithIndexOutOfBounds.kt index cd2c16ead69..28d5e73e013 100644 --- a/js/js.translator/testData/java/arrayList/cases/removeWithIndexOutOfBounds.kt +++ b/js/js.translator/testData/box/java/arrayList/removeWithIndexOutOfBounds.kt @@ -2,7 +2,7 @@ package foo import java.util.ArrayList -fun box(): Boolean { +fun box(): String { var threwForEmptyList = false val arr = ArrayList() @@ -26,5 +26,5 @@ fun box(): Boolean { threwForFilled = true } - return threwForEmptyList && threwForFilled + return if (threwForEmptyList && threwForFilled) "OK" else "fail" } \ No newline at end of file diff --git a/js/js.translator/testData/java/arrayList/cases/retainAll.kt b/js/js.translator/testData/box/java/arrayList/retainAll.kt similarity index 100% rename from js/js.translator/testData/java/arrayList/cases/retainAll.kt rename to js/js.translator/testData/box/java/arrayList/retainAll.kt diff --git a/js/js.translator/testData/java/arrayList/cases/toArray.kt b/js/js.translator/testData/box/java/arrayList/toArray.kt similarity index 56% rename from js/js.translator/testData/java/arrayList/cases/toArray.kt rename to js/js.translator/testData/box/java/arrayList/toArray.kt index 20ab55e2be0..55a9a19023e 100644 --- a/js/js.translator/testData/java/arrayList/cases/toArray.kt +++ b/js/js.translator/testData/box/java/arrayList/toArray.kt @@ -2,7 +2,7 @@ package foo import java.util.ArrayList -fun box(): Boolean { +fun box(): String { var i = 0 val list = ArrayList() while (i++ < 3) { @@ -13,5 +13,6 @@ fun box(): Boolean { list.add(1, 500) val array = list.toTypedArray() - return array[0] == 1 && array[1] == 500 && array[2] == 2 && array[3] == 3 && JSON.stringify(list) == "[1,500,2,3]"; + + return if (array[0] == 1 && array[1] == 500 && array[2] == 2 && array[3] == 3 && JSON.stringify(list) == "[1,500,2,3]") "OK" else "fail" } \ No newline at end of file diff --git a/js/js.translator/testData/java/arrayList/cases/access.kt b/js/js.translator/testData/java/arrayList/cases/access.kt deleted file mode 100644 index acd9eacf5a5..00000000000 --- a/js/js.translator/testData/java/arrayList/cases/access.kt +++ /dev/null @@ -1,10 +0,0 @@ -package foo - -import java.util.ArrayList; - -fun box(): Boolean { - val a = ArrayList(); - a.add(1) - a.add(2) - return (a.size == 2) && (a.get(1) == 2) && (a.get(0) == 1); -} \ No newline at end of file diff --git a/js/js.translator/testData/java/arrayList/cases/arrayAccess.kt b/js/js.translator/testData/java/arrayList/cases/arrayAccess.kt deleted file mode 100644 index 0f4136a48e5..00000000000 --- a/js/js.translator/testData/java/arrayList/cases/arrayAccess.kt +++ /dev/null @@ -1,11 +0,0 @@ -package foo - -import java.util.ArrayList; - -fun box(): Boolean { - val a = ArrayList(); - a.add(1) - a.add(2) - a[1] = 100 - return (a.size == 2) && (a[1] == 100) && (a[0] == 1); -} \ No newline at end of file diff --git a/js/js.translator/testData/java/arrayList/cases/constructWithCapacity.kt b/js/js.translator/testData/java/arrayList/cases/constructWithCapacity.kt deleted file mode 100644 index c2951c75cc9..00000000000 --- a/js/js.translator/testData/java/arrayList/cases/constructWithCapacity.kt +++ /dev/null @@ -1,8 +0,0 @@ -package foo - -import java.util.ArrayList - -fun box(): Boolean { - val al = ArrayList(10) - return al.size == 0 -} \ No newline at end of file diff --git a/js/js.translator/testData/java/arrayList/cases/emptyList.kt b/js/js.translator/testData/java/arrayList/cases/emptyList.kt deleted file mode 100644 index f244bd3d85f..00000000000 --- a/js/js.translator/testData/java/arrayList/cases/emptyList.kt +++ /dev/null @@ -1,8 +0,0 @@ -package foo - -import java.util.ArrayList; - -fun box(): Boolean { - val a = ArrayList(); - return a.size == 0; -} \ No newline at end of file diff --git a/js/js.translator/testData/java/arrayList/cases/indexOOB.kt b/js/js.translator/testData/java/arrayList/cases/indexOOB.kt deleted file mode 100644 index 58b1462e784..00000000000 --- a/js/js.translator/testData/java/arrayList/cases/indexOOB.kt +++ /dev/null @@ -1,12 +0,0 @@ -package foo - -import java.util.ArrayList; - -fun box(): Boolean { - val arr = ArrayList(); - var i = 0; - while (i++ < 10) { - arr.add(i); - } - return (arr[10] == 11) -} \ No newline at end of file diff --git a/js/js.translator/testData/java/arrayList/cases/isEmpty.kt b/js/js.translator/testData/java/arrayList/cases/isEmpty.kt deleted file mode 100644 index 334c8d92507..00000000000 --- a/js/js.translator/testData/java/arrayList/cases/isEmpty.kt +++ /dev/null @@ -1,9 +0,0 @@ -package foo - -import java.util.ArrayList; - -fun box(): Boolean { - val a = ArrayList(); - a.add(3) - return !(a.isEmpty()) && (ArrayList().isEmpty()); -} \ No newline at end of file diff --git a/js/js.translator/testData/java/arrayList/cases/remove.kt b/js/js.translator/testData/java/arrayList/cases/remove.kt deleted file mode 100644 index 021de03adfb..00000000000 --- a/js/js.translator/testData/java/arrayList/cases/remove.kt +++ /dev/null @@ -1,14 +0,0 @@ -package foo - -import java.util.ArrayList - -fun box(): Boolean { - val arr = ArrayList() - for (i in 0..5) { - arr.add(i) - } - - val removedElement = arr.removeAt(2) - val removed = arr.remove(4) - return arr.size == 4 && removedElement == 2 && removed && arr[0] == 0 && arr[1] == 1 && arr[2] == 3 && arr[3] == 5 -} \ No newline at end of file diff --git a/js/js.translator/testData/mainFunInNestedPackage.kt b/js/js.translator/testData/package/cases/mainFunInNestedPackage.kt similarity index 100% rename from js/js.translator/testData/mainFunInNestedPackage.kt rename to js/js.translator/testData/package/cases/mainFunInNestedPackage.kt diff --git a/js/js.translator/testData/examples/sortedTests/unsupported/classObjectInterface.kt b/js/js.translator/testData/wrong/examples/classObjectInterface.kt similarity index 100% rename from js/js.translator/testData/examples/sortedTests/unsupported/classObjectInterface.kt rename to js/js.translator/testData/wrong/examples/classObjectInterface.kt diff --git a/js/js.translator/testData/examples/sortedTests/usesJava/exceptionConstructor.kt b/js/js.translator/testData/wrong/examples/exceptionConstructor.kt similarity index 100% rename from js/js.translator/testData/examples/sortedTests/usesJava/exceptionConstructor.kt rename to js/js.translator/testData/wrong/examples/exceptionConstructor.kt diff --git a/js/js.translator/testData/examples/sortedTests/unsupported/forwardTypeParameter.kt b/js/js.translator/testData/wrong/examples/forwardTypeParameter.kt similarity index 100% rename from js/js.translator/testData/examples/sortedTests/unsupported/forwardTypeParameter.kt rename to js/js.translator/testData/wrong/examples/forwardTypeParameter.kt diff --git a/js/js.translator/testData/arrayThrowsExceptionOnOOBaccess.kt b/js/js.translator/testData/wrong/standardClasses/arrayThrowsExceptionOnOOBaccess.kt similarity index 100% rename from js/js.translator/testData/arrayThrowsExceptionOnOOBaccess.kt rename to js/js.translator/testData/wrong/standardClasses/arrayThrowsExceptionOnOOBaccess.kt diff --git a/js/js.translator/testData/throwableImpl.kt b/js/js.translator/testData/wrong/standardClasses/throwableImpl.kt similarity index 100% rename from js/js.translator/testData/throwableImpl.kt rename to js/js.translator/testData/wrong/standardClasses/throwableImpl.kt